This is a basic tutorial for the Nelua Programming Language, if you don’t have installed Nelua yet, please see the installing tutorial first.
Your first program
You can basically code like you would code in Lua, for example the hello world program:
print 'Hello world'
This example is already in the repository as an example, first clone the language repository if you haven’t yet:
git clone email@example.com:edubart/nelua-lang.git cd nelua-lang
Now can run it doing:
When running you should get an output similar to this:
generated /home/bart/nelua-lang/nelua_cache/examples/helloworld.c gcc -o "/home/bart/nelua-lang/nelua_cache/examples/helloworld.out" "/home/bart/nelua-lang/nelua_cache/examples/helloworld.c" -lm -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-const-variable -Wno-unused-function -Wno-missing-braces -g /home/bart/nelua-lang/nelua_cache/examples/helloworld hello world
Note that the compiler has generated the
this is your program translated to C source code,
if you know how to read C then I encourage to open it and have a look,
the compiler tries to generate very efficient, compact and readable C sources.
After the C source file was generated GCC is invoked to compile the C sources and then the program is executed.
If your machine does not have GCC you can use other C compiler using the flag
For example if you are on MacOS you probability want to use Clang then
nelua --cc clang examples/helloworld.nelua,
or if you are on Windows you probably want to use MinGW then
nelua --cc x86_64-w64-mingw32-gcc examples/helloworld.nelua.
Syntax highlighting for editors
Syntax definitions for the language is available for Visual Studio Code in nelua-vscode and for Sublime Text in nelua-sublime. At the moment only Sublime Text have full definition, so I recommend using it. If you use other code editor you can use Lua syntax highlighting, as it very similar but of course incomplete.
I recommend using the syntax highlighter, it makes the experience of playing around with the language more pleasant because it can highlight type notations.
A quick tour of the language features can be seen in the overview page.
The most interesing examples are:
examples/fibonacci.neluamultiple implementations of the classic Fibonnaci sequence
examples/brainfuck.neluause of meta-programing to code the esoteric Brainfuck language
examples/snakesdl.neluathe classic Snake game (requires SDL)
examples/condots.neluaconnected dots graphic animation made in parallel (requires SDL and OpenMP)