Menu

Tree [497755] master iteration14 v6.0.1b /
 History

HTTPS access


File Date Author Commit
 .circleci 2023-03-06 Aleksey Rakov Aleksey Rakov [e08d7f] Iteration13 (#566)
 .github 2020-09-17 Aleksey Rakov Aleksey Rakov [8667af] Update bug_report.md
 asm 2023-03-06 Aleksey Rakov Aleksey Rakov [e08d7f] Iteration13 (#566)
 bin 2023-03-06 Aleksey Rakov Aleksey Rakov [e08d7f] Iteration13 (#566)
 dat 2023-03-06 Aleksey Rakov Aleksey Rakov [e08d7f] Iteration13 (#566)
 doc 2023-03-06 Aleksey Rakov Aleksey Rakov [e08d7f] Iteration13 (#566)
 elenasrc2 2022-03-22 Aleksey Rakov Aleksey Rakov [ed0d32] fixing old build
 elenasrc3 2023-03-06 Aleksey Rakov Aleksey Rakov [e08d7f] Iteration13 (#566)
 examples 2021-06-29 arakov arakov [73fecc] re-implementing(api);dynamic expressions
 examples60 2023-03-06 Aleksey Rakov Aleksey Rakov [e08d7f] Iteration13 (#566)
 install 2023-03-06 Aleksey Rakov Aleksey Rakov [e08d7f] Iteration13 (#566)
 src50 2022-09-13 Aleksey Rakov Aleksey Rakov [d99775] Develop (#551)
 src60 2023-03-06 Aleksey Rakov Aleksey Rakov [e08d7f] Iteration13 (#566)
 tests 2021-07-14 arakov arakov [39df7c] fixing loop dynamic expression
 tests60 2023-03-06 Aleksey Rakov Aleksey Rakov [e08d7f] Iteration13 (#566)
 .gitignore 2022-03-25 Aleksey Rakov Aleksey Rakov [c7547d] working on the debugger
 .mailmap 2021-03-24 Aleksey Rakov Aleksey Rakov [161b64] adding some meta info
 CHANGELOG.md 2022-12-09 Aleksey Rakov Aleksey Rakov [481d34] Iteration12 (#560)
 CMakeLists.txt 2020-06-29 Alexandre Bencz Alexandre Bencz [86aa18] Working on #506 (#507)
 CODE_OF_CONDUCT.md 2017-06-15 Alex Rakov Alex Rakov [6b45b0] Create CODE_OF_CONDUCT.md
 CONTRIBUTING.md 2019-10-21 Aleksey Rakov Aleksey Rakov [9a6705] Update CONTRIBUTING.md
 LICENSE 2017-01-10 Alex Rakov Alex Rakov [6d2c2f] Create LICENSE
 PULL_REQUEST_TEMPLATE.md 2018-10-17 Alex Rakov Alex Rakov [582d6b] Create PULL_REQUEST_TEMPLATE.md
 README.md 2023-03-06 Aleksey Rakov Aleksey Rakov [e08d7f] Iteration13 (#566)
 VERSION 2022-03-22 Aleksey Rakov Aleksey Rakov [9aab7c] Squashed commit of the following:
 _config.yml 2019-04-18 Alex Rakov Alex Rakov [065c06] Set theme jekyll-theme-cayman
 appveyor.yml 2022-10-22 Aleksey Rakov Aleksey Rakov [9efed5] Develop (#556)
 lib_tests.bat 2019-02-18 Aleksey Rakov Aleksey Rakov [dffa86] (re)implementing ELENA tests
 makefile 2023-03-06 Aleksey Rakov Aleksey Rakov [e08d7f] Iteration13 (#566)
 rebuild_examples.bat 2021-06-29 arakov arakov [73fecc] re-implementing(api);dynamic expressions
 rebuild_examples60.bat 2022-10-22 Aleksey Rakov Aleksey Rakov [9efed5] Develop (#556)
 rebuild_lib.bat 2021-04-13 Aleksey Rakov Aleksey Rakov [1a5e2b] migrating db sample
 rebuild_lib60.bat 2023-03-06 Aleksey Rakov Aleksey Rakov [e08d7f] Iteration13 (#566)
 recompile19.bat 2020-11-20 Aleksey Rakov Aleksey Rakov [4bf4c9] code base refactoring : preparing for 64bit pla...
 recompile60.bat 2022-03-22 Aleksey Rakov Aleksey Rakov [9aab7c] Squashed commit of the following:

Read Me

ELENA Programming Language

[elena-lang.github.io](https://elena-lang.github.io/) | [Docs](https://github.com/ELENA-LANG/elena-lang/wiki/ELENA-Programming-Manual) | [Changelog](https://github.com/ELENA-LANG/elena-lang/blob/master/CHANGELOG.md) | [Contributing](https://github.com/ELENA-LANG/elena-lang/blob/master/CONTRIBUTING.md)
[![Build status](https://ci.appveyor.com/api/projects/status/qc5dvs5lueubivuo?svg=true)](https://ci.appveyor.com/project/arakov/elena-lang) [![Sponsor](https://img.shields.io/badge/patreon-donate-green.svg)](https://www.patreon.com/elena_lang) [![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&link=https://github.com/sponsors/arakov)](https://github.com/sponsors/arakov)

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.

Features

  • Free and open-source (MIT licensed)
  • Complete source code
  • Unicode support (utf-8)
  • GUI IDE & Debugger
  • Optional types
  • Multiple dispatching / multi-methods
  • Returning Multiple Values
  • Support of variadic methods
  • Support of yieldable methods
  • Closures
  • Mixins
  • Type interfaces / conversions
  • Class / code templates
  • Script Engine

Currently Supported Platforms

  • Windows : x86 (32-bit) / x86-64 (64-bit)
  • Linux : x86 (32-bit) / x86-64 (64-bit) / ppc64le / arm64 (a64)

Source Download and Compilation

To acquire the source code clone the git repository:

git clone https://github.com/ELENA-LANG/elena-lang.git

Windows:

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:

recompile60.bat

To build the ELENA libraries type the following command:

rebuild_lib60.bat

To build ELENA samples type the following command:

rebuild_examples60.bat

To build ELENA Rosetta-code samples type the following command:

examples\rosetta\build.bat

To run unit-tests type the following command:

lib_tests.bat

Source Code Organization

Windows:

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
elenasrc3\elc       source for the compiler
elenasrc3\elenart   source for the run-time shared library
elenasrc3\elenasm   source for the script engine
elenasrc3\elenavm   source for the virtual machine
elenasrc3\gui       source for IDE
elenasrc3\tools     source for ELENA utilities
examples60          ELENA examples
src60               source for ELENA libraries

Community

We want your contributions and suggestions! One of the easiest ways to contribute is to participate in Github discussions or on Discord.

1. Bugs, questions, suggestions?

If you've noticed a bug or have a question go ahead and make one!

Join design discussions or take part in general talks.

2. Implement "up for grab" issues

Good first issue is a good starting point for a first-time contributors.

3. Rosetta code

You may try to implement some of Rosetta code tasks
which are not yet implemented

Contact Us

Reach out with any questions you may have and we'll make sure to answer them as soon as possible!

Platform Link
💬 Instant Message Chat Discord Banner
📧 E-mail elenaprolang@gmail.com
🐤 Twitter @elena_language

Resources

License

The compiler and executables distributed in this package fall under MIT License,
for more information read the file LICENSE.