Forth
http://www.fforum.winglion.ru/

SP-Forth x64
http://www.fforum.winglion.ru/viewtopic.php?f=18&t=2961
Страница 4 из 4

Автор:  KPG [ Ср апр 21, 2021 00:49 ]
Заголовок сообщения:  Re: SP-Forth x64

Hishnik писал(а):
zma писал(а):
То есть IF-ELSE-THEN и прочее реализовано в виде примитивов или что-то другое? Если да, то чем это плохо?

Там вот такое:

И что, если в схеме реализации этого Forth использован шитый код? (в некоторой вариации и он должен как то формироваться)
и формируется скриптом sh при предпроцессировании после добавления из Форт слов в Си файл,
см. как определены BEGIN UNTIL WHILE ...
в решении нет слов как >MARK, но, что это меняет если Форт полный, но с некоторыми оставшимися дефектами,
как например доступность слов начинающихся с _подчёркивания (часть из них имеет смысл скрывать)
Слова низкого уровня ("примитивы") ядра уже скриптом для их создания.

На Си сделаны разные Форт, но детально чем они отличаются не проводилось, вроде, сравнение. :)

P.S. Заметил, что TRUE определена как 1, а не -1.

Автор:  Hishnik [ Ср апр 21, 2021 01:02 ]
Заголовок сообщения:  Re: SP-Forth x64

В процессе компиляции слова с флагом IMMEDIATE выполняются. Это дает возможность создавать произвольный код, устанавливая соответствующему слову такой флаг. Если все варианты создания кода заранее выписаны в функции, это оставляет в целом синтаксис Форта, но закрывает целый пласт возможностей, пусть и нечасто используемых.

Автор:  KPG [ Ср апр 21, 2021 01:07 ]
Заголовок сообщения:  Re: SP-Forth x64

Hishnik писал(а):
В процессе компиляции слова с флагом IMMEDIATE выполняются. Это дает возможность создавать произвольный код, устанавливая соответствующему слову такой флаг. Если все варианты создания кода заранее выписаны в функции, это оставляет в целом синтаксис Форта, но закрывает целый пласт возможностей, пусть и нечасто используемых.

А, почему есть предположение, что IMMEDIATE не работает в ядре Форт системы? :) (также после ; применяется)
(в Си файле IMMEDIATE он тоже устанавливается в словах формируя тело слова начинающееся с IMM( ...

P.S. Какие слова в ядре Форт-системы писать на Си, а какие на Форт может решаться отдельно,
как и если есть желание ускорить систему разными методиками. (сложно сказать насколько эту реализацию по Бенчмарку можно сравнить с другими Forth сделанных на Си)

Автор:  zma [ Ср апр 21, 2021 11:06 ]
Заголовок сообщения:  Re: SP-Forth x64

Hishnik писал(а):
В процессе компиляции слова с флагом IMMEDIATE выполняются. Это дает возможность создавать произвольный код, устанавливая соответствующему слову такой флаг. Если все варианты создания кода заранее выписаны в функции, это оставляет в целом синтаксис Форта, но закрывает целый пласт возможностей, пусть и нечасто используемых.

Посмотрел повнимательнее - эта функция применяется в скрипте на языке awk, который вызывается из скрипта на Shell, который встроен в программу на Си в доме, который построил Джек, и служит для предварительной компиляции содержимого словаря. В самом Форте, вроде бы, всё как обычно.

Автор:  Hishnik [ Ср апр 21, 2021 14:31 ]
Заголовок сообщения:  Re: SP-Forth x64

zma писал(а):
Посмотрел повнимательнее - эта функция применяется в скрипте на языке awk, который вызывается из скрипта на Shell, который встроен в программу на Си в доме, который построил Джек, и служит для предварительной компиляции содержимого словаря. В самом Форте, вроде бы, всё как обычно.

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

Автор:  KPG [ Сб апр 24, 2021 15:51 ]
Заголовок сообщения:  Re: SP-Forth x64

zma писал(а):
Посмотрел повнимательнее - эта функция применяется в скрипте на языке awk, который вызывается из скрипта на Shell, который встроен в программу на Си в доме, который построил Джек, и служит для предварительной компиляции содержимого словаря. В самом Форте, вроде бы, всё как обычно.

Рад, что это кто то смог понять и оценить задумку автора этого проекта. :)

Автор:  zma [ Вс апр 25, 2021 08:20 ]
Заголовок сообщения:  Re: SP-Forth x64

KPG писал(а):
Рад, что это кто то смог понять и оценить задумку автора этого проекта. :)

Я бы не сказал, что оценил задумку, так как при таком подходе, во-первых, возникают лишние зависимости от внешних инструментов (shell, awk), и во-вторых, появляется лишний источник ошибок (нужно отлаживать не только саму Форт-систему, но и урезанный интерпретатор, который формирует словарь).
Сам так раньше делал и ушёл от этого подхода к монолитной системе на Си, которая при инициализации наполняет словарь, а потом просто принимает на вход строки с текстом на Форте от программы на Си. При этом все слова ядра системы являются примитивами (даже компилирующие и определяющие типа IF или VARIABLE), так как они пишутся один раз и впоследствии не меняются. Плюс такого подхода - отпадает необходимость во внешних определениях на Форте или в заранее скомпилированном словаре.

Страница 4 из 4 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/