Luon/Readme.md at master · rochus-keller/Luon.
A compiler and IDE for the Luon programming language - a liaison beween Lua and Oberon+ - targeting LuaJIT - rochus-keller/Luon
Read in full here:

## Welcome to the Luon Programming Language
Luon is a high-level programming language with a syntax similar to [Oberon+](https://github.com/rochus-keller/oberon/), Oberon-07 and Oberon-2, integrating concepts from Lua, and targeting the LuaJIT VM. Luon can be regarded as a statically typed version of Lua. The name is thus a combination of "Lua" and "Oberon".
Luon procedures can be declared "external" and be implemented in Lua. This allows the re-use of libraries written in Lua, and also C libraries via
the LuaJIT foreign function interface.
The language specification can be found in the [specification subdirectory](https://github.com/rochus-keller/Luon/tree/master/specification).
See also the code examples below.
The project is the result of the author's experience with the [Smalltalk-80](https://github.com/rochus-keller/Smalltalk/) and [SOM VM](https://github.com/rochus-keller/Som/) implementation, and the prospect to build a [LuaJIT based Interlisp VM](https://github.com/rochus-keller/Gingko/).
In contrast to Oberon+, Luon doesn't have pointers, but instead all structured datatypes have reference semantics and are dynamically created. In addition to the ARRAY type, there is also a HASHMAP type for compatibility with Lua. There is also a STRING data type which - like Lua - is immutable and follows a value semantics.
In particular, Luon solves the following Lua shortcomings recognized during the aforementioned projects:
- conditional compilation to enable or disable statements only used for debugging and to avoid wasting calculation time
- constants not requiring local slots or hashed element access
This file has been truncated. show original
This thread was posted by one of our members via one of our news source trackers.