Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 14:58

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения: Re: SP-Forth x64
СообщениеДобавлено: Ср апр 21, 2021 00:49 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Hishnik писал(а):
zma писал(а):
То есть IF-ELSE-THEN и прочее реализовано в виде примитивов или что-то другое? Если да, то чем это плохо?

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

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

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

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


Последний раз редактировалось KPG Ср апр 21, 2021 01:35, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SP-Forth x64
СообщениеДобавлено: Ср апр 21, 2021 01:02 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
В процессе компиляции слова с флагом IMMEDIATE выполняются. Это дает возможность создавать произвольный код, устанавливая соответствующему слову такой флаг. Если все варианты создания кода заранее выписаны в функции, это оставляет в целом синтаксис Форта, но закрывает целый пласт возможностей, пусть и нечасто используемых.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SP-Forth x64
СообщениеДобавлено: Ср апр 21, 2021 01:07 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Hishnik писал(а):
В процессе компиляции слова с флагом IMMEDIATE выполняются. Это дает возможность создавать произвольный код, устанавливая соответствующему слову такой флаг. Если все варианты создания кода заранее выписаны в функции, это оставляет в целом синтаксис Форта, но закрывает целый пласт возможностей, пусть и нечасто используемых.

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SP-Forth x64
СообщениеДобавлено: Ср апр 21, 2021 11:06 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 174
Благодарил (а): 20 раз.
Поблагодарили: 13 раз.
Hishnik писал(а):
В процессе компиляции слова с флагом IMMEDIATE выполняются. Это дает возможность создавать произвольный код, устанавливая соответствующему слову такой флаг. Если все варианты создания кода заранее выписаны в функции, это оставляет в целом синтаксис Форта, но закрывает целый пласт возможностей, пусть и нечасто используемых.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SP-Forth x64
СообщениеДобавлено: Ср апр 21, 2021 14:31 
Не в сети
Administrator
Administrator
Аватара пользователя

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SP-Forth x64
СообщениеДобавлено: Сб апр 24, 2021 15:51 
Не в сети

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SP-Forth x64
СообщениеДобавлено: Вс апр 25, 2021 08:20 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 174
Благодарил (а): 20 раз.
Поблагодарили: 13 раз.
KPG писал(а):
Рад, что это кто то смог понять и оценить задумку автора этого проекта. :)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу Пред.  1, 2, 3, 4

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB