Forth (Форт) — мова програмування та середовище для програмування, розроблена Чарльзом Муром (також відомим як Чак Мур) на початку 1970-х у Національній радіообсерваторії США.

Forth
Парадигма процедурна, рефлексивна, стекова
Дата появи 1970-ті
Творці Чарльз Мур
Розробник Charles H. Moored
Система типізації Безтипова
Під впливом від Lisp, APL
Вплинула на PostScript, REBOL
Звичайні розширення файлів .fth, .fs, .4th, .fb, .f або .forth
Вебсайт forth-standard.org
CMNS: Forth у Вікісховищі

Forth є процедурною, стековою, рефлективною та безтиповою мовою програмування. Нові програми створюються шляхом розширення мови «новими словами» (позначення для підпрограм у Forth).

Найбільше поширення Forth отримав у вбудованих системах керування, як мова програмування інтелектуальних контролерів. Ранні версії Forth мали малий розмір, генерували ефективний код.

Історія ред.

Мова програмування Forth була створена Чарльзом Муром наприкінці 1960-х — початку 1970-х років. Перша реалізація мови Forth з'явилася у 1971 році, під час роботи Мура в Національній радіоастрономічній обсерваторії.

Нова мова була прийнята як основна в Американському астрономічному товаристві. Чарльз Мур та його колега Елізабет Ратер заснували компанію FORTH, Inc і протягом десятиліття портували мову на різні платформи.

Наприкінці 1970-х років, програмісти, що були зацікавлені у розвитку мови, створили FORTH Interest Group (FIG). Ця група розробила концепцію FIG Forth Model, що являє собою загальнодоступну форт-систему і може бути легко перенесена на популярні комп'ютерні архітектури. Часто цю систему розглядають як перший неофіційний стандарт мови.

Особливості ред.

У FORTH використовується стек для зберігання даних. Для запису операцій застосовується зворотна польська нотація. Наприклад, для обчислення виразу   та виводу результату на термінал у FORTH необхідно записати:

5 6 * 7 + .

в цьому разі, 5 та 7 буде покладено в стек, операція * замість двох верхніх чисел в стеку покладе їх добуток, операція + замість двох верхніх чисел із стека покладе їх суму, операція . надрукує верхнє число із стека і видалить його.

Для цієї операції можна визначити підпрограму, або, в термінах ФОРТ, створити нове слово, яке бере зі стека три числа, виконує дії та залишає на стекові результат:

: MULTANDSUM ( Створити нове слово з назвою MULTANDSUM.
               Зміна стека під час дії слова C,B,A ---> A*B+C )
 *           ( С,A*B)
 +           ( A*B+C)
;            ( Закінчити створення слова)

Використовуючи нове слово, вираз можна переписати так:

 7 5 6 MULTANDSUM .

Реалізація ред.

Завдяки простоті віртуальної машини Форта і відсутності еталонної реалізації існує безліч втілень цієї мови майже для всіх платформ (POSIX, Microsoft Windows, Mac OS X), а також вбудованих систем.

Реалізації сумісні із стандартом 1994 ANS Forth[1]:

  • Gforth — портативна реалізація ANS Forth проекту GNU Project[джерело?].
  • SwiftForth — інтерактивне середовище розробки (IDE) програм на Форті для популярних платформ (Windows, Linux та OS X для процесорів сімейству i386) компанії Forth, Inc, розробника мови програмування[2].
  • VFX Forth — високо-оптимізувальний компілятор з Форта[3].
  • Open Firmware — завантажувальник та BIOS стандарт, заснований на ANS Forth.
  • SP-Forth — транслятор та компілятор для середовищ Windows та Linux. Має повну підтримку вимог стандарту ANS'94, оптимізувальний компілятор та численні бібліотеки[4].
  • 51-FORTH — реалізація для мікроконтролера Intel 8051.

Див. також ред.

Діалекти ред.

Апаратне обладнання ред.

Примітки ред.

  1. https://www.taygeta.com/forth/dpans.html [Архівовано 11 липня 2016 у Wayback Machine.] Специфікація стандарту DPANS94
  2. Архівована копія. Архів оригіналу за 21 липня 2011. Процитовано 25 жовтня 2016. 
  3. About Forth » mpe - MicroProcessor Engineering. MPE new website. Архів оригіналу за 6 серпня 2020. Процитовано 25.10.2016. 
  4. Архівована копія. Архів оригіналу за 7 жовтня 2016. Процитовано 25 жовтня 2016. 

Джерела ред.

  • Баранов С. Н., Ноздрунов Н. Р. Язык Форт и его реализации. — Л.: Машиностроение. Ленинградское отделение, 1988. — 157 с., ил. ISBN 5-217-00324-3
  • Лео Броуди Начальный курс программирования на языке Форт — Перевод с английского В. А. Кондратенко Под редакцией Б. А. Кацева, В. А. Кириллина Предисловие И. В. Романовского — М. «ФИНАНСЫ И СТАТИСТИКА», 1990

Посилання ред.