Відмінності між версіями «Forth»

[неперевірена версія][перевірена версія]
(заміна окремих червоних посилань на шаблони НП з англ відповідниками)
 
(Не показано 22 проміжні версії 18 користувачів)
Рядок 3: Рядок 3:
 
| name = Forth
 
| name = Forth
 
| logo =
 
| logo =
| paradigm = [[Процедурне програмування|процедурна]], [[Рефлексивно-орієнтоване програмування|рефлексивна]], [[стек]]-орієнтована
+
| paradigm = [[Процедурне програмування|процедурна]], [[Рефлексивно-орієнтоване програмування|рефлексивна]], [[Стекова мова програмування|стекова]]
 
| year = 1970-ті
 
| year = 1970-ті
 
| designer = Чарльз Мур
 
| designer = Чарльз Мур
Рядок 14: Рядок 14:
 
'''Forth''' (Форт) — [[мова програмування]] та середовище для програмування, розроблена [[Чарльз Мур (програміст)|Чарльзом Муром]] (також відомим як Чак Мур) на початку 1970-х у Національній радіообсерваторії США.
 
'''Forth''' (Форт) — [[мова програмування]] та середовище для програмування, розроблена [[Чарльз Мур (програміст)|Чарльзом Муром]] (також відомим як Чак Мур) на початку 1970-х у Національній радіообсерваторії США.
   
Forth є [[Процедурне програмування|процедурною]], [[стек]]овою, рефлективною та [[тип даних|безтиповою]] мовою програмування. Нові програми створюються шляхом розширення мови «новими словами» (позначення для підпрограм у Forth).
+
Forth є [[Процедурне програмування|процедурною]], [[Стекова мова програмування|стековою]], рефлективною та [[тип даних|безтиповою]] мовою програмування. Нові програми створюються шляхом розширення мови «новими словами» (позначення для підпрограм у Forth).
   
 
Найбільше поширення Forth отримав у вбудованих системах керування, як мова програмування інтелектуальних контролерів. Ранні версії Forth мали малий розмір, генерували ефективний код.
 
Найбільше поширення Forth отримав у вбудованих системах керування, як мова програмування інтелектуальних контролерів. Ранні версії Forth мали малий розмір, генерували ефективний код.
   
 
== Історія ==
 
== Історія ==
Мова программування Forth була створена Чарльзом Муром наприкінці 1960х - початку 1970х років. Перша реалізація мови Forth з’явилася у 1971 році, під час роботи Мура в Національній радіоастрономічній обсерваторії.
+
Мова програмування Forth була створена Чарльзом Муром наприкінці 1960-х — початку 1970-х років. Перша реалізація мови Forth з'явилася у 1971 році, під час роботи Мура в Національній радіоастрономічній обсерваторії.
   
Нова мова була прийнята в якості основної в [[Американське астрономічне товариство|Американському астрономічному товаристві]]. Чарльз Мур та його коллега Елізабет Ратер заснували компанію FORTH, Inc, і на протязі десятиліття портували мову на багаьо різних платформ.
+
Нова мова була прийнята як основна в [[Американське астрономічне товариство|Американському астрономічному товаристві]]. Чарльз Мур та його колега Елізабет Ратер заснували компанію FORTH, Inc і протягом десятиліття портували мову на різні платформи.
  +
  +
Наприкінці 1970-х років, програмісти, що були зацікавлені у розвитку мови, створили FORTH Interest Group (FIG). Ця група розробила концепцію FIG Forth Model, що являє собою загальнодоступну форт-систему і може бути легко перенесена на популярні комп'ютерні архітектури. Часто цю систему розглядають як перший неофіційний стандарт мови.
   
 
== Особливості ==
 
== Особливості ==
Рядок 29: Рядок 31:
 
5 6 * 7 + .
 
5 6 * 7 + .
   
в цьому разі, 5 та 7 буде покладено в стек, операція <tt>*</tt> замість двох верхніх чисел в стеку покладе їх добуток, операція <tt>+</tt> замість двох верхніх чисел із стеку покладе їх суму, операція <tt>.</tt> надрукує верхнє число із стеку і видалить його.
+
в цьому разі, 5 та 7 буде покладено в стек, операція <tt>*</tt> замість двох верхніх чисел в стеку покладе їх добуток, операція <tt>+</tt> замість двох верхніх чисел із стека покладе їх суму, операція <tt>.</tt> надрукує верхнє число із стека і видалить його.
   
 
Для цієї операції можна визначити підпрограму, або, в термінах ФОРТ, ''створити нове слово'', яке бере зі стека три числа, виконує дії та залишає на стекові результат:
 
Для цієї операції можна визначити підпрограму, або, в термінах ФОРТ, ''створити нове слово'', яке бере зі стека три числа, виконує дії та залишає на стекові результат:
   
 
: MULTANDSUM ( Створити нове слово з назвою MULTANDSUM.
 
: MULTANDSUM ( Створити нове слово з назвою MULTANDSUM.
Зміна стеку під час дії слова C,B,A ---> A*B+C )
+
Зміна стека під час дії слова C,B,A ---> A*B+C )
 
* ( С,A*B)
 
* ( С,A*B)
 
+ ( A*B+C)
 
+ ( A*B+C)
Рядок 42: Рядок 44:
   
 
7 5 6 MULTANDSUM .
 
7 5 6 MULTANDSUM .
  +
  +
== Реалізація ==
  +
Завдяки простоті віртуальної машини Форта і відсутності еталонної реалізації існує безліч втілень цієї мови майже для всіх платформ ([[POSIX]], [[Microsoft Windows]], [[Mac OS X]]), а також [[Вбудована_система|вбудованих систем]].
  +
  +
* [[Bashforth]]
  +
  +
Реалізації сумісні із стандартом 1994 ANS Forth<ref>https://www.taygeta.com/forth/dpans.html Специфікація стандарту DPANS94</ref>:
  +
  +
* [[Gforth]]&nbsp;— портативна реалізація ANS Forth проекту [[GNU Project]]{{Джерело?}}.
  +
* SwiftForth&nbsp;— інтерактивне середовище розробки (IDE) програм на Форті для популярних платформ (Windows, Linux та OS X для процесорів сімейству i386) компанії Forth, Inc, розробника мови програмування<ref>http://www.forth.com/ </ref>.
  +
* VFX Forth&nbsp;— високо-[[оптимізувальний компілятор]] з Форта<ref>{{cite web|url=http://www.mpeforth.com/sample-page/about-forth-2/|title=About Forth » mpe - MicroProcessor Engineering|author=|date=|work= MPE new website|accessdate=25.10.2016}}</ref>.
  +
* [[Open Firmware]]&nbsp;— [[Завантаження_операційної_системи|завантажувальник]] та [[BIOS]] стандарт, заснований на ANS Forth.
  +
* [[SP-Forth]]&nbsp;— транслятор та компілятор для середовищ Windows та Linux. Має повну підтримку вимог стандарту ANS'94, оптимізувальний компілятор та численні бібліотеки<ref>http://spf.sourceforge.net/</ref>.
  +
* [[51-FORTH]]&nbsp;— реалізація для мікроконтролера Intel 8051.
  +
  +
== Див. також ==
  +
  +
=== Діалекти ===
  +
* {{iw|Joy (мова програмування)|Joy|en|Joy (programming language)}}
  +
* [[STOIC]]
  +
* [[colorForth]]
  +
* {{нп|Factor||en|Factor (programming language)}}
  +
  +
=== Апаратне обладнання ===
  +
* [[Stack machine]]
  +
* [[RTX2010]]
  +
  +
== Примітки ==
  +
{{reflist}}
   
 
== Джерела ==
 
== Джерела ==
* Баранов С. Н., Ноздрунов Н. Р. Язык Форт и его реализации.&nbsp;— Л.: Машиностроение. Ленинградское отделение, 1988.&nbsp;— 157&nbsp;с., ил. ISBN 5-217-00324-3
+
* ''Баранов С. Н., Ноздрунов Н. Р.'' Язык Форт и его реализации.&nbsp;— Л.: Машиностроение. Ленинградское отделение, 1988.&nbsp;— 157&nbsp;с., ил. ISBN 5-217-00324-3
  +
* ''Лео Броуди'' Начальный курс программирования на языке Форт&nbsp;— Перевод с английского В.&nbsp;А.&nbsp;Кондратенко Под редакцией Б.&nbsp;А.&nbsp;Кацева, В.&nbsp;А.&nbsp;Кириллина Предисловие И.&nbsp;В.&nbsp;Романовского&nbsp;— М. «ФИНАНСЫ И СТАТИСТИКА», 1990
   
 
== Посилання ==
 
== Посилання ==
 
* [http://forth.org.ua/ Український Forth]
 
 
* [http://www.forth.org/ Forth Interest Group]
 
* [http://www.forth.org/ Forth Interest Group]
 
* [http://dmoz.org/Computers/Programming/Languages/Forth/ Сторінка Forth на dmoz.org]
 
* [http://dmoz.org/Computers/Programming/Languages/Forth/ Сторінка Forth на dmoz.org]
 
* [http://www.mpeforth.com/books.htm Перелік книжок про Forth], деякі доступні в інтернеті.
 
* [http://www.mpeforth.com/books.htm Перелік книжок про Forth], деякі доступні в інтернеті.
* [http://www.dataman.ro/dforth/ Delta Forth .NET], Forth компілятор для платформи [[.NET]], [[Mono]]
+
* [https://web.archive.org/web/20070407183932/http://www.dataman.ro/dforth/ Delta Forth .NET], Forth компілятор для платформи [[.NET]], [[Mono]]
   
 
{{Compu-lang-stub}}
 
{{Мови програмування}}
 
{{Мови програмування}}
   
 
[[Категорія:Сімейство_мов_програмування_Forth]]
 
[[Категорія:Сімейство_мов_програмування_Forth]]
  +
[[Категорія:Системні мови програмування]]
 
{{Compu-lang-stub}}
 

Поточна версія на 20:51, 31 серпня 2021

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

Forth
Парадигма процедурна, рефлексивна, стекова
Дата появи 1970-ті
Творці Чарльз Мур
Розробник Charles H. Moored
Система типізації Безтипова
Під впливом від Lisp, APL
Вплинула на PostScript, REBOL
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 Специфікація стандарту 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

ПосиланняРедагувати