Gene is an experimental programming language based on
as COCO/L) and procedural languages (like C++). It
therefor ideally suited for applications that process a lot of
sequential input and output such as scanners, LL(1) parsers and data generators.
Gene also supports container objects (objects that
manage a list of other objects such as arrays, linked lists, queues,
relation tables,...) and cursors which can be compared to SQL cursors,
except they do not point to a record set, but to a container.
Cursors, like in sql, also have positional information.
For a more detailled overview of what gene is, please read this
or go to the homepage
Current goals are:
- Move to the .net environment
- Make it stable for general
Gene is currently fully working, as such it is able to compile itself.
Gene is therefor written in itself. A C++ compiler
needed to compile the generated code. The currently stable version requires a Borland compiler.
A lot of work is currently being done. The compiler is being
moved to the .net platform. Because of this, some features have
been changed, extended or removed. For instance, Gene now
supports generics, which overlapped with the 'container' principle
and was therefor removed. Cursors however are still available.
Automations have also been removed because of code complexity
(the current implementation was somewhat unstable and was a nightmare
for error handling). This technique will probably be moved into a
real preprocessor. The include system has also been changed in
order to better fit into the visual studio environment. New features
include delegates and namespaces. A visual studio language
package is also in the pipe line.
To get started, you need to get the source, libraries and compiler,
which can be found in the dowload
section. For the latest sources, please use subversion. Here
you can find an explanation for getting started.
Note: To compile Gene, you will need to have the gene common library
which can be found here.
This is a seperate project cause it is distributed under a different
licence (the Lesser GNU GPL).