Welcome!

This page was created in year 2000 and initially contains only one my article "How to create programming language and compiler" (written in year 1997). In year 2002 this article was fully rewritten and partially translated to english. It describe relatively simple demonstration compiler and more complex compiler of Context language. Demonstration compiler are obsolete now, in archive You may find very small self-compiler of Context subset. Some other articles (about program languages and common algorithms) available only in russian. You may use Babel Fish translator.


29.09.2013

Translation of syntax-driven parser article.

08.01.2011

Yet another simple compiler.

24.04.2009

Two bugs fixed in compiler Context 2.2 (indirect function call and element offset calculation in multidimensional array). All known bugs are fixed.

11.09.2007

Bug fixed in Linux-version of Context 2.0 (Incorrect file attributes assigned when assembler listing created). First bug founded not by me.

In Linux FASM 1.66 or later must be used.

28.06.2007

Context 2.0 update. Version 2.16 can work and produce code for Linux (i386), two minor bugs fixed.

15.03.2007

Update of compilers and processors tests.

28.12.2006

Three old bugs fixed - two bugs in scanner and one in expression compiler (incorrect code generation for real comparisons). Scanner bugs are present in all versions. Bugs fixed only in DOS-versions 1.03, 1.10 и 1.20.

30.10.2006

Bug fixed in all DOS-versions of compiler - function could not complete with ret command. Bug present when function ends by code listed below

if Condition then // while, repeat return end

In Context 1.03 also fixed incorrect type cast from char to word. Updated sources are in archives context.zip and samples.zip.

28.06.2006

Large update of compilers and processors tests.

19.06.2006

Two texts, to which the author either does not have straight relation or does not have a any relation. This is made by someone С++ port of Context 2.07 and very small C compiler, less than 700 lines of code but it includes relatively many language elements and can compile itself. Author - Lennart Augustsson.

15.05.2006

Bugs fixed in Pascal-S (parsing and code generation for the case operator) and TinyContext (function could not complete with ret command, this error also present in Context for DOS).

In TinyContext local variables and parameters added, but parameters syntax differs from the original.

12.12.2005

Some bugs fixed in Context for Windows:

and in Pascal-S:

19.10.2005

Small self-compiler, less then 1000 lines of code.

02.06.2005

A little bit of statistic.

03.05.2005

Bug fixed in DOS-versions 1.03, 1.10 и 1.20 of compiler (incorrect argument list may be treated as corect).
Minor bug fixed in Pascal-S (redundant jump in case operator).

13.01.2005

31.12.2004 two voting are completed. Results can be seen here.

29.11.2004

Minor bugs fixed in в Context for Windows. Context 2.02 returned.

28.09.2004

Context for Windows update. Two errors in code generator are corrected (incorrect offset calculation in some cases), target assembler are changed from TASM32 to FASM (because TASM is not freeware), some features added (global variables initialization and constant expressions calculation).

Vote. If You come here not accidentally, please answer to two questions about programming languages.

11.05.2004

Addition to archive - Context's clone with posfix address calculation operator.

05.01.2004

Minor changes in compiler and assembler for DOS.

03.12.2003

One year ago I place here some questions about programming languages. If You come here not accidentally, please answer to it.

29.09.2003

Context for DOS update. Small bug fixed in argument list parsing.

24.09.2003

Minor changes in assembler.

27.07.2003

Some compiler tests now available. It performed on many different CPU from 8086/4.77 to P4/2400.

Minor changes in page design - now frames are used only in question page. Old-syle page also available.

03.03.2003

Context 2.0 for Windows. Simplified DOS version of compiler also available.

If You come here not accidentally, please answer to my questions about programming languages.

02.12.2002

If You come here not accidentally, please answer to my question

18.11.2002

One more sample - a compiler context.bin. This is base version of compiler for DOS creates COM-file without assembler and support two sets of keywords. Near a year back I thought on changing part of the words (if/then/elseif/else instead of select/case, do ... end instead of while TRUE do ... end, const instead of define, := instead of = for the assignment, empty operator null) and reject nearly all of them - in future Windows version will only do ... end, null and, can be, second assignment operator. Built-in assembler will recognize only db command. Structure context.bin is similar to structure of base version, but it several more complex - there are no sense to made large changes in the old text, future version for Windows will be more simple...

More about Context compiler design and simplified version of compiler.

10.06.2002

Compiler, assembler and samples update. Initial version of compiler are replaced to small version. To compile all samples OO-version of compiler (context.sim) must be used. Multi-pass assembler now unavailable - use one-pass assembler. Some minor changes in compiler structure are made. Some bugs fixed:



Сайт создан в системе uCoz