ELENA in a Nutshell



Functional

ELENA supports both first class functions and first class messages.

Object-oriented

ELENA supports rich set of object-oriented features: abstract classes, interfaces, singletons, class constants, named constructors, variadic methods / constructors and class extensions. Several advanced features are implemented: re-sendind and dispatching methods.

Dynamic

A number of of dynamic features is supported : multi-constructors / multi-methods and generic methods. It is possible to provide a custom message dispatcher to implement mix-ins, dynamic records and so on.

Interpretable

It is possible to build code at run-time without runtime-compilation.

Customizable

It is possible to define your own script grammar.

Free

ELENA is licensed under the MIT license, free for everyone to use. All source code is publicly viewable on GitHub.





About



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. Rich set of tools are provided to deal with message dispatching : multi-methods, message qualifying, generic message handlers. Multiple-inheritance can be simulated using mixins and type interfaces. Built-in script engine allows to incorporate custom defined scripts into your applications. Both stand-alone applications and Virtual machine clients are supported

Features




Installation



To install just unzip all the files into a directory you want.

You may need to add a path to BIN folder to system environment (e.g. <app root>\bin), or use setup executable.

The language requires Visual C++ Redistributable for VS 2017

To open, compile or debug the programs and libraries use ELENA GUI IDE (<app root>\bin\elide.exe) or ELENA Command Line Compiler (\bin\elc.exe).

In ELENA IDE you may select File-Open-Open Project option and open an appropriate project file (*.prj). Then select Project-Compile option to compile the project and Project-Debug to debug it.





Sponsorship



If you like the project you may help to support it by becoming a sponsor