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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Портирование библиотек между форт-системами
СообщениеДобавлено: Пн июн 17, 2019 16:44 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
На что нужно обратить внимание, исходя из собственного опыта.
1) используемые слова в обоих форт-системах должны делать одно и тоже. Это значит либо переписывать слово я ядре либо писать слой совместимости.
2) Трансляция текстовых данных. Какие-то форт-системы читают файлы построчно (SPF), какие-то целиком (Fork), где-то возможны более сложные случаи (Nova). И возможна ситуация, когда автор библиотеки полагается на особенности парсера, что может привести к сознательной ошибке. К примеру, слову PARSE или WORD дают на вход заведомо неверные данные, ожидая, что они по умолчанию возьмут всё до конца строки. При не построчной обработке последствия будут печальны.
3) Реализация механизма CREATE DOES>
4) Слова, которые используют фичи ядра. Переписывать эти слова на новый форт достаточно интересно, но не факт что можно понять правильно авторский замысел.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Вт июн 18, 2019 11:44 
Не в сети
Administrator
Administrator
Аватара пользователя

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

По умолчанию - это при отсутствии завершающего пробела?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Вт июн 18, 2019 12:30 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Hishnik писал(а):
Victor__v писал(а):
К примеру, слову PARSE или WORD дают на вход заведомо неверные данные, ожидая, что они по умолчанию возьмут всё до конца строки.

По умолчанию - это при отсутствии завершающего пробела?


Точнее при отсутствии завершающего символа. Т. е. к примеру 'A' PARSE возмёт всё вплоть до символа A . А если этот символ не будет найден, то до конца строки
Меня вот на этом ~yz поймал.
У него в коде было 1 PARSE
Этот код согласно примерам должен брать всё до конца строки. А теперь вспоминаем символ перевода строки :)
~yz в данном случае положился на особенность трансляции файлов с СПФ.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Вт июн 18, 2019 16:37 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Victor__v писал(а):
У него в коде было 1 PARSE
Этот код согласно примерам должен брать всё до конца строки. А теперь вспоминаем символ перевода строки

Можно ожидать, что раз символа с кодом 1 в строке нет, то при появлении пары 0x0D 0x0A разбор строки прекратится и вернется все, вплоть до этих символов. Тут можно даже и не на Форт ориентироваться, а на поведение аналогичных функций в других языках/библиотеках, чтобы не держать в голове массу особенностей и отличий. И вообще 1 PARSE выглядит как хак.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Вт июн 18, 2019 16:53 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Вот именно.
Я-то в принципе старался ориентироваться на логику, не знаю хорошо ли получается :D

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Вт июн 18, 2019 17:24 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Victor__v писал(а):
Я-то в принципе старался ориентироваться на логику,

И это замечательно.

Сильная сторона Форта в том, что, будучи во многом идеей, а не просто языком со своими правилами и традициями, он позволяет раз за разом к этой идее возвращаться. Я согласен с тем, что синтаксис совсем уж базовых слов можно оставить как есть, просто потому, что когда человек изучает язык, у него еще нет никаких особенных мыслей, и он в основном воспринимает информацию, а не пытается что-то поменять. Зато потом, когда основные примеры уже написаны, определенные "традиции" из второй-третьей сотни слов выглядят раздражающе и навязчиво. Вставать в хвост "отцам-основателям"? Ну для начала надо определиться, кто это такие... и пусть зайдут и доложат об успехах, что ли... :wink: Гораздо привлекательнее выглядит ситуация, когда любой программист поощряется к тому, чтобы, вдохновляясь общими соображениями Форта, реализовать определенный подход. Пусть он даже будет привязанным к определенной цепочке инструментов. Но вот это... "так делали давным-давно в Форте, который давным-давно считался ого-го каким"... как-то странновато выглядит.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Вт июн 18, 2019 17:30 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Hishnik писал(а):
Но вот это... "так делали давным-давно в Форте, который давным-давно считался ого-го каким"... как-то странновато выглядит.

Ну, если для это нужно для портирования чего-то полезного и при этом реализовано лучше, почему бы и нет :))
Но только при этих 2 условиях

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Вт июн 18, 2019 23:57 
Не в сети

Зарегистрирован: Сб май 13, 2006 23:37
Сообщения: 380
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Hishnik писал(а):
Victor__v писал(а):
Я-то в принципе старался ориентироваться на логику,

И это замечательно.

Сильная сторона Форта в том, что, будучи во многом идеей, а не просто языком со своими правилами и традициями, он позволяет раз за разом к этой идее возвращаться. Я согласен с тем, что синтаксис совсем уж базовых слов можно оставить как есть, просто потому, что когда человек изучает язык, у него еще нет никаких особенных мыслей, и он в основном воспринимает информацию, а не пытается что-то поменять. Зато потом, когда основные примеры уже написаны, определенные "традиции" из второй-третьей сотни слов выглядят раздражающе и навязчиво. Вставать в хвост "отцам-основателям"? Ну для начала надо определиться, кто это такие... и пусть зайдут и доложат об успехах, что ли... :wink: Гораздо привлекательнее выглядит ситуация, когда любой программист поощряется к тому, чтобы, вдохновляясь общими соображениями Форта, реализовать определенный подход. Пусть он даже будет привязанным к определенной цепочке инструментов. Но вот это... "так делали давным-давно в Форте, который давным-давно считался ого-го каким"... как-то странновато выглядит.

Выдумываете вы проблему на пустом месте. Отец-основатель хорошо известен. Чак Мур. И традиций он не только не навязывает, но и сам их не придерживается.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Ср июн 19, 2019 12:29 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
forther писал(а):
Отец-основатель хорошо известен. Чак Мур.

А отец-основатель колеса хорошо известен? Надеюсь, Lamborgini Diablo сделана с учетом его авторитетного мнения?
forther писал(а):
И традиций он не только не навязывает, но и сам их не придерживается.

А проблема не во мнении Мура (здоровья ему еще на долгие годы). Проблема в том, что вместо реализации форт-технологий, где это уместно и полезно, существует тенденция оглядываться на кого-то там, чтобы зачем-то получить одобрение.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Ср июн 19, 2019 19:25 
Не в сети

Зарегистрирован: Сб май 13, 2006 23:37
Сообщения: 380
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Hishnik писал(а):
forther писал(а):
Отец-основатель хорошо известен. Чак Мур.

А отец-основатель колеса хорошо известен?

Вы не согласны, что язык программирования Форт изобрел Чак Мур? Я именно про Форт, спрашиваю, а не про его компоненты (стек, обратную нотацию, арифметические операции и т.д.).


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Ср июн 19, 2019 20:43 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 174
Благодарил (а): 20 раз.
Поблагодарили: 13 раз.
Тов. админ имел ввиду, что наличие, известность и прочие свойства "отца-основателя" чего бы то ни было не влияют на возможность применения того, что он основал


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Чт июн 20, 2019 00:23 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Старый добрый холивар)

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Чт июн 20, 2019 01:27 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
forther писал(а):
Вы не согласны, что язык программирования Форт изобрел Чак Мур? Я именно про Форт, спрашиваю, а не про его компоненты (стек, обратную нотацию, арифметические операции и т.д.).

Изобретатель языка и понятие "отец-основатель" не тождественны. "Отцы-основатели" США тоже ведь не открыли Америку. С другой стороны, Колумба к отцам-основателям не причисляют, ну а про коренное население и упоминать-то считают неуместным. Во времена схоластики "отцов церкви" развелось столько, что труды апостолов уже и терялись в ворохах писанины. Ссылаться на "авторитетных авторов трудов по Форту" есть признак схоластики в Форте, и Мур тут ни при чем.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Чт июн 20, 2019 03:59 
Не в сети

Зарегистрирован: Сб май 13, 2006 23:37
Сообщения: 380
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Hishnik писал(а):
forther писал(а):
Вы не согласны, что язык программирования Форт изобрел Чак Мур? Я именно про Форт, спрашиваю, а не про его компоненты (стек, обратную нотацию, арифметические операции и т.д.).

Изобретатель языка и понятие "отец-основатель" не тождественны. "Отцы-основатели" США тоже ведь не открыли Америку. С другой стороны, Колумба к отцам-основателям не причисляют, ну а про коренное население и упоминать-то считают неуместным. Во времена схоластики "отцов церкви" развелось столько, что труды апостолов уже и терялись в ворохах писанины. Ссылаться на "авторитетных авторов трудов по Форту" есть признак схоластики в Форте, и Мур тут ни при чем.

Лукавите. США это лишь одно из государств Америки. Вот оно и было основано/открыто/изобретено отцами основателями. До них его не было, а благодаря им оно появилось. Так и с языком форт. До Мура его не было, а благодаря Муру он появился. В этом контексте изобретатель и отец основатель это одно и тоже.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Портирование библиотек между форт-системами
СообщениеДобавлено: Чт июн 20, 2019 04:11 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Hishnik писал(а):
Изобретатель языка и понятие "отец-основатель" не тождественны.
Короче ты написал ерунду и теперь сьезжаешь.
Hishnik писал(а):
существует тенденция оглядываться на кого-то там, чтобы зачем-то получить одобрение.
Ну и кто-же раздает эти одобрения ? Никто. Похоже ты проблему придумал.
Hishnik писал(а):
Но вот это... "так делали давным-давно в Форте, который давным-давно считался ого-го каким"... как-то странновато выглядит.
Не так. Слово с таким-то именем делало когда-то то-то и то-то и если ты употребишь его в другом смысле ты всех запутаешь. Придумай для слова с другим смыслом свое название. Вот и все навязывание.

-------------------

В принципе хороша идея иметь у PARSE дополнительный разделитель который можно задавать. Тогда если перед разбором будем копировать основной разделитель в дополнительный, то это будет разбор всего текста целиком. Его можно назвать -PARSE. Если дополнительным разделителем зададим A , то это будет классический PARSE строки. А задавать дополнительный разделитель нулем полезно чтобы распарсивать не входной буфер, а произвольную нультерминированную строку в произвольном месте памяти.
Victor__v писал(а):
На что нужно обратить внимание, исходя из собственного опыта.
Hа то, что C@ ни фига не младший байт @ на машине с большим эндианом.
Victor__v писал(а):
3) Реализация механизма CREATE DOES>
Вот если твой Форт отрабатывает так, то значит у него самые правильные CREATE DOES> , которые должны переноситься только влет :
Код:
HEX
Ok
: WEIRD: CREATE DOES> 0 + C@ DOES> 1 + C@ DOES> 2 + C@ DOES> 3 + C@ ;
Ok
WEIRD: SHIT 44332211 ,
Ok
' SHIT >BODY @ .
44332211  Ok
SHIT .
11  Ok
SHIT .
22  Ok
SHIT .
33  Ok
SHIT .
44  Ok
SHIT .
44  Ok
BYE


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

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


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

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


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

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