Все выпуски  

Язык программирования (и ОС) ФОРТ (FORTH) from: Kostya Pahtusov


Информационный Канал Subscribe.Ru

from: Kostya Pahtusov <kpg@email.ru>

С первой Форт системой мне повезло познакомится на ZX-Spectrum (есть диски с
эмуляторами). Начало положила книга Баранова. Знакомство с программированием
началось с Фортрана. Потом Си, Ассемблер, Бейсик, Паскаль, Java. Наиболее
интересный из группы этих языков считаю Java (одно время интенсивно изучал).

Сейчас пока программирую железо с контроллерами.

Виртуальная машина Java наиболее близка к Форту. Есть проекты Forth to Java
(например HolonJ [http://holonforth.com]).

Интересно рассматривать Форт и Java процессоры, например JOP
[http://jopdesign.com/], cd16 [http://tinyboot.com], там же программирование
для контроллеров ucore120 и др.

Форт по сравнению с вышеперечисленными языками программирования.

в моем понимании обладает рядом уникальных свойств (их наличие не помешало
бы и другим языкам).

Вот некоторые из них:

1. Использование для "хранения" неименованных переменных стека данных.

В классических языках засилье всемозможных локальных именованных переменных
затрудняет понимание программы, отвлекая мышление. А использованию
процедурного стиля программирования мешает отсутствие доступа к результату
выражения, вне контекста его использования.

2. 0 (нуль) операндная модель вычисления и стек возвратов.

Но использование стека данных, при всех его плюсах, вносит дополнительную
неразбериху в код.

Мое предложение, по улучшению понимания форт программы, выглядит так:

Можно, по принципу структурного программирования, отмечать текущее состояние
глубины стека каким нибудь ключевым словом, например "mark" Парным словом
может быть, например "this".

Слово this служит нескольким целям:

a) Подсказывает при анализе программы в каком состоянии находится стек.
б) В режиме отладки или тестовых испытаниях, контролирует состояние стека с
   выдачей диагностического сообщения при его рассогласовании.

3. Почти безтиповый язык.

В качестве базового типа данных выступает ячейка памяти. В плане выявления
типа слова можно использовать определенную систему именования слов. Хотя, как
в Jave байт коде его можно ввести в выходной исполняемый код. А в PostScripte
стек данных, вообще, типизирован.

4. Простой синтаксис -- близкий к ассемблеру. ДССП может в плане структурности
   выглядит лучше.

5. Слово акцентирует внимание на логике работы программы, а не на передаче
данных.

В этом плане считаю, что в ассемблерных текстах программ не должно быть
команд пересылки данных.


Возвращаясь к основному вышеозначенному вопросу, то использовал
- Astro-Fort (досовская система),
- TCOM ( дос, система для программирования разных контроллеров),
- WIN32FORTH,
- Из форт-ОС с гибкого диска enth40

   ссылки на форт-ОСы http://cliki.tunes.org/OS
                      http://www.forthos.org
                      http://www.newmicros.com

PS: употребляя слово "xакер" и развивая данную тему не боишься попаться на
    глаза "старшему брату" :)

forth@km.ru>

а чего бояться ?

мечтаю вернуть этому слову его настоящий смысл -- козлы журналисты испортили,
в исходным смысле это "человек, глубого лезущий в компьютер, использующий
хитрые программы (в том числе и самописные) и приемы, в каком-то смысле вообще
тот что занимается не тем, чем остальные mainstream программеры (например
хитрыми языками, компиляторами, ОСами).

а в "конторах" народ вполне с мозгами (по крайней мере СОРМовцы и МВДшные
управления "К" и "Р"), если будут читать рассылку, я буду только рад

а вот чтобы СМИшникам пистон вставить и провести разъяснительную работу по
слову "хакер", надо нам всем скопом дойти до уровня типа Линуса Торвальдса,
сделать что-то заметное обычным юзерам, чтобы на центральном ТВ сбацали
несколько передач -- ау, где тут Малахов тусуется ? 8-)

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.forth
Отписаться
Вспомнить пароль

В избранное