Skip to main content

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

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



Учебник языка Форт со средой программирования

  | #Forth#programming

Форт (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.

About Mikhail Kiselev

Photo of Mikhail Kiselev

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