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
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
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:
19.10.2005
Small self-compiler, less then 1000 lines of code.
02.06.2005
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: