Michael L. Gassanenko / Михаил Леонидович Гасаненко

Home Page

Last update: 06.06.2001
(Well, I know that it must be split into several pages, but not right now.)

My home page (this one) is written in English and in Russian, papers/articles in English are announced in English, and papers/articles in Russian are announced in Russian.

If you don't know, Forth is a programming language. See Forth Interest Group (FIG) Homepage (at www.forth.org). And RuFIG is Russian FIG (see www.forth.org.ru).


Contents & History

The dates indicate when the file was modified or put to the site.

BacFORTH: Forth + backtracking

02.06.1999
Дипломная работа про бэктрекинг (метод откатов) в Форте
18.12.1999
EuroForth'94 paper about BacFORTH
18.12.1999
Статья про усовершенствование бэктрекинга (abstract in English)
Для начинающего
27.02.2000
Бета-Форт (1993) С.Н.Баранова -- учебная Форт-система
02.11.2000
Т32-Форт (где скачать) — 32-разрядная классическая Форт-система (косвенный шитый код, абсолютные адреса, адреса возврата являются обычными адресами) по стандарту АНС Форт с очень небольшим количеством наворотов (исполнимый стек словарей) и обширной документацией. Место, где 27.02.2000 была последняя версия.
15.11.2000
Статьи из документации к Форт-системе T32
My papers published in "Forth Dimensions"
17.06.1999
C-Style Indexing in ANS Forth
31.05.1999
Scattering a Colon Definition
Some of my papers presented at EuroForth conferences
22.10.2000
the euroFORTH'93 paper "Multi-CFA DOES> : Implementation via Self-Modifying Code", now called: "Two-Phase Code Generation: an example of using dynamic codes"
22.10.2000
Перевод вышеупомянутой статьи: "Двухфазовое порождение кода: пример применения самомодифицирующегося кода ".
13.07.1999
Context-Oriented Programming (1993)
08.10.1999
Combined Addressing Model for 8086 (1994)
18.12.1999
BacFORTH: an approach to new control structures (1994)
08.10.1999
Extension of the exception handling mechanism (1995)
03.01.2000
Formalization of Return Address Manipulations (1995)
03.01.2000
Formalization of Backtracking in Forth (1996)
15.11.2000
Context-Oriented Programming
(1998)
15.11.2000
Open Interpreter: Portability of Return Stack Manipulations
(1998)
15.11.2000
Threaded Code Execution and Return Address Manipulations from the Lambda Calculus Viewpoint
(1999)
15.11.2000
Dynamically Structured Codes
(1999)
12.10.1999
Заметка про ЕвроФорт-99
Unapproved clarifications to ANS Forth
08.01.2000
Two my articles and a reference to Anton Ertl's article
09.01.2000
Words that I proposed for inclusion into the standard
14.01.2000
Rerefence to the "proposal" directory at minerva
06.06.2001
Design errors allowed by the ANS Forth (aka ISO Forth) standard
Форт-система T32 (T32-Форт)
15.11.2000
Откуда скачать Т32
15.11.2000
статьи из документации
Resource Index Script - скрипт индексации ресурсов RuFIG
18.12.1999
Описание для программирования "вручную"
17.01.2000
RIScriptWriter - скрипт для автоматизированного программирования RIScript
Miscellaneous (references to other sites)
09.01.2000
links: "what Intel does not want you to know";
the current work of ANS Forth Technical Committee
15.01.2000
Forth at http://www.ultratechnology.com/
23.01.2000
Portland Pattern Repository at www.c2.com
14.01.2000
ANS Forth (HTML, в Австрии)
02.11.2000
Selected messages from comp.lang.forth and fido7.su.forth
??.??.1999
Cyrillic fonts (866, KOI-8)
11.03.2000
Как я ставил у себя LSK (это такой Linux)
16.03.2000
Paul E. Bennet's page (Forth, 8051, coding standard)

BacFORTH-88: Дипломная работа (1992)

BacFORTH stands for "Backtrackable Forth". It adds backtracking to standard Forth.

Дипломная работа про бэктрекинг (метод откатов) в Форте
BACFORTH: AN APPROACH TO NEW CONTROL STRUCTURES -- the EuroForth'94 paper about BacFORTH, in English (MS-DOS text). The restrictions on the size of paper prevented me from describing BacFORTH in more detail.

Продолжение работы в этом направлении

Статья про усовершенствование бэктрекинга (метода откатов)
("Enhancing the Capabilities of Backtracking", in Russian. Abstract in English.)


My papers published in "Forth Dimensions":

C-Style Indexing in ANS Forth and its discussion. This article proposes a syntax for array indexing (there is no standard means to index an array in Forth).
Note: It is possible to download the paper with listings, appendices, etc. in a PKZIP archive, but "its discussion" is not included into the archive.

Scattering a Colon Definition. A scattered colon definition syntactically looks as multiple definitions with the same name and behaves like a single colon definitions.


Some of my papers presented at EuroForth conferences

Context-Oriented Programming (COP): my paper from euroFORTH'93

Objects cannot be the only type of structural units. Looking for an example of such structural units, we remember Yin and Yang from the Chinese philosophy. And it works! We invent contexts --- structural units expressing the idea of the system of relations among a group of objects. They are implemented as pure virtual method tables (one could consider them as objects without data, without state). In particular, we can use late binding on atomic data elements, like addresses or integer values.
Context-Oriented Programming: Evolution of Vocabularies and additional notes about COP (1993)

See also: Context-Oriented Programming (the 1998 paper, PDF, from ef'98, also mentioned below).

Two-Phase Code Generation: an example of using dynamic codes

The euroFORTH'93 paper
"Multi-CFA DOES> : Implementation via Self-Modifying Code",
now called:
"Two-Phase Code Generation: an example of using dynamic codes".

Перевод вышеупомянутой статьи:
"Двухфазовое порождение кода: пример применения самомодифицирующегося кода".

Combined Addressing Model for 8086 Processor (EuroForth'94)

This paper introduces a 32-bit flat memory model for real-mode 80x86's (namely, 8086, 8088, 80186, 80188). The key point is that if we let the low byte of the segment part of a 32-bit address be normally 0, we can backtrace and correct arithmetic overflows. The run-time cost of overflow detection is only 6 (six) 8086 clocks (to compare, PUSH and POP require 10 and 12 clocks)
the paper (MS-DOS text with some pseudographics).

BacFORTH: an approach to new control structures (EuroForth'94)

This paper is annotated in the BacFORTH section.

Extension of the exception handling mechanism (EuroForth'95)

The paper describes an exception handling mechanism for the Forth programming language. This exception handler:
1) supports retrying failed attempts
2) does not require an auxiliary Forth procedure (unlike ['] auxproc CATCH ).

the paper --- the text of my talk --- an example on how the proposed syntax may be used

Formalization of Return Addresses Manipulations and Control Transfers

The paper and the talk (MS-DOS text with some pseudographics).

Formalization of Backtracking in Forth

The paper.

Context-Oriented Programming

Download PDF (from ef'98). See also the 1993 paper above.

Open Interpreter: Portability of Return Stack Manipulations

Download PDF (from ef'98)

Threaded Code Execution and Return Address Manipulations from the Lambda Calculus Viewpoint

Download PDF (from ef'99)

Dynamically Structured Codes

Download PDF (from ef'99)


Заметка про ЕвроФорт-99


Unapproved clarifications to ANS Forth.

Talking to the TC via e-mail, I have noticed that the ANS Forth standard is very often misinterpreted. That is, what we understand is not what was meant. Therefore, I have began this series of "apocryphal" clarifications.

Also, my proposals and the full list of proposals (most of them have not passed). Design errors allowed by the ANS Forth (aka ISO Forth) standard


Resource Index Script

I have written the Resource Index Script for the
RuFIG (www.forth.org.ru) site.

RIScript - это написанный на Форте CGI-скрипт, выдающий общий список ресурсов RuFIG. Предполагается, что каждый член RuFIG сам включит в общий список свои ресурсы.

В реализации используется исполнение данных. Члены RuFIG составляют описания своих ресурсов в виде фортовских двоеточечных определений; последующее исполнение этих определений приводит к распечатке общей таблицы ресурсов в формате HTML.

Исходные тексты
Документация - руководство по программированию "вручную". К сожалению, несмотря на то, что формат описаний предельно прост, человеку свойственно допускать опечатки. Чтобы минимизировать количество изначально допускаемых человеком ошибок, был написан RIScriptWriter с on-line help'ом.
RIScriptWriter - скрипт для написания RIScript'овских описаний ресурсов. (Требуется поддержка фреймов и JavaScript).
RIScriptWriter в архиве - он работает и без подключения к Интернету
Мой файл с описанием ресурсов resource.txt является примером составления описания ресурсов.
28.10.2000 RIScript (RuFIG resource index script - ресурсы (список ресурсов) Российской Форт-группы, т.е. Russian Forth Interest Group) - это ссылочка для глупых роботов. Люди же могут и сам скрипт запустить.


Форт для начинающего

Бета-Форт (1993) С.Н.Баранова -- учебная (ныне) Форт-система. Отсутствие наворотов, элементарная среда разработки: экранный редактор и редактор блочных файлов (и помните про clipboard!). Встроенный ассемблер (правда, в оверлее и как следствие нерасширяемый).

23.10.2000 Найден пакет плавающей точки к Бета-Форту. С этим пакетом связана следующая история: в лаборатории Баранова занимались методикой тестирования (не знаю, в рамках какого проекта и зачем) и протестировали пакет плавающей точки, входящий в F-PC. Нашли ошибку. Мне неизвестно, является ли этот пакет плавающей точки модификацией того пакета или же написан с нуля, и насколько хорошо эта версия протестирована. По крайней мере, когда я спросил про исправленный пакет из F-PC, мне было выдано это.


Форт-система T32

Я являюсь автором Форта Т32. Скачать эту Форт-систему можно через
страничку новостей ТехноФорта. Вопрос об условиях некоммерческого распространения данной Форт-системы до сих пор не решен (с исходниками или без, с исходниками каких частей, какие части на каких условиях).

В полном варианте T32 может быть добавкой к реализации Си или какого-либо другого языка. Реализация языка-хозяина (например, Си) обеспечивает разработку сишной части программы (в традиционной для языка-хозяина среде разработки), а Форт-программы отлаживаются в традиционной для Форта среде. Достоинство такого подхода — повторное использование существующих реализаций средств программирования (implementation reuse, so zu sagen). При появлении новых возможностей в языке-хозяине, T32 получает доступ к этим возможностям просто переключаясь на новую версию хозяина.

В то же время, Т32Форт может работать и как самостоятельная Форт-система. RIScript (индекс ресурсов RuFIG) написан на Форте T32.


Статьи из документации к T32-Форту

Стандартные и нестандартные структуры управления в Форт-системе T32 — о работе с потоком управления в стандартном и не только стандартном Форте. Здесь всё делается за счет компиляции переходов, а не за счет манипуляций со стеком возвратов (хотя последние также упомянуты).

Исполнимый стек словарей T32 — расширение языка Форт: словари являются функциями, и можно определять функции, ведущие себя как словари.


Other links:

What Intel does not want you to know

http://www.ultratechnology.com/ a Forth site, the paper Thoughtful Programming.

http://www.c2.com/ - Cunningham & Cunningham, Inc. (a small consultancy specialized in object-oriented programming) - Portland Pattern Repository which is an online journal for patterns about programs and the defacto home of the extreme programming discpline.

(draft proposed) ANS Forth Standard + RFI's at Institut fuer Computersprachen, Technische Universitaet Wien and the directory where it is located.

Current Work of the ANS Forth Technical Committee, including (but not limited to):

comp.lang.forth newsgroup archive (1994-1996)

Cyrillic fonts for KOI-8 and 866 (rar archive)

My archive of selected messages from comp.lang.forth and fido7.su.forth
Updated: 02.11.2000
Предложен новый алгоритм ускорения поиска в словаре!

Как я ставил у себя LSK (это такой Linux). Где взять LSK. Форум, посвященный LSK.

Paul E. Bennett's Forth Systems Programming page at http://www.amleth.demon.co.uk/forth . Technical Papers and Articles, Forth Coding Standard, a number of links to other Forth & embedded programming (including 8051) sites. Already interesting, but still (Чт 16.03.2000) under construction.


end of page