Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

Обратите внимание, что в 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

Ответ 3

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

Ответ 4

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

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

Ответ 5

Если вы можете найти копию FORTH Inc old polyFORTH и старый x86, который может ее запустить, это язык, используемый в оригинале Leo Brodie "Начиная FORTH". Это чистый и очень сильный FORTH.

Ответ 6

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

Ответ 7

Загрузите Gforth для ПК и Android.

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

Ответ 8

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

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

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

Ответ 9

DurexForth является ANS-совместимым C64 Forth и очень маленьким.