Gforth

gforthкроссплатформенная реализация стандартного ANSI Forth в рамках Проекта GNU[2]. Начиная с вышедшей в начале 2000 годов версии GForth 0.6 в состав пакета входит подпакет Vmgen — генератор виртуальных машин[3].

Gforth
Тип Интерпретатор, Компилятор
Автор Bernd Paysan, Anton Ertl
Разработчик GNU Project
Написана на C, Forth
Операционная система Unix-like, Microsoft Windows, DOS, OS/2, Android
Первый выпуск середина 1992 (1992)[1]
Последняя версия 0.7.3 (14 июня 2014 (2014-06-14))
Тестовая версия 0.7.9_20220127 (27 января 2022 (2022-01-27))
Лицензия GNU GPLv3
Сайт gnu.org/s/gforth/

История

Проект начали в середине 1992 года Bernd Paysan и Anton Ertl. Gforth — наследник проектов bigFORTH и fig-Forth[1][4][5]. Использует GCC для реализации быстрого прямого и косвенного шитого кода; Gforth полностью соответствует стандарту ANSI FORTH[2]. Gforth распространяется в рамках проекта GNU с 1996 года[6].

Gforth v. 0.5 (2000 год), реализовывал традиционный косвенный и, для некоторых из поддерживаемых платформ, прямой шитый код[7]. Начиная с версии 0.6, вышедшей в 2003 году, реализация основана на так называемом примитивоцентричном шитом коде (англ. primitive-centric threaded code) — гибридной модели между прямым и косвенным шитым кодом[8] с поддержкой оптимизации за счёт динамического объединения форт-слов в суперинструкции[9][10]. Версия 0.7 отличается более гибким, динамически кешируемым отображением форт-стеков на регистры процессора[7][11][12].[13]

В настоящее время ведётся разработка версии Gforth 0.7.9[14]

Примечания

  1. Origin - Gforth Manual
  2. directory.fsf.org: GNU Forth. Free Software Foundation (14 June 2014).
  3. M. Anton Ertl, David Gregg, Andreas Krall and Bernd Paysan. vmgen - A Generator of Efficient Virtual Machine Interpreters // Software—Practice and Experience. — 2001. Т. 32. С. 265-293.
  4. http://bigforth.sourceforge.net/ by Bernd Paysan
  5. http://home.hccnet.nl/a.w.m.van.der.horst/figforth.html
  6. Gregg and Ertl, 2004, с. 206.
  7. Ertl M. A. A look at Gforth performance // 25th EuroForth Conference. — 2009. С. 23-31.
  8. Direct or Indirect Threaded? - Gforth Manual. www.complang.tuwien.ac.at. Дата обращения: 17 января 2020.
  9. Dynamic Superinstructions - Gforth Manual. www.complang.tuwien.ac.at. Дата обращения: 17 января 2020.
  10. Ertl M. A. Threaded Code Variations and Optimizations // EuroForth 2001 Conference Proceedings. — 2001. С. 49-55.
  11. Ertl M. A., Gregg D. Combining stack caching with dynamic superinstruction // Interpreters, Virtual Machines and Emulators (IVME ’04). — 2004. С. 7-14.
  12. Ertl M. A., Gregg D. Stack caching in Forth // 21st EuroForth Conference. — 2005. С. 6-15.
  13. Gforth - GNU Project - Free Software Foundation.. www.gnu.org. Дата обращения: 17 января 2020.
  14. Bernd Paysan. Gforth mirror on GitHub (original is on Savannah). Contribute to forthy42/gforth development by creating an account on GitHub. — 2020-01-16.

Литература

  • D.E. Stevenson. Leaning a New Language, Gforth // Programming Language Fundamentals by Example. — CRC Press, 2006. — С. 37-46. — 256 с. — ISBN 9781420013351.
  • David Gregg and M. Anton Ertl. A Language and Tool for Generating Efcient Virtual Machine Interpreters // Domain-Specific Program Generation: International Seminar, Dagstuhl Castle, Germany, March 23-28, 2003, Revised Papers / Lengauer, C. and Batory, D. and Consel, C. and Odersky, M.. — Springer Berlin Heidelberg, 2004. — P. 196-214. — 332 p. — ISBN 9783540259350.

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.