Какую реализацию Forth я должен использовать для изучения Forth? - PullRequest
19 голосов
/ 13 марта 2010

Я хочу начать изучать Forth (как в соответствующем вопросе переполнения стека Практично ли изучать и использовать Forth? ). Я вижу, что существует много реализаций . Я хотел бы использовать

  • ANS 1994 совместимая версия (если разумно, но соблюдение стандарта может быть хорошим)
  • небольшая и компактная реализация, я не хочу полноценной ОС.
  • Windows
  • прост в использовании, я новичок в Forth; -)

Какую конкретную реализацию можно порекомендовать?

Ответы [ 9 ]

13 голосов
/ 29 апреля 2010

Win32Forth действительно фантастически, как упомянуто выше. Он имеет хорошую интегрированную среду разработки и является довольно современной реализацией, которая, кажется, очень хорошо соответствует стандартам, а также включает в себя некоторые более экспериментальные, но широко принятые функции.

Я использую Gforth , но я также использую Vim для редактирования исходных файлов. :) Gforth хорош и "классичен", насколько он поддерживает функции. Это дает вам опыт "старой школы" Forth, не будучи слишком изворотливым в использовании. (Некоторые бесплатные Forths делают странные вещи со своими командными строками и тому подобное - я использую «Starting Forth» Броди как модель того, как должен вести себя интерпретатор Forth.)

Я посмотрел на SwiftForth , которая представляет собой очень хорошую «высокотехнологичную» систему Forth, которая выходит далеко за рамки того, что предлагают классические Forths с точки зрения языковых возможностей, и действительно выводит Forth в современный мир программирования. Если вы действительно хотите профессионально заниматься программами Forth, SwiftForth выглядит так, как будто он может обрабатывать практически все, что вы хотите с ним делать.

8 голосов
/ 14 марта 2010

Некоторое время назад я оценил 4tH , реализацию Forth .Я думаю, что это соответствует всем вашим требованиям.Например, компилятор составляет всего 61 КБ.Также имеется полная поддержка чисел с плавающей запятой, что важно, если вы хотите использовать его в технических / научных целях.

4tH работает в большинстве операционных систем, включая MS-DOS, MS-Windows (обе 16-разрядныеи 32-разрядный), Linux, Связный , AIX , SunOS , BOS , BSD, Mac OS X, BeOS , RISC OS и т. Д. Загрузка (установщик Windows, 1,5 МБ, включает руководство). Руководство (PDF, 1,1 МБ).

Существует активное сообщество, сосредоточенное вокруг группы Google 4tH-компилятор .Например, сегодня я получил два сообщения.

Обратите внимание, что в 4tH вы не можете определить свои собственные определяющие слова (слова, исполняемые во время компиляции).Это не является серьезным ограничением, если только вы не хотите охватить расширенные функции Forth.


Для начала (поскольку это не очень понятно из руководства или интерактивной компиляции), после установки скопируйте компилятор, 4th.exe, в пустую папку создайте в этом каталоге два файла HelloWorld.bat и HelloWorld.4th и запустите HelloWorld.bat:

HelloWorld.bat:

    4th.exe cx HelloWorld.4th
    pause

HelloWorld.4th:

   : hello ." Hello from XYZ!" cr cr ;
   hello
2 голосов
/ 05 июня 2011

Если вы можете найти копию старого polyFORTH FORTH Inc и старого x86, который может его запустить, это язык, использованный в оригинальном Leo Brodie «Starting FORTH». Это чистый и очень крепкий ФОРТ.

2 голосов
/ 28 января 2011

Я понимаю, что они могут не отвечать всем вашим требованиям, но следующие Forth-подобные языки могут также заинтересовать вас с точки зрения обучения.

Кроме того, я считаю, что блог Re-Factor является хорошим введением в Factor.

2 голосов
/ 29 марта 2010

SwiftForth . Это не сознательно маленький и компактный; просто так бывает. Он прост в использовании (LOCATE WH EDIT, более приятный, чем обычные слова), поставляется с двумя книгами и имеет отличный список рассылки с более чем десятилетним архивом. Пробная версия не позволит вам компилировать готовые приложения или библиотеки DLL; он по-прежнему обеспечивает отличную консоль для студента и может поддерживать сценарии обычными способами. Быстрые примеры Windows:

: sleep-monitor ( -- )
  HWND_BROADCAST WM_SYSCOMMAND SC_MONITORPOWER 2 SendMessage drop ;


library dnsapi.dll
( ... DLL imports, constants ... )
variable results
: DnsQuery ( z -- res )
  DNS_TYPE_A 0 NULL results NULL DnsQuery_UTF8 ;

: resolves? ( z -- f )
  DnsQuery if false exit then
  results @ DnsRecordListFree true ;


\ an example use of the dialog compiler
\ this compiled DSL is an example of something that 4th
\ precludes with its "not ... serious limitation"
DIALOG (HELLO-ABOUT)
[MODELESS " About Hello" 10 10 120 70
   (FONT 8, MS Sans Serif) ]
\  [class           text                        id   x   y   sx xy ]

   [CTEXT           " HELLO"                    -1  10  10  100 10 ]
   [CTEXT           " (C) 1997 Forth, Inc."     -1  10  25  100 10 ]
   [CTEXT           " http://www.forth.com"     -1  10  35  100 10 ]
   [DEFPUSHBUTTON   " OK"                     IDOK  35  50   50 14 ]
END-DIALOG
1 голос
/ 08 января 2019

Я рекомендую ciforth , поскольку вы пользователь Windows, версия, созданная для Windows, известна как wina: MS-WIndows NAtive Forth .

ciforth - небольшая система, написанная на ассемблере NASM, с аналогичным интерфейсом для широкого спектра систем. Это маленький, быстрый, классический (блоки ftw), простой в использовании, так как это старая школа, поставляется с кучей документации и списком слов, который не такой огромный, как у Gforth (список слов для Lina - здесь , я предположим, что вина - это то же самое, что и большинство).

Gforth имеет множество раздутых определений, и некоторые из Starting Forth , например, не будут работать в нем. Единственное, чего не хватает ciforth, это стек с плавающей запятой, но Forth может справиться с фиксированной точкой невероятно хорошо (если читать Starting Forth , то узнаешь, как его использовать).

1 голос
/ 30 января 2017

Скачать Gforth для ПК и Android.

Возьми с собой, используя его как калькулятор, решая простые задачи, Фибоначчи, решая квадратичные a b c и т. Д.

1 голос
/ 23 марта 2010

Win32Forth работал хорошо для меня.

0 голосов
/ 31 января 2019

durexForth соответствует ANS C64 Далее и очень мало.

...