Skip to main content

Блог инженера

Блог о минимализме, инжинерии и программировании.



Ресурсы по языку программирования Форт

  | #Форт#программирование

Здесь я собираю сведения, в основном о действующих сайтах по языку Форт. В некоторых случаях - о старых, но ещё актульных или полезных проектах. Подборка разбита на три категории:

  • Русскоязычные сайты
  • Англоязычные сайты
  • Реализации языка Форт

К сожалению, изучение Форт сегодня - это археология.

Форт-ресурсы на русском языке

Сейчас я пытаюсь наполнить эту секцию сколько-нибудь актуальным содержимым. После 1993 года про Форт на русском языке почти ничего не публикуется.

Способ мышления - ФОРТ. Язык и философия для решения задач.”. Перевод Thinking Forth.

Язык Форт и его реализации. Это не перевод, а сколько-нибудь оригинальный труд. Можно сказать, что с этой книги началось моё увлечение Форт, только вот в те времена ни одной реализации Форт под руками небыло. Поэтому увлечение было теоретическим-платоническим.

Программирование на языке Форт. Пока ничего не могу сказать про это пособие, кроме того, что оно есть.

Форт-ресурсы на английском языке

And so Forth…

Учебник по Форт. Ссылка ведёт на текст от 2001 года, мне неизвестны более поздние редакции. Я считаю это руководство почти образцовым. Оно умещается на 65 страницах, закрывает все важные темы и, в то же время, оно не настолько базовое, как Starting Forth, например. В учебнике есть базовые сведения, но они даны довольно кратко. Учебник хорошо структурирован и ведёт от основ к сложному. Так что его нужно читать последовательно. Для меня это большой плюс, такие учебники можно пролистывать сначала и начать разбирать подробно с тех страниц, где начались сложности.

Руководство выпущено под свободной лицензией GNU Free Documentation License. Есть более старые редакции этого же пособия, они написаны к собственной реализации Форт автора текста - 4tH. Но пособие 2001 года переработано для ANS1-совместимых реализаций Форт. В приложениях есть информация о расширениях 4tH.

Starting Forth

Первая редакция.

Вторая редакция.

Знакомиться с первым изданием можно больше для понимания истории Форта. Второе издание книги адаптировано к ANS Forth и осовременено, насколько так можно сказать про текст 2003 года. С моей точки зрения - это лучший учбеник Форт и один из лучших учебников программирования вообще. Шикарные иллюстрации автора Лео Броуди, напоминающие позднесоветсткую научно-популярную литературу, отличное изложение. Для человека, закомого с программированием вообще и с азами Форт в частности оно излишне подробное, но читается хорошо. Пособие также хорошо тем, что не касается специфичных реализаций Форт. Авторы обещают, что все примеры будут работать в SwiftForth и iForth. Но у меня небыло проблем и с pForth. Т.к. не используются расширения, всё должно работать в любом ANS-совместимом Форт.

Для новичков и знакомящихся с Форт рекомендую именно это пособие.

Thinking Forth

Это следующий учбеник Лео Броуди после “Starting Forth”. Опять отличные иллюстрации и отличный стиль изложения. В разделе по книгам на русском языке есть ссылка на превод этой книги “Способ мышления - Форт”. Но если у вас сколько-нибудь приличное понимание анлийского - я рекомендую читать оригинал. Перевод книги весьма качественный, но вот стиль изложения в нём теряется.

Ссылка ведёт на сайт, где книгу ‘Thinking Forth’ отсканировали, оформили в LaTeX и выложили несколько разных версий в pdf. У авторов были отличные идеи по осовремениванию книги и добавлению новых разделов. К сожалению, сделать эту работу они не смогли. Уже шесть лет никто не дополняет материалы сайта, а я даже и пытаться не буду.

Programming Forth

Учебник Форт. Ссылка ведёт на текст от 2001 года. Это учебник от MicroProcessor Engineering Limited, у которых есть своя реализация Форт. Проект не выглядит живым, но последние обновления не старые - до 2016 года была какая-то активность. Учебник описывает ANS-совместимую реализацию Форт. Примерно до половины книги рассматривается Форт в целом. Со второй половины рассматриваются встраиваемые Форт-системы на чём и специализировалась компания. Учебник весьма подробный. Он наверняка хорош для встраиваемых систем. Что касается Форт - я посоветую, скорее учбеники “Starting Forth”, “And so Forth …” и “Thinking Forth”.

A Beginner’s Guide to Forth

Вполне соответствует своему названию. Руководство для новичков с необходимой базовой информацией. С моей точки зрения - оно сильно проигрывает Starting Forth, поэтому не читал. Впрочем, хотя пособие и базовое - оно заканчивается на рассмотрении конструкции CREATE ... DOES>, т.е. на одной из самых важных и продвинутых особенностей Форт.

Forth In 100 Steps

Учебник по Форту, он продаётся за 15$, первая глава доступна для ознакомления. Руководство выглядит очень лаконичным, но я ещё не собрался купить книгу целиком. Для подготовленного читателя такое руководство может быть очень удобным для краткого введения в язык. Но, с моей точки зрения, оно не погружает в “философию форт”. С другой стороны - оно про программирование игры Сокобан, а это всегда интересно.

An Introduction to Forth Using StackFlow

Очень краткое и очень понравившееся мне базовое руководство по Форт. Оно настолько кратко и настолько мне понравилось, что я решил его перевести. Надеюсь, вскоре я добавлю ссылку на это руководство и в раздел с русскоязычными материалами.

Реализации языка Форт

Win32Forth Project Group.

Довольно интересная и “живая” реализация Форт. Работает только в Windows, имеет собственную IDE. Соответствует стандарту ANS Forth1. Есть хорошая документация по этой реализации Форт. Действительно хорошая, большинство других реализаий документированы куда хуже. У разработчиков нет планов перенести Win32Forth на Linux или MacOS. Также они не заявили о поддержке Windows 10, но по факту всё работает отлично. Команда нерегулярно обновляет сайт проекта и многие сведения уже неактуальны.

Последняя, на момент написания текста, версия Win32Forth - w32f61505.exe. Это версия для разработчиков от 28 марта 2019 года, но она отлично работает под Windows 10. Чего не скажешь о старых, “стабльных” версиях. Обратите внимание! Разработка Форт продолжается, а вот сайт не обновляется. Поэтому ссылки с сайта документации - устаревшие.

Сайт проекта имеет все признаки упадка. Кто-то продолжает развитие проекта, но не имеет сил или желания документировать это. В самой папке Win32Forth после установки содержится достаточно неплохая документация. Она плохо структурирована, так что придётся задействовать все ресурсы: FAQ, документацию на сайте и документацию из папки проекта. Для графических приложений знание Win32 API или готовность их изучить - обязательна.

Помимо ссылок выше у проекта есть несколько других сайтов. Там приведена устаревшая информация, приводятся ссылки на древние дистрибьютивы форта. Таких “хвостов” несколько.

4tH

SwiftForth

Начать стоит с того, что оценочную версию можно использовать бесплатно, но полная версия стоит $399. Возможно, это неплохая цена за современный (читай - поддерживаемый) кросс-платформенный Форт. Работает под MacOS, Linux, Windows. Поддерживаются 32/64 - разрядные архитектуры. Для GUI приложений используются “родные” для ОС API, поэтому графические приложения не будут кросс-платформенными. Можно собирать исполняемые файлы. Поддерживается объектно-ориентированное программирование. С этой реализации Форт распространяется действительно хорошее справочное пособие.

Ложка дёгтя - 32/64 разрядные архитектуры поддерживаются, но сам SwiftFort - 32 разрядный. Поэтому не работает на последних MacOS и на дистрибьютивах Linux с отключенной поддержкой 32-разрядных приложений.

Можно писать встроенные приложения для Raspberry Pi / Beaglebone, но нужен кросс-компилятор. Т.е. Linux поддерживается только на x86 архитектурах. Неоднозначно. Как любитель и пользователь MacOS я пока не собрался купить SwiftForth.

iForth

Пока я планирую ближе ознакомиться с этим Форт. Оно стоит 100 EUR, т.е. дешевле SwiftForth. Особенность шестой версии в том, что это полностью 64-разрядный Форт. Заявлено, что он запускается на всех современных Windows, вплоть до Windows 10 и на Linux/MacOS компьютерах. Поддерживаются графические возможности, но это вывод графики, а не GUI. Руководство к iForth

Я планирую уточнить у автора, работает ли iForth в 64-разрядных MacOS. Если работает - весьма возможно, что я и куплю эту версию. В ней есть всё, что мне нужно на сегодняшний день.

Разнообразные ресурсы по Форт

Страница Бреда Нельсона. Это GitHub с проектами некоего Бреда Нельсона. Есть даже форт-слова для рендеринга.

Форт хайку. Очень интересный своей выразительности проект. Очень короткими программами можно создавать очень интересные визуальные эффекты. Это специализированная реализация Форт словарь которой предусматривает обработку шрейдеров. С их помощью можно создавать визуальные эффекты и игры. Нужно заметить, никаких спрайтов там нет. Все кадры генерируются во время исполнения кода, как в старинных игровых консолях Atari. Стоит изучить код - это образец минимализма в программировании. Одна проблема - я не понимаю, как эти Хайку работают.

Forth Information on Taygeta. Чудом продолжающий жить ресурс по Форт. Видимо, это чья-то небольшая IT фирма. Многие, если не большинство ссылок уже “мёртвые”. Система, в основном, отсутствует. Как, впрочем, и в этой моей странице. Но если начинать бродить по ссылкам с этой точки - можно найти интересные материалы про Форт.

Forth Literature and Education. Это раздел сайта Taygeta, см. выше. Ещё больше битых ссылок и меньше системы.

Links to Forth programs. Пример удивительного соответствия формы названию. Это действительно набор ссылок на различные программы на Форте. Хотя очень много ссылок уже мёртвые, ещё можно найти “настоящие”, а не учебные программы для Форт.

Страница Albert Nijhof про Форт. Очевидно, страница какого-то норвежского энтузиаста Форт. Я бы не стал приводить её здесь, не будь страница удивительно живая. Последнее обновление в прошлом году. По меркам Форта - это очень актуальный ресурс.

DNW’s Forth Page. Ещё одна страница энтузиаста Форт с интересными ссылками. Я имею в виду - реально интересными. Структуры данных в Форт, новые управляющие структуры и много всего другого. Кроме того, многие материалы хранятся в архиве автора, поэтому битых ссылок относительно немного.

comp.lang.forth. Это конференция по языку Форт. Возможно, это последнее место, где теплится жизнь, идут обсуждения. Язык - английский. За, предположительно три десятилетия существования новостной конференции в ней накопилось 25000 тем. Значит возникает примерно по одной новой теме каждые два дня. Больше общаться с единомышленниками всё равно негде. Имея аккаунт Google можно писать и читать эту конференцию.

  1. American National Standard for Information Systems. Единственный “настоящий” стандарт языка Форт. Особенность Форта в том, что на эту стандартную базу каждая реализация добавляет собственные расширения. Объектно-ориентированное программирование, GUI интерфейсы. Таким образом, программа под конкретную реализацию ANS-совместимого Форт едва ли так просто заработает на другой реализации. Для этого программа тоже должна быть ANS-совместимой и не использовать расширений.  2

About Mikhail Kiselev

Photo of Mikhail Kiselev

Приветствую в моём блоге! 😄 Меня зовут Михаил. Я инженер и программист. Живу в Сибири, работаю на Сахалине, путешествую где придётся. Я предпочитаю пост в блог посту в твиттер. Описание полезной технологии или гаджета предпочитаю описанию заката или посиделок в кафе.