Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 03:05

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - SP-Forth x64
Автор Сообщение
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
KPG писал(а):
Рад, что это кто то смог понять и оценить задумку автора этого проекта. :)

Я бы не сказал, что оценил задумку, так как при таком подходе, во-первых, возникают лишние зависимости от внешних инструментов (shell, awk), и во-вторых, появляется лишний источник ошибок (нужно отлаживать не только саму Форт-систему, но и урезанный интерпретатор, который формирует словарь).
Сам так раньше делал и ушёл от этого подхода к монолитной системе на Си, которая при инициализации наполняет словарь, а потом просто принимает на вход строки с текстом на Форте от программы на Си. При этом все слова ядра системы являются примитивами (даже компилирующие и определяющие типа IF или VARIABLE), так как они пишутся один раз и впоследствии не меняются. Плюс такого подхода - отпадает необходимость во внешних определениях на Форте или в заранее скомпилированном словаре.
Сообщение Добавлено: Вс апр 25, 2021 08:20
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
zma писал(а):
Посмотрел повнимательнее - эта функция применяется в скрипте на языке awk, который вызывается из скрипта на Shell, который встроен в программу на Си в доме, который построил Джек, и служит для предварительной компиляции содержимого словаря. В самом Форте, вроде бы, всё как обычно.

Рад, что это кто то смог понять и оценить задумку автора этого проекта. :)
Сообщение Добавлено: Сб апр 24, 2021 15:51
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
zma писал(а):
Посмотрел повнимательнее - эта функция применяется в скрипте на языке awk, который вызывается из скрипта на Shell, который встроен в программу на Си в доме, который построил Джек, и служит для предварительной компиляции содержимого словаря. В самом Форте, вроде бы, всё как обычно.

А, ну там я уже не проверял, потому что выписывание управляющих структур все равно выглядит странно. Форт же не управляющими структурами интересен, а тут ощущение, что сделана затычка, чтобы поддержать известные слова ядра. В целом нет впечатления, что автор следовал какой-то понятной ему методике. Если сделать хорошую основу, потом при необходимости добавления слов или целых механизмов обычно обнаруживается, что для этого уже все готово.
Сообщение Добавлено: Ср апр 21, 2021 14:31
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
Hishnik писал(а):
В процессе компиляции слова с флагом IMMEDIATE выполняются. Это дает возможность создавать произвольный код, устанавливая соответствующему слову такой флаг. Если все варианты создания кода заранее выписаны в функции, это оставляет в целом синтаксис Форта, но закрывает целый пласт возможностей, пусть и нечасто используемых.

Посмотрел повнимательнее - эта функция применяется в скрипте на языке awk, который вызывается из скрипта на Shell, который встроен в программу на Си в доме, который построил Джек, и служит для предварительной компиляции содержимого словаря. В самом Форте, вроде бы, всё как обычно.
Сообщение Добавлено: Ср апр 21, 2021 11:06
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
Hishnik писал(а):
В процессе компиляции слова с флагом IMMEDIATE выполняются. Это дает возможность создавать произвольный код, устанавливая соответствующему слову такой флаг. Если все варианты создания кода заранее выписаны в функции, это оставляет в целом синтаксис Форта, но закрывает целый пласт возможностей, пусть и нечасто используемых.

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

P.S. Какие слова в ядре Форт-системы писать на Си, а какие на Форт может решаться отдельно,
как и если есть желание ускорить систему разными методиками. (сложно сказать насколько эту реализацию по Бенчмарку можно сравнить с другими Forth сделанных на Си)
Сообщение Добавлено: Ср апр 21, 2021 01:07
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
В процессе компиляции слова с флагом IMMEDIATE выполняются. Это дает возможность создавать произвольный код, устанавливая соответствующему слову такой флаг. Если все варианты создания кода заранее выписаны в функции, это оставляет в целом синтаксис Форта, но закрывает целый пласт возможностей, пусть и нечасто используемых.
Сообщение Добавлено: Ср апр 21, 2021 01:02
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
Hishnik писал(а):
zma писал(а):
То есть IF-ELSE-THEN и прочее реализовано в виде примитивов или что-то другое? Если да, то чем это плохо?

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

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

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

P.S. Заметил, что TRUE определена как 1, а не -1.
Сообщение Добавлено: Ср апр 21, 2021 00:49
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
zma писал(а):
То есть IF-ELSE-THEN и прочее реализовано в виде примитивов или что-то другое? Если да, то чем это плохо?


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

Код:
function compile(n) {
      if (n == "IF")
      {
         comma("&branch0_word")
         push(pc)
         comma(0)
         return
      }
      if (n == "ELSE")
      {
         elsejump = pop()
         comma("&branch_word")
         push(pc)
         comma(0)
         bytecode[elsejump] = "(&" word ".payload[0] + " pc "),"
         return
      }
      if (n == "THEN")
      {
         bytecode[pop()] = "(&" word ".payload[0] + " pc "),"
         return
      }

Ну и далее с прочими структурами управления. То есть компиляция сделана в виде своеобразного исключения из правил.
Сообщение Добавлено: Вт апр 20, 2021 23:12
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
Hishnik писал(а):
...там структуры управления вписаны в код...

То есть IF-ELSE-THEN и прочее реализовано в виде примитивов или что-то другое? Если да, то чем это плохо?
Сообщение Добавлено: Вт апр 20, 2021 21:30
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
KPG писал(а):
Так непонятно, наличие каких то уже реализованных разнообразных вариантов-схем Форт это плохо или нет? :)

Наличие реализаций - не плохо. Плохо, когда изучение чужих реализаций становится приоритетнее своих разработок.
Сообщение Добавлено: Вт апр 20, 2021 21:27
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
KPG писал(а):
но есть базис при использовании которого снимается часть "головняка" в личных оценках.

Этот базис лучше уж тут на форуме разработать и обсудить.

KPG писал(а):
У меня нет, кстати, фобии по поводу Евро-Форт разработок (от слова совсем)

В Европе достаточно вполне грамотных людей, которые интересуются Фортом. А конференция EuroForth - прибежище неудачников, которые устраивают себе пиар на редкой технологии.
Сообщение Добавлено: Вт апр 20, 2021 14:46
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
Hishnik писал(а):
Ну а зачем тратить время на тщательный анализ кем-то написанных простых вещей? Там навскидку много недостатков, там структуры управления вписаны в код, еще где-то попадались нерасширяемые решения. На то, чтобы подстроить форт-машину под архитектуру собственного проекта, нужно меньше времени по сравнению с адаптацией вот всего этого.

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

P.S. тот же VFX Forth похоже страдает какой то несовместимостью с GTK при заимствованном кодe Minos из BigForth.
(хотя и собирается из открытых сырцов под Linux)
У меня нет, кстати, фобии по поводу Евро-Форт разработок (от слова совсем), хотя SPF4 у меня более использован.:)
Сообщение Добавлено: Вт апр 20, 2021 11:31
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
Ну а зачем тратить время на тщательный анализ кем-то написанных простых вещей? Там навскидку много недостатков, там структуры управления вписаны в код, еще где-то попадались нерасширяемые решения. На то, чтобы подстроить форт-машину под архитектуру собственного проекта, нужно меньше времени по сравнению с адаптацией вот всего этого.
Сообщение Добавлено: Вт апр 20, 2021 11:25
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
Hishnik писал(а):
Кому лень набрать 2500 строк на Си, может взять на себя обязательство все время заявлять, что это не его, а чье-то еще. Хотя реализация простая.

Так непонятно, наличие каких то уже реализованных разнообразных вариантов-схем Форт это плохо или нет? :)

P.S. Думаю, что в выше варианте Форт - автор нашёл компромис между написанием поддержки всего Форт на Си или применении его автогененации и с Форт кода с помощью Bash скрипт применения.
Bash и кибербезопасность
Сообщение Добавлено: Вт апр 20, 2021 11:12
  Заголовок сообщения:  Re: SP-Forth x64  Ответить с цитатой
Кому лень набрать 2500 строк на Си, может взять на себя обязательство все время заявлять, что это не его, а чье-то еще. Хотя реализация простая.
Сообщение Добавлено: Пн апр 19, 2021 23:12

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


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