Welcome!

This site is about the programs and computers. Its content is related to my profession, but not directly. I have no education of programming, I had to learn myself and I found that many complex things really simple, but its understandanding is not always easy...

This site was created in year 2000 and initially contains only one my text "How to create programming language and compiler" (Context language, written in year 1997, only in russian). Later this text was some times rewritten and partially translated to english. It describe relatively simple demonstration compiler and more complex compiler of Context language. Demonstration compiler are obsolete now, at page You may find very small self-compiler of Context subset. At other pageYou may find small syntax-driven compiler and, as I think, very simple explanation of syntax-driven parsing.

Some other texts (about programming languages, compilers and common algorithms) available only in russian.


29.09.2013

Syntax-driven parser (translated to english).

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:

Рейтинг@Mail.ru

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