Nox - programming langauge written in C
h
abdullahMosibah (0)

NOX

programming language written in C .

written by me and @polysoulz.
lately i have become intersted in the history of computing and it's relation to mathmatics so i decided to learn both. by creating Nox.
nox is a programming language written in C, using tools like bison&flex, and has it's own Virtual stack machine.
the end goal of NOX is to support linear optimization problems.

(😅im learning as i go, so if there is any misinformation please contact me/pull request, thanks!)

Build Nox

Linux:

install bison & flex & gcc .( you probaly have them installed 😉)

$ sudo apt-get install bison flex gcc

clone this repository & build

$ git clone https://github.com/abdullahMosibah/NOX.git
$ cd NOX
$ bison -dv NoxBison.y
$ gcc -c NoxBison.tab.c
$ flex NoxLex.l
$ gcc -c lex.yy.c
$ gcc -o nox lex.yy.o NoxBison.tab.o -lm

NOX syntax

NOX program consists of 2 segments.

declarations : where you declare your variables.
commands : where you write commands like if, while etc.

let
    declarations
in
    commands
end

note: in the delarations section you don't need ' ; ' but you do need ' . ' after each line.

commands & keywords.

keywordsusage
readread x;
writewrite x;
integerinteger x,n.
while ,do , endwhile x > 1 do skip; end;
if,then,fiif x > 1 then x := 4; fi;
if,then,else,fiif x > 1 then x:=4; else x := 111;fi;
skipskips commands after if,else and while

operators.

operatorsnameusage
:=assignmentx := 1;
>greater thanx > 1
<less thanx < 1
=test equalityx = 1
+summationx + 5;
-Subtractionx - 5;
*Multiplicationx * 5;
/Divisionx / 2;
^power---

complete example

Fibonacci Series in NOX

let
	integer i,n1,n2,n3,numbers.
in
	read numbers;
	i := 2;
	n1 := 0;
	n2 := 1;
	write n1;
	write n2;

	 while i < numbers
		do
			 n3 := n1 + n2; 
               	         write n3; 
               	         n1 := n2; 
               	         n2 := n3; 
			 i := i +1;
		end;
	
end

How NOX works ?

Release History

  • 0.2.1
    • CHANGE: Update docs (module code remains unchanged)
  • 0.2.0
    • Work in progress
  • 0.1.1
  • 0.1.0
  • 0.0.1

Meta

Abdullah Mosibah – @abdullah_mrajab[email protected]

Distributed under the MIT license. See LICENSE for more information.

https://repl.it/@p0lys0ulz/NOX

TODO list

✅Add basic language features ( vars, while, if, else etc.)

⬜Add LP solver glpk into compiling pipeline

You are viewing a single comment. View All
abdullahMosibah (0)

@TheDrone7
i could not link my team repl here since it did not show in the drop-down menu.

but this is the link: https://repl.it/@p0lys0ulz/NOX