Thursday, December 9, 2010

ELENA Programming Language: The Next Big Thing

I've started the project more than 10 years ago. I've made a decision to create my one language in the summer of 1999. I had a quite vague idea what it would be except the idea that it will be a pure object-oriented language with late binding (dynamic one). So at first I was occupied with technical tasks implementing the compiler. The syntax was not important (due to a LALR parser which gave me total freedom over it). Compiler-free linker was created and since that I was able to concentrate on the language itself. ELENA is a frame language actually, it doesn't implement the "real" code (like adding numbers, comparing strings and so on). So I was free from this as well and concentrated on experiments with different language models (still in object-oriented frames). In 2006 I published the project on the sourceforge site and since that the work was accelerated. In 2007 the modern-like syntax was introduced. In 1.2.0 (2008) the first dynamic features were introduced (context-dependant roles). In 1.2.5 the dynamic inheritance was introduced. The latest version 1.5.6 introduced the final version of method calling routine (subjects and verbs). So what will be a next big thing?

Starting from 1.5.7 I will start so-called "y project". It's main goal is to create a special meta language which will be a high level abstraction script for the language virtual machine (elenavm). Unlike "traditional" scripts it will be not imperative. In ideal case it should be set of instructions how to assemble (self-assemble) the set of objects (symbols in ELENA terms) which will be able to solve the problem (objects themselves are written in normal way). The test bed will be opencalc sample. With the help of vmconsole the programmer will be able to interact with the system by entering the script (actually recombining existing ones).

One could say, is it real or just a pipe dream? At the current moment it is hard to say. It is actually a manifest or declaration of intent. The direction I'm going to work on. But I hope the first result (probably very early) will be already seen in the 1.5.7 release. Time will say

No comments:

Post a Comment