Forth: відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[перевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Luda S Luda (обговорення | внесок)
Мітка: Скасовано
Рядок 77: Рядок 77:
* ''Баранов С. Н., Ноздрунов Н. Р.'' Язык Форт и его реализации. — Л.: Машиностроение. Ленинградское отделение, 1988. — 157 с., ил. ISBN 5-217-00324-3
* ''Баранов С. Н., Ноздрунов Н. Р.'' Язык Форт и его реализации. — Л.: Машиностроение. Ленинградское отделение, 1988. — 157 с., ил. ISBN 5-217-00324-3
* ''Лео Броуди'' Начальный курс программирования на языке Форт — Перевод с английского В. А. Кондратенко Под редакцией Б. А. Кацева, В. А. Кириллина Предисловие И. В. Романовского — М. «ФИНАНСЫ И СТАТИСТИКА», 1990
* ''Лео Броуди'' Начальный курс программирования на языке Форт — Перевод с английского В. А. Кондратенко Под редакцией Б. А. Кацева, В. А. Кириллина Предисловие И. В. Романовского — М. «ФИНАНСЫ И СТАТИСТИКА», 1990
* ''Платов, І. М.'' [https://ela.kpi.ua/handle/123456789/31546 Дослідження ефективності використаня мови Forth на сучасних мікроконтролерах] / І. М. Платов, О. М. Павловський // XV Всеукраїнська науково-практична конференція студентів, аспірантів та молодих вчених «Ефективність інженерних рішень у приладобудуванні», 10-11 грудня 2019 року, м. Київ, Україна : збірник праць конференції / КПІ ім. Ігоря Сікорського, ПБФ, ФММ. – Київ : КПІ ім. Ігоря Сікорського; Центр учбової літератури, 2019. – С. 41–44. – Бібліогр.: 7 назв.


== Посилання ==
== Посилання ==

Версія за 08:00, 2 червня 2020

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

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].
  • 51-FORTH — реалізація для мікроконтролера Intel 8051.

Див. також

Діалекти

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

Примітки

  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
  • Платов, І. М. Дослідження ефективності використаня мови Forth на сучасних мікроконтролерах / І. М. Платов, О. М. Павловський // XV Всеукраїнська науково-практична конференція студентів, аспірантів та молодих вчених «Ефективність інженерних рішень у приладобудуванні», 10-11 грудня 2019 року, м. Київ, Україна : збірник праць конференції / КПІ ім. Ігоря Сікорського, ПБФ, ФММ. – Київ : КПІ ім. Ігоря Сікорського; Центр учбової літератури, 2019. – С. 41–44. – Бібліогр.: 7 назв.

Посилання