true-grue писал(а):
Ориентированность на личность, на кустаря-одиночку, независимого от чужого инструментария.
Одним из замечательных "дебилизмов" является: "Ориентированность [FORTH] на личность, на кустаря-одиночку, независимого от чужого инструментария". Очень удобно. Не "я не умею писать на FORTH", а "я давно перерос кустарный уровень".
Вспомним Мура -
"у нас только голое железо". Что же теперь "классическому фортеру" при покупке нового компьютера сразу сносить операционную систему, стирать BIOS, выламывать процессоры, заменяя их "патентованными FORTH-кристаллами"? Какая такая злая сила запрещает фортеру пользоваться "чужим инструментарием"? Только одна - непонимание FORTH. Научили когда-то писать FORTH в кодах процессора Z80 - с этим знанием и помрут.
Начнем с другого конца. Возьмем обычную визуальную программу под Windows. Из чего она состоит? Окошко. В окошке кнопочки. Нажатие на кнопочки порождает какие-то действия, возможно появление новых окошек с новыми кнопочками... Т.е. мы имеем ПОТОК сообщений от пользователя, СЛОВАРЬ сообщений пользователя, на которые программа реагирует, СТЕК - сохраняющий данные окна родителя, пока пользователь что-то делает со ЗНАЧЕНИЕМ в дочернем окне...
Можно ли написать FORTH-процедуры - ОК-СИМВОЛ-ВЫПОЛНИТЬ-КОМПИЛИРОВАТЬ-СЛЕДУЮЩИЙ , чтобы это заработало как "настоящий FORTH"?
С процедурой СИМВОЛ никаких проблем - уж что-что, а "символы" Win-соообщений Win-программисты распознавать умеют (хотя и далеки от мысли, что те являются неким "языком").
Процедуры ВЫПОЛНИТЬ и СЛЕДУЮЩИЙ, вроде, тоже работают "сами по себе", разве что, все "слова" Win-программы кодовые, а не шитые.
Серьезнее проблема с КОМПИЛИРОВАТЬ - однако и ее Win-программисты решают успешно, причем даже, не на уровне Win-API-программирования, а даже в каком-нибудь Visual Basic
(См. EXPRESSOR). Добавить в начало не-IMMEDIATE слов фразу "if(STATE) - добавь message в табличку" - не проблема.
Остается только ОК.
Опять Мур. Чем сложнее "машина" на которой мы пишем FORTH, тем сложнее ОК - ведь он и должен, в конце концов, выводить эти самые "окошки". Теории FORTH-интерфейса пока не создано, поэтому задача решается строго ро месту. Главное - понимать, что весь вывод Win-Controls должен жить в ОК.
Что мы т.о. имеем? Псевдо-FORTH, который по мере "совершенствования" будет все ближе напоминать "обычный". Например, постепенным сведением ОК к обычной Win-консоли, придумыванием "словам" текстовых имен, формализацией СТЕКА... Как показывает мой опыт, задача, ради решения которой и писалась, программа будет решена гораздо раньше. FORTH полезен не только в виде вставки в программу всего этого обязательного балета "цикла управления", а, даже, в виде простого понимания "что за что отвечает". Куда ему расти дальше?
Переходить с уровня на уровень.И самое смешное. Многие фортеры любят поминать игры, в которых вставляются "программируемые на FORTH виртуальные компьютеры", но свой компьютер как подобную "машину" не воспринимают. Автор упомянутого вначале "дебилизма" - в том числе.
Настоящие фортеры часто даже не знают слова FORTH!
Оригинал -
http://gudleifr.forum2x2.ru/t14-topic#28