Pull to refresh

Comments 12

Как я люблю все это волшебство определений слов!
Почему то это ложится куда приятнее чем всяческие темплейты и фабрики. Возможно ностальгия, а, возможно, что-то большее.

Мы сейчас очень пристально рассматриваем вариант разработки наших алгоритмов sense cognition на forth.

Единственное, что пока вызывает взрыв не очень конструктивной фантазии, это хорошая форт-архитектура работы с базой данных. Нет ли у Вас каких-нибудь идей по этому поводу?
Для работы с базами данных есть наработки еще у Андрея Черезова и Дмитрия Якимова. То-есть какие-то библиотеки в комплекте есть. Разбираться нужно с этим. С другой стороны, если хорошо знать предметную область, можно наработать необходимые абстракции. Собственно, хорошо поставленное задание уже является решением на Форте. Вполне возможно, что решение Вашей проблемы с базой данных лежит в иной плоскости.
А какие из реализаций Форта сегодня наиболее актуальны? Раньше вот sp-forth Андрея Черезова очень нравился, его и под Линукс портировали, а потом все заглохло.
Это и есть SP-Forth. В предыдущем топике давали ссылку на GForth.
Да, я видел. Интересно, есть ли развитие в форт-машинах. К примеру sp-forth практически 5 лет не движется вперед, есть отдельные форки (64битная версия spf, к примеру), но особого комьюнити у них нет.
Непонятно, какое развитие требуется от форт-машин. Сама по-себе форт-машина реализуется для любой железки за несколько рабочих дней. Тот же GForth портирован на кучу платформ. Надо просто пользоваться языком. Никто ведь не мешает в SP-Forth определить, например, команду CRC-32, которая есть в системе команд современных процессоров. Очень мало народу пишет на форте. И платить деньги за разработку на нем никто не хочет. Комьюнити организовать или найти не проблема. Часть его вот она, прямо здесь.
Чрезвычайно интересное применение Форта на микропроцессорах. Сам использовал прошивку AmForth на AVR Atmega. Показывая другим, вызывал легкий шок, как это, используя только отладочную плату, удается написать, «откомпилировать» и выполнить программку. Даже простую, помигать диодиками. И с хорошим таймингом. И там поле не паханное для развития: полноценная диагностика на работающем устройстве, целевая компиляция, разработка IDE.
Конечно. В такие штучки Форт ложится очень хорошо. Форт-машина, по хорошему, штука слоистая.
1-й уровень — опкод-ассемблер
2-й уровень — ассемблер-низкоуровневое слово Форта, всякие + @ и т.п., причем совсем необязательно стараться написать их все, что есть в стандарте.
3-й уровень — высокоуровневые определения через: CREATE VARIABLE и т.п. Вот определяющие слова, двоеточие, СREATE DOES> реализовывать обязательно. Это фундамент следующего,
4-го уровня — уровня приложений.
Внезапно, а обратите внимание на FACTOR
В предыдущем топике было дело. Внешний вид похож, да. Идеология иная. Стеки, словарь, синтаксис — это часть, антураж.
Главное в Форте — возможность создания собственных определяющих слов. Все языки похожи на чемодан с инструментами, или кладовку где лежат чемоданы инструментов. В Форте есть один инструмент, с помощью которого можно сделать любой нужный инструмент. Этакая звуковая отвертка.
Да, то, что мне нравится в философии Форта — это инструмент создания инструментов, маленький инструментальный цех :)
То есть по сути это инструмент для создания под каждую задачу своего диалекта (если уж не языка) программирования. Форт определяет минимальный исходный синтаксис.

И вот для нашего случая, когда существующие языки программирования все равно не предлагают необходимых структур данных и их нужно определять с весьма низкого уровня, то делать это нужно либо на C, определяя низкоуровневую библиотеку, а затем над ней надстраивая высокий уровень, либо на Форте. При этом, за несколько часов можно освоить программирование (я даже несколько сомневаюсь, что слово программирование реально подходит) на Форте куда эффективнее, чем на любом другом языке.
Обратил, но, натукнувшись на blogs.trust.ua/levenchuk/2010/05/11/505/Novii-Forth----yazik-programmirovaniya-Factor/ заинтересовался

Кстати, по поводу Smalltalk: Алан Кей грязно ругается по поводу нынешних версий этого языка, говоря, что первоначальную идею объектов современные (начиная с 1980г.) версии Smalltalk испортили и исказили в угоду производительности на текущих архитектурах железа. А поначалу в Smalltalk объекты были не пассивными, а вполне активными и автономными, то бишь не столько «объектами», сколько акторами (http://en.wikipedia.org/wiki/Actor_model). Это было в том числе в Smalltalk-71. Следующая версия языка работала в 180 раз быстрее, но вся красота из нее ушла — и дальше неожиданные рассуждения о том, что в те акторские поры родственником Smalltalk был PLANNER и General Problem Solver, т.е. логическая парадигма программирования. В FONC эту идею «объектов-акторов» поднимают на щит в виде двух идей: логического языка и парадигмы «программирования как планирования» (ага, это от PLANNER, оказывается), а также идеи выдать каждому объекту собственный IP-адрес в интернете (ибо этот объект вполне автономен и мало ли где может находиться — тут и до SOA недалеко).

Опять же, акторские языки продолжают цвести и пахнуть до сих пор — хотя так же нишево, как и стековые (concatenative languages). Вот пример: ABE (Actor-Based Environment) и его язык Humus — dalnefre.net/drupal/node/2. Автор этого проекта Dale Shumacher говорит, что идеи FONC/STEP уже были учтены в этом проекте.
Sign up to leave a comment.

Articles