Gforth

Gforth
Логотип программы Gforth
Тип Интерпретатор, Компилятор
Авторы Bernd Paysan, Anton Ertl
Разработчик Проект GNU
Написана на C, Forth
Операционные системы Unix-like, Microsoft Windows, DOS, OS/2, Android
Дата выпуска 1992[1]
Последняя версия 0.7.3 (14 июня 2014; 12 лет назад (2014-06-14))
Тестовая версия 0.7.9_20220310 (10 марта 2022; 4 года назад (2022-03-10))
Репозиторий git.savannah.gnu.org/cgi…
Лицензия GPL 3.0 или более поздняя[2]
Сайт gnu.org/software/… (англ.)
Логотип Викисклада Медиафайлы на Викискладе

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

История

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

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

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

Примечания

  1. http://www.complang.tuwien.ac.at/forth/gforth/Docs-html/Origin.html
  2. Free Software Directory
  3. 1 2 directory.fsf.org: GNU Forth. Free Software Foundation (14 июня 2014). Дата обращения: 16 декабря 2015. Архивировано 19 февраля 2016 года.
  4. 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. Архивировано 30 марта 2017 года.
  5. Ошибка в сносках?: Неверный тег <ref>; для сносок origin не указан текст
  6. http://bigforth.sourceforge.net/ Архивная копия от 2 апреля 2015 на Wayback Machine by Bernd Paysan
  7. Архивированная копия. Дата обращения: 16 декабря 2015. Архивировано 10 февраля 2016 года.
  8. Gregg and Ertl, 2004, с. 206.
  9. 1 2 Ertl M. A. A look at Gforth performance // 25th EuroForth Conference. — 2009. — С. 23-31.
  10. Direct or Indirect Threaded? - Gforth Manual. www.complang.tuwien.ac.at. Дата обращения: 17 января 2020. Архивировано 18 декабря 2019 года.
  11. Dynamic Superinstructions - Gforth Manual. www.complang.tuwien.ac.at. Дата обращения: 17 января 2020. Архивировано 18 декабря 2019 года.
  12. Ertl M. A. Threaded Code Variations and Optimizations // EuroForth 2001 Conference Proceedings. — 2001. — С. 49-55. Архивировано 11 апреля 2021 года.
  13. Ertl M. A., Gregg D. Combining stack caching with dynamic superinstruction // Interpreters, Virtual Machines and Emulators (IVME ’04). — 2004. — С. 7-14. Архивировано 11 апреля 2021 года.
  14. Ertl M. A., Gregg D. Stack caching in Forth // 21st EuroForth Conference. — 2005. — С. 6-15. Архивировано 11 апреля 2021 года.
  15. Gforth - GNU Project - Free Software Foundation. www.gnu.org. Дата обращения: 17 января 2020. Архивировано 31 января 2020 года.
  16. Bernd Paysan. Gforth mirror on GitHub (original is on Savannah). Contribute to forthy42/gforth development by creating an account on GitHub. — 2020-01-16. Архивировано 5 ноября 2020 года.

Литература

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

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.