Forums

ML1 Compiler Update: 7/11/07

Started by Steven Nichols July 14, 2007
I just posted an upgraded version of the ML1 Macro Driven Compiler (which 
is not ML/1 or ML/I) to 'www.ml1compiler.org'. ML1 is an extensable macro 
cross compiler that runs on DOS and will compile for a variety of CPU's 
(you write the macros). Included are macro sets that define an simple low 
level object oriented DOS programming language (the language the compiler 
is written in).   

ML1's features include:

o  The ML1 License agreement doesn't require you to pay any fees,
   or distribute your sourcecode.
o  Compiler outputs assembly language with comments.
o  A macro driven user programmable Expressiion Processor.
o  A user programmable Code Generator.
o  A user programmable Peephole Optimizer that tracks up to 32 registers.
o  Simple one command compile and link.
o  Included quick reference guide and tutorial,
   with optimization examples for expressions, register load, and IF
   statements.
o  Supports user defined Object Oriented language definitions.
o  The entire compiler is written in ML1 and itself is a 45K program,
   which is a good example of ML1 runtime code efficiency.
o  Included video and cursor menu libraries.
o  All library code is ML1 and ASM sourcecode.
o  Includes many examples including a 128 Bit integer custom type with
   simple expression macros for using it in expressions.
o  Supports Unrolled loop optimizations.
o  The new version has updated and expanded documentation with examples.
o  Includes optional compile-in runtime debugging code.
o  Includes new Macro libraries for easy to use runtime buffered
   input/output.

The included macro sets can be adapted to other (non 386+) CPUs.

Steven D. Nichols          www.ml1compiler.org

Steven Nichols wrote:
> I just posted an upgraded version of the ML1 Macro Driven Compiler (which > is not ML/1 or ML/I) to 'www.ml1compiler.org'. ML1 is an extensable macro > cross compiler that runs on DOS and will compile for a variety of CPU's > (you write the macros). Included are macro sets that define an simple low > level object oriented DOS programming language (the language the compiler > is written in). > > ML1's features include: > > o The ML1 License agreement doesn't require you to pay any fees, > or distribute your sourcecode. > o Compiler outputs assembly language with comments. > o A macro driven user programmable Expressiion Processor. > o A user programmable Code Generator. > o A user programmable Peephole Optimizer that tracks up to 32 registers. > o Simple one command compile and link. > o Included quick reference guide and tutorial, > with optimization examples for expressions, register load, and IF > statements. > o Supports user defined Object Oriented language definitions. > o The entire compiler is written in ML1 and itself is a 45K program, > which is a good example of ML1 runtime code efficiency. > o Included video and cursor menu libraries. > o All library code is ML1 and ASM sourcecode. > o Includes many examples including a 128 Bit integer custom type with > simple expression macros for using it in expressions. > o Supports Unrolled loop optimizations. > o The new version has updated and expanded documentation with examples. > o Includes optional compile-in runtime debugging code. > o Includes new Macro libraries for easy to use runtime buffered > input/output. > > The included macro sets can be adapted to other (non 386+) CPUs. > > Steven D. Nichols www.ml1compiler.org
Sounds interesting. I do not see any code example pages, nor list of supported controller cores ? Does this purely target dos applications, or is it usable as a cross-compiler under windows command line ? Web page states "making it useful for programming microcontrollers", but the rest reads less portable. -jg
Jim Granville <no.spam@designtools.maps.co.nz> wrote:
> > Sounds interesting. > I do not see any code example pages, nor list of supported controller > cores ? > Does this purely target dos applications, or is it usable as a > cross-compiler under windows command line ? > Web page states "making it useful for programming microcontrollers", > but the rest reads less portable. > > -jg > > >
The ML1 compiler documentation is full of code examples as are the directories that contain the library and runtime routine sourcecode. To find out more just DL the comiler and scan the '.txt' documentation. 'LIST76A.ZIP' from the website makes reading the documentation easy. There are also examples from a 'C' programmer perspective. The ML1 cross compiler runs on DOS and is a general purpose code generator/macro language machine. To make it output code for other than 80x86 processors you can either change the existing language (vial the macros) to output equivalent code for another CPU, or you can define your own language script from the ground up. The included macros support DOS 16 bit addressing and can be modified for 32 bit addressing. I have spent most of my time working on the guts of the compiler itself, rather than writing macro sets for various CPU's. I kept the webpage simple and to the point to make it easy to find and download the compiler. The compiler executable should run in a DOS window on Windows as it only makes conventional DOS system calls, but I have only tested it with DR DOS, MS DOS, and DOSEMU/Freedos on Linux, which all work fine. ML1 is different. Steve www.ml1compiler.org