От какого Forth начать портировать?

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

Я в основном ищу достоинства / недостатки конкретного Forths друг по сравнению с другом. Я считал источник в JonesFORTH, а также обе похвалы и критику ее и обсуждения ANS дальше, и был, к сожалению, оставлен, чувствуя себя скорее смущенным. Сообщество Forth, от того, что я могу сказать, кажется, справедливо жестоко разделено вдоль проблемы соответствия стандартов с очень хорошими аргументами, сделанными обоими лагерями относительно того, почему стандарт является и пользой, и ужасным, вещью. Однако я, может казаться, не нахожу хороший практический совет относительно того, каковы точно стандартные изменения, кроме общего смысла, что он делает вещи более сложными и bloaty, чем они, возможно, должны быть.

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

24
задан Peter Mortensen 7 August 2010 в 00:49
поделиться

4 ответа

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

Во-первых, Forth, кажется, лучший программируемый язык программирования - даже больше, чем лисп. С этой целью я не уверен, сколько C или сборки вам понадобится для кодирования. Я больше склонялся к развитию словаря на самом Форте. В конце концов, именно так его и нужно использовать.

Во-вторых, из тех реализаций, которые я пробовал, мне больше всего нравятся Gforth и Pforth.

Какие из них вы используете?

И, наконец, вот список чтений, которые я обнаружил в Интернете:

  • Запуск Forth
  • Thinking Forth
  • Учебник Forth
  • Forth Language
  • Учебники Forth
  • Учебник Pforth
  • Руководство Gforth
  • Begin Forth
  • WikiForth
  • OLPC Forth
  • Давайте построим компилятор
  • Вы нашли еще какой-нибудь?

    7
    ответ дан 29 November 2019 в 00:22
    поделиться

    Я рекомендую поискать eForth, который написал Тинг. В некотором роде это современный FIG forth. У него ядро написано на C, но ядра/системы eForth уже портированы на многие платформы/процессоры, большинство из которых имеют ассемблерные ядра/ядра. Однако есть один классный кинда-форт под названием Factor. Он начинался как "только для игр", а в итоге оказался в диком и забавном уголке мира языков программирования

    .
    2
    ответ дан 29 November 2019 в 00:22
    поделиться

    Базовая система Forth очень мала и может быть быстро реализована. Я думаю, что следующая страница будет очень полезна для вас: "Иногда минимальный Forth компилятор и учебник для Linux / i386 систем". Это линейный учебник по загрузке Forth-системы!

    Обязательно реализуйте определяющие слова (слова, выполняемые во время компиляции). Именно в этом заключается сила Форта; это делает его действительно расширяемым.

    На самом деле я не пробовал, но однажды я остановился на bigFORTH, поскольку это один из немногих Фортов с открытой лицензией. Он также активно поддерживается; например, в начале этого года был выпущен релиз.

    Я собрал набор аннотированных ссылок о Forth за последние несколько лет. Некоторые из них трудно найти.

    Что касается разговора о стандартах: это дискуссия 20-летней давности. Я думаю, что важнее не говорить, а делать что-то: реализовывать программное обеспечение, предоставлять убийственные примеры, писать документацию, приглашать других к участию и т.д. С тех пор Чарльз Мур пошел дальше и сделал Forth-чипы, machineForth и ColorFORTH. Если выполнить поиск по словам "machineForth" и "ColorFORTH" в аннотированном списке ссылок, можно найти несколько интересных статей и высказываний. У Чарльза Мура также теперь есть блог.

    4
    ответ дан 29 November 2019 в 00:22
    поделиться

    В качестве первого шага вы можете попробовать написать интерпретатор Forth на каком-нибудь языке более высокого уровня, таком как Java, C ++, Python и т. Д. В нем будут отсутствовать основные преимущества машины. -level Forth: скорость и компактность, но, написав свою собственную виртуальную машину, вы получите представление о различных типах потоковой передачи и т. д., используемых в различных вариантах Forth.

    Большинство новых реализаций Forth в основном начинаются с рассмотрения ЦП как виртуальной машины в любом случае - так что создание явной виртуальной машины не является пустой тратой знаний, когда приходит время перейти от интерпретируемой версии к версии с машинным кодом. Кроме того, у вас будет план вашего собственного кода для перекрестных ссылок при создании машинной версии.

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

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

    3
    ответ дан 29 November 2019 в 00:22
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: