ELENA Integrated Development Environment is a general-purpose, object-oriented, pure polymorphic language with late binding. ELENA Integrated Development Environment promotes more object-oriented program design, reusable, laconic and more standardized code. The package includes compiler, IDE, ELENA libraries and samples. ELENA Integrated Development Environment is a simple to use programming language for any development environment.
Programs written in ELENA Language consist of a relatively large number of "tiny" objects where the level of interactions between objects is comparable with a level of inner-object calculations. To prevent the system becoming too complex to deal with the number of possible interactions between objects is limited. This approach allows eliminate "super" objects which in many cases make the program design too specialized and hard to modify.
ELENA treats any program as a set of objects (class instances). The program flow is a process of interaction between objects by sending each other messages. A message may have attached information (a message parameter). An object may react on message if it has an appropriate message handler (a method).
If the object reacts on the message it is treaded as successful otherwise unsuccessful. In its turn the method sends messages to other objects and so on until the flow reaches the method written by external tools (meta method). So ELENA may be considered as a framework language defining rules for object interaction.
Usually the object sends chain of messages where executing of every next message depends on the result of previous one. When one of messages is failed the chain considered as broken. It's possible to declare alternative chains which are executed if previous ones are broken.
Every object may be formed up with other objects characterizing its internal state. They in turn may be formed with others and so on until meta objects which internal states are considered as raw data.
· Pure polymorphic object oriented language
· "Horizontal" multiple inheritance
· Context dependant roles
· Dynamic "class mutation" ("annex / switch/ cast" handler)
· Multiple message dispatch
· ELENA Virtual machine (in developing)
· Command line 32-bit compiler
· GUI IDE & Debugger
· Unicode support
· Complete source code
· Number of samples, including a card game Up'N'Down (in development)
· Getting started tutorial
· Simple Assembler compiler
What's New in This Release:
ELENA:
· $next is no longer supported, use #continue
· the following verbs are no longer supported:shift, of, create, enum
· new simplified method argument syntax
· api code is significantly refactored
· dynamic symbol loading
· operators now have a verb synonyms
· add possibility to import subjects on the level of the module
· changed inline class implementation
ELC:
· critical bug with nested conditional statements
· critical bug with GC
· new project template - guivm
· critical bug with GC (full collect is not invoked if there is no enough memory after partial collection)
· critical bug in bcFillR implementation code
· fixed critical bug with long number constant
· fixed: disabled debug mode crashes executable file
LIB:
· source code is completely rewritten
· bool protocol is dropped
· fixed int64 operations
· critical bug with the win32 control reference pool
· new symbol sys'vm'loader
Samples:
· fixed the issue with the focus in upndown sample
· fixed matrix sample
· basic up'n'down game vers...