The LynPlex Language
The LynPlex language is a set of simple yet powerful dialects, following the same syntax and rules but having a slightly different purpose and scope. The result is that any programming task can be carried out using a version of the same language.
Currently there are two language converters under development for two different dialects. Although both dialects follow the same language and syntax rules, they serve a slightly different purpose.
The LynPlex interpreter provides a scripting language. This can be used where a language such as Basic would otherwise be used or it it can be used instead of a batch or shell language.
The LynPlex compiler compiles source code and converts it to assembler language that is then interpreted and linked into an executable program. In a way it can also be thought of as an assembly language generator as the intermediate code can be modified before the final assembly.
The interpreter came first. It was the result of a long held desire that grew out of some forty years of computer programming experience. The desire was to produce a programming/scripting language that was as easy to use as BASIC, as easy to debug as REXX, as easy to read as COBOL, as flexible as PL/I and as universally applicable as C with some of the best bits of other languages thrown in for good measure.
That, of course, is a dream and is probably not practical. None the less, LynPlex is slowly - very slowly - approaching the dream.
It derives much from other languages, and traces of many other languages can be seen, but yet it is both simple and more consistent than any of these.
The Design Philosophy
LynPlex is designed above all to be a language that is to be consistent and to be easy to use. It is intended to contain the best features of other languages without including the worst of those same languages.
The computer world is full of programming languages and LynPlex offers very little that is new. On the contrary it re-introduces some things that have been lost.
The interpreter is essentially a simple tool for writing programs and building scripts. The priorities are:
- A language that is very easy to learn and to use.
- A language that is ideal for experimenting with programming.
- A language that is good for shell scripts.
The compiler is a more complex tool for creating executable programs.
LynPlex uses many commands and functions that exist in a similar form in other languages, but often the usage is different. None the less there is a way to perform most programming tasks.
An important part of the concept is that, as in Rexx or PL/I, there are no reserved words. A word that is a command or built-in function may still be used as a variable name. Its use will always depend on the context. This avoids the possibility of a word that is a legal symbol in one release ceasing to be so in a later release.
If you are familiar with other languages then you may find at first that you need to refer to the LynPlex Language Reference just as you would if you were a beginner.
Both the interpreter and the compiler were developed as forks from existing open source products. It was decided that Basic provided the best starting point, particularly as string manipulation is central to Basic, but there was no single Basic that was suitable. Even Basic was hardly consistent and that is why they have different dialects, but they are growing together. In each case some of the original Basic is still visible and has proved to be useful, but is yet to be carried across to the other product.
As the products serve different purposes, there will always be some differences. An example of this is that the interpreter dynamically allocates variables and their type is unspecified, but the compiler requires all variables to be defined and of a specific type.
The interpreter was originally a fork from the SmallBASIC interpreter that was created by Nicholas Christopoulos.
The compiler was a fork from the XBLite compiler developed for Windows by David Szafranski. This in turn was a fork of the XBasic compiler developed by Max Reason.