All Projects → ELENA-LANG → Elena Lang

ELENA-LANG / Elena Lang

Licence: mit
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

Programming Languages

language
365 projects

Projects that are alternatives of or similar to Elena Lang

ekzo
💫 Functional Sass framework for rapid and painless development
Stars: ✭ 32 (-80.12%)
Mutual labels:  mixins, object-oriented
Ring
Innovative and practical general-purpose multi-paradigm language
Stars: ✭ 716 (+344.72%)
Mutual labels:  compiler, object-oriented
Inko
Inko is a statically-typed, safe, object-oriented programming language for writing concurrent programs. This is a read-only mirror of https://gitlab.com/inko-lang/inko
Stars: ✭ 108 (-32.92%)
Mutual labels:  compiler, object-oriented
Typelang
🌳 A tiny language interpreter implemented purely in TypeScript's type-system
Stars: ✭ 149 (-7.45%)
Mutual labels:  compiler
Crust
C compiler toolchain in Rust. [WIP, early development stage]
Stars: ✭ 150 (-6.83%)
Mutual labels:  compiler
Lioness
The Lioness Programming Language
Stars: ✭ 155 (-3.73%)
Mutual labels:  compiler
Jitfromscratch
Example project from my talks in the LLVM Social Berlin and C++ User Group
Stars: ✭ 158 (-1.86%)
Mutual labels:  compiler
Wah
a slightly higher-level language superset of webassembly
Stars: ✭ 147 (-8.7%)
Mutual labels:  compiler
Eval
Eval is a lightweight interpreter framework written in Swift, evaluating expressions at runtime
Stars: ✭ 157 (-2.48%)
Mutual labels:  compiler
Quickjs
QuickJS是一个小型并且可嵌入的Javascript引擎,它支持ES2020规范,包括模块,异步生成器和代理器。
Stars: ✭ 2,199 (+1265.84%)
Mutual labels:  compiler
Moose
Official repository for Moose
Stars: ✭ 153 (-4.97%)
Mutual labels:  object-oriented
Skeleton Sass
Skeleton Sass is a highly modular version of Skeleton CSS
Stars: ✭ 151 (-6.21%)
Mutual labels:  mixins
Cs2cpp
C# to C++ transpiler (Cs2Cpp) (Powered by Roslyn)
Stars: ✭ 155 (-3.73%)
Mutual labels:  compiler
Nngen
NNgen: A Fully-Customizable Hardware Synthesis Compiler for Deep Neural Network
Stars: ✭ 149 (-7.45%)
Mutual labels:  compiler
Rhine
🔬 a C++ compiler middle-end, using an LLVM backend
Stars: ✭ 157 (-2.48%)
Mutual labels:  compiler
Slang
SystemVerilog compiler and language services
Stars: ✭ 145 (-9.94%)
Mutual labels:  compiler
C
Compile and execute C "scripts" in one go!
Stars: ✭ 1,920 (+1092.55%)
Mutual labels:  compiler
Forge
A lightweight, elegant scripting language with built-in Rust-FFI.
Stars: ✭ 153 (-4.97%)
Mutual labels:  compiler
Codec Beam
Generate Erlang VM byte code from Haskell
Stars: ✭ 152 (-5.59%)
Mutual labels:  compiler
Reshade
A generic post-processing injector for games and video software.
Stars: ✭ 2,285 (+1319.25%)
Mutual labels:  compiler

ELENA Programming Language

elena-lang.github.io | Docs | Changelog | Contributing

Build status Sponsor Sponsor

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)

Source Download and Compilation

To acquire the source code clone the git repository:

git clone git://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:

recompile19.bat

To build the ELENA libraries type the following command:

rebuild_lib.bat

To build ELENA samples type the following command:

rebuild_examples.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     

Contribute!

ELENA Project looks for programmers interested in learning the language and providing feedback.

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

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
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

License

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

Questions?

Feel free to ask any question: [email protected].

Resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].