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!)
$ 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 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.
|while ,do , end||while x > 1 do skip; end;|
|if,then,fi||if x > 1 then x := 4; fi;|
|if,then,else,fi||if x > 1 then x:=4; else x := 111;fi;|
|skip||skips commands after if,else and while|
|:=||assignment||x := 1;|
|>||greater than||x > 1|
|<||less than||x < 1|
|=||test equality||x = 1|
|+||summation||x + 5;|
|-||Subtraction||x - 5;|
|*||Multiplication||x * 5;|
|/||Division||x / 2;|
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 ?
- CHANGE: Update docs (module code remains unchanged)
- Work in progress
Distributed under the MIT license. See
LICENSE for more information.
✅Add basic language features ( vars, while, if, else etc.)
⬜Add LP solver glpk into compiling pipeline
sorry for late response, i dont check replit that often.
you can go to https://repl.it/@p0lys0ulz/NOX and try it out.
learning flex and bison is not hard, it took me only one week, with around 3-4 hours a day.
you can find good resources online, some are textbooks from courses in some universities ( those are the best ).
send me an email if you want any help !