Longenis has made a lot of progress in the approximately two weeks that we've been working on it. We have quite nearly finished the core library (longenis_core), which forms the backend for almost all Longenis functionality, and is flexible enough to be used by itself, as a C++ library separate from the Longenis interpreter. This core library includes a rather extensive API, and is written in very nearly ISO-standard C++.
Currently, we are working primarily on the interp library, whose API consists almost entirely of functions specific to Longenis parsing and interpretation. We have had to make some changes to the core API to accomadate the interp API, but overall it has been a rather smooth transition. We are expecting the hardest part to be the parser, as the evaluation and substitution routines are rather simple to code, and the backend functionality is easily interfaced with the bytecode interpreter (the evaluator, in other words) through a set of wrappers; this is made possible by the core library's LnLibFn class, which made all this quite simple.... read more
Hi, welcome to the Longenis project on sf.net . In case you were wondering, Longenis is a programming language designed to be an elegant and coherent combination of features found in various other programming languages, in order to make a generally better whole.
The name is a combination of "Longinus" and "Genesis"; the interpretation is up to you. Yes, I admit, I'm an Eva fan... ;-)
Longenis is designed from the ground up in pure, ISO standard C++ to be simple, clean, and elegant (even if you think ISO standard C++ is not). It is object oriented, but also supports procedural programming. There are already a few clever ideas being played out in the design; for instance, all objects and namespaces are simply hashes, and all hashes are parallel arrays. All classes are functions that automatically generate object namespaces from a supplied template (the class body), and classes/objects may be nested inside each other, as well as inside functions.The idea of having all data stored as strings until it needs to be converted into something else also makes for simplicity and flexibility.
The syntax is similar to Python, but with elements of Tcl, Lua, and Perl mixed in. Even so, it remains clean due to concious effort. All code is translated into a low-level bytecode which is then interpreted on execution, making it easy for us to add commands as necessary.
It is meant to be beautiful, so I hope you will all appriciate it once you try it out.
We are currently working on the first interpreter version, and the first language revision, which will (hopefully) be released soon. Eventually, we plan to have support for compiling bytecode into machine code (though possibly indirectly), and probably an interface with the Tk windowing library.... read more