This is a basic tutorial for writing your first application in the Nelua language.
Don’t have Nelua installed yet? Read the installation tutorial first.
Your first program
You can code in Nelua much like you would code in Lua. For example, a hello world program is written much the same:
print 'Hello world'
This example is already in the examples folder in the repository. First clone the language repository if you haven’t yet:
git clone firstname.lastname@example.org:edubart/nelua-lang.git cd nelua-lang
Now you can run it:
When running it you should get an output that looks like this:
generated /home/user/nelua-lang/nelua_cache/examples/helloworld.c gcc -o "/home/user/nelua-lang/nelua_cache/examples/helloworld" \ "/home/user/nelua-lang/nelua_cache/examples/helloworld.c" \ -Wall -lm -fwrapv -g /home/user/nelua-lang/nelua_cache/examples/helloworld hello world
Note that the compiler has generated a file called
This is your program translated to C source code.
If you know how to read C, I encourage you to open it and have a look.
The compiler tries to generate efficient, compact, and readable C code.
After the C source file is generated, GCC is invoked to compile it, and then the program is executed.
If your machine does not have GCC, you can use another C compiler with the flag
For example, if you are on MacOS, you probably want to use Clang. In that case
nelua --cc clang examples/helloworld.nelua.
If you are on Windows, you probably want to use MinGW, so
nelua --cc x86_64-w64-mingw32-gcc examples/helloworld.nelua.
Syntax highlighting for editors
Syntax definitions for the language are available for Visual Studio Code with nelua-vscode and for Sublime Text with nelua-sublime. At the moment, only Sublime Text has a full definition, so I recommend using it. If you use another code editor you can use Lua syntax highlighting, as it very similar (but of course, incomplete).
I recommend using the syntax highlighter, as it makes the experience of playing around with the language more pleasant, since it can highlight type notations.
A quick tour of the language features can be found in the overview page, I highly recommend reading it if you haven’t yet.
The most interesing examples are:
examples/fibonacci.neluamultiple implementations of the classic Fibonnaci sequence
examples/brainfuck.neluause of metaprogramming 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)