Форт (Forth) довольно интересный язык программирования. Я бы сказал - привлекательный. Я не буду приводить здесь его характеристики, даже статья в википедии даст неплохое представление об этом языке. У меня в блоге есть “Заметки про форт”. К сожалению, некоторые премущества этого языка сегодня совершенно бесполезны. Например, Форт отлично работал на 8-битных компьютерах и его легко было “завести” на новом или экзотическом компьютере. Собственно, сегодня форт по-прежнему используется на экзотических платформах, вроде сорокаядерных процессоров. Остальное можно рассматривать как недостатки, добавляющие языку шарм, но не популярности среди разработчиков. Возможно, самым популярным применением языка форт является PostScript - язык, на который переводят документы, направляемые на печать, а также используемый в формате PDF. Но это не “чистый” форт, а скорее стековый язык программирования. Т.е. язык, унаследовавший основную черту Форт, но уже далеко ушедший от него в своём развитии.
Вкратце особенности языка - особая форма записи, называемая “обратной польской нотацией”. Она очень облегчает жизнь синтаксическому анализатору языка программирования, но требует привычки в использовании. Хранение данных в стеке. Хотя в языке есть строки, переменные и массивы - все операции проводятся только над числами в стеке. Отсутствие чисел с плавающей точкой. Впрочем, числа с плавающей точкой есть в некоторых диалектах Форт. Но за приведением типов, количеством аргументов и всем подобным должен следить программист. Отсутствие каких-либо стандартных библиотек. Думаю, каждый кто попытался изучать Форт назовёт ещё не один недостаток. Но в этом языке есть очарование.
Статья не о самом Форте, а о отличной находке, позволяющей выучить/вспомнить основы Форт. Особенность языка в том, что его просто реализовать. Ему не нужен соложный синтаксический анализатор (парсер). Программист может перенести Форт на новую платформу за несколько дней. И нашёлся тот, кто реализовал Форт на языке JavaScript. Теперь Форт можно осваивать в Easy Forth. Это одновременно и учебник языка и среда программирования.
Более продвинутый учебник называется Starting Forth. Надеюсь, в следующем материале я разберу несколько примеров из этого учебника, чтобы показать красоту Форт. Я сделаю это, если получится встроить среду исполнения форт-программ на JavaScript в свою запись в блоге.
Освоить азы Форт в Easy Forth можно с некоторым знанием английского языка и знанием самых основ программирования. Вся прелесть в том, что даже основы программировния тут нужны самые базовые. Стек легко представить как строчку из чисел с которыми делают какие-то манипуляции. Это даже легче, чем представить себе переменную с которых начинается освоение большинства языков программирования. Если вы знаете язык С - тем лучше, многие языковые конструкции дополнительно поясняются через аналоги на С.
Я начинал освоение Форта я книги “Язык Форт и его реализации”. Этой же книгой всё для меня закончилось. Мне было лет 12-13, когда я её купил. Небыло интернета и из компьютеров был ZX Spectrum, но небыло реализации Форт для этого компьютера. Увы, я не стал программистом на Форт и программистом вообще. Но, кажется, стал любителем Форта.
P.S. Нашёл много примеров графических программ на языке PostScript
- Статья Life in PostScript описывает, как написать программу Life на языке PostScript. Т.к. здесь не статическая, а динамическая картинка - разные прсмотрщики по-разному её открывают. Одни показывают только первый статический экран. другие обновляют картинку каждый раз при “пролистывании” на новую страницу.
- Статья “Снежинка Коха” описывыает программу, рисующую фрактальную снежинку, она же фрактал Коха.
- Статья “Аттрактор Лоренца” описывает решение системы дифференциальных уравнений в программе на PostScript
Скачать их можно в моём githab репозитории Postscript. Файлы можно скачать в консольном или графическом клиенте для Postscript, а можно вызвать выпадающее меню кнопки Code
и выбрать пункт Download ZIP
.