ELENA is a general-purpose language with late binding. It is multi-paradigm, combining features of functional and object-oriented programming. Rich set of tools are provided to deal with message dispatching : multi-methods, message qualifying, generic message handlers, run-time interfaces
ELENA is a general-purpose language with late binding. It is multi-paradigm, combining features of functional and object-oriented programming. It supports both strong and weak types, run-time conversions, boxing and unboxing primitive types, direct usage of external libraries. A rich set of tools is provided to deal with message dispatching : multi-methods, message qualifying, generic message handlers. Multiple-inheritance can be simulated using mixins and type interfaces. The built-in script engine allows incorporating custom-defined scripts into your applications. Both stand-alone applications and Virtual machine clients are supported.
To acquire the source code clone the git repository:
git clone git://github.com/ELENA-LANG/elena-lang.git
The compiler code is implemented in C++ and does not require external dependencies. You just need Visual Studio 2019.
You have to add a path to BIN folder to the system environment PATH or copy elenavm.dll and elenart.dll to Windows\System32 folder.
To build the compiler under VS2019 you have to go to the root folder and type:
To build the ELENA libraries type the following command:
To build ELENA samples type the following command:
To build ELENA Rosetta-code samples type the following command:
To run unit-tests type the following command:
ELENA Project looks for programmers interested in learning the language and providing feedback.
If you've noticed a bug or have a question go ahead and make one!
Good first issue is a good starting point for a first-time contributors.
You may try to implement some of Rosetta code tasks which are not yet implemented
The ELENA source code is organized as follows:
bin binaries and shared libraries bin\scripts scripts used by the script engine and VM console bin\templates ELENA project templates asm source for core routines implemented in assembly dat\sg language grammar file dat\og language optimization rules doc some documentations elenasrc2\elc source for the compiler elenasrc2\elenart source for the run-time shared library elenasrc2\elenasm source for the script engine elenasrc2\elenavm source for the virtual machine elenasrc2\gui source for IDE elenasrc2\tools source for ELENA utilities examples ELENA examples src50 source for ELENA libraries
The compiler and executables distributed in this package fall under MIT License, for more information read the file LICENSE.
Feel free to ask any question: [email protected]