Forth

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Forth
Парадигма: процедурна, рефлексивна, стек-орієнтована
Дата появи: 1970-ті
Творці: Чарльз Мур
Система типізації: Безтипова
Під впливом від: Lisp, APL
Вплинула на: PostScript, REBOL

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

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].

Дивись також[ред.ред. код]

Діалекти[ред.ред. код]

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

Примітки[ред.ред. код]

  1. https://www.taygeta.com/forth/dpans.html Специфікація стандарту DPANS94
  2. http://www.forth.com/
  3. About Forth » mpe - MicroProcessor Engineering. MPE new website. Процитовано 25.10.2016. 
  4. http://spf.sourceforge.net/

Джерела[ред.ред. код]

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

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