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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - Еще раз о словарях
Автор Сообщение
  Заголовок сообщения:  Re: Еще раз о словарях  Ответить с цитатой
Victor__v писал(а):
Короче, зря спросил

Слушать можно всех, а решение лучше принимать самому. В Форте вообще, и в словарях в частности.

P.S. Да и в жизни.
Сообщение Добавлено: Чт сен 27, 2018 01:28
  Заголовок сообщения:  Re: Еще раз о словарях  Ответить с цитатой
Victor__v писал(а):
Короче, зря спросил

а моего ответа не достаточно?
Сообщение Добавлено: Ср сен 26, 2018 18:42
  Заголовок сообщения:  Re: Еще раз о словарях  Ответить с цитатой
Короче, зря спросил :shuffle;
Сообщение Добавлено: Ср сен 26, 2018 17:55
  Заголовок сообщения:  Re: Еще раз о словарях  Ответить с цитатой
Новая (относительно, 1994 год) система из ANS более гибкая и включает старую, как частный случай.

До ALSO/ONLY поиск тоже проходил в нескольких словарях. Но их порядок был жёстко задан разработчиком и не очевиден тому, кто словари использует. Часто это замедляло компиляцию, когда словарь FORTH просматривался дважды — и как контекст, и как текущий. Иногда трижды. :D

При необходимости и сейчас можно вернуться к старому способу, написав слова для перехода в фиксированный набор контекстных словарей:
Код:
: EDITOR   ONLY FORTH ALSO EDITOR-NEW ;


Но также теперь можно и накладывать новые словари-макросы, не меняя сложившийся контекст из списков слов — хоть поверх FORTH , хоть поверх EDITOR , хоть поверх своих библиотек.

Ещё плюс в том, что ассемблер в END-CODE (да и другие макроязыки) может с помощью PREVIOUS возвращаться не сразу в FORTH , а в этот гибкий контекст. Который теперь, повторюсь, задаётся не разработчиками библиотек, а их пользователями.
Сообщение Добавлено: Пн сен 24, 2018 13:48
  Заголовок сообщения:  Re: Еще раз о словарях  Ответить с цитатой
mOleg писал(а):
Приведи пример, как реализовать перестройку порядка поиска или выключить лишнее из цепочки поиска в старом варианте.

Переписать указатель на словарь-родитель. Это если словари спроектированы так, что таким вообще надо заниматься. Если слово не должно быть найдено, то может быть, дополнительный парсер реализовать? Есть же варианты кроме словарей, зачем тащить в проект технологию, просто чтобы оправдать ее наличие?
mOleg писал(а):
Но, кто сказал, что менять порядок поиска необходимо постоянно? - меняется по мере необходимости, а необходимости менять постоянно пока что не появлялось в моей практике.

То есть пересобирать порядок поиска - это нормально? Даже с учетом того, что ошибка в перечислении словарей чревата проблемами? Тут вопрос не в том, "работают" ли примеры (потому что в большинстве случаев все, что компилируется, что-то да делает), а в том, какие долговременные последствия могут быть от решения. И вопрос бритвы Оккама, который чисто методологический. Вот была какая-то система со словарями - зачем ее надо трогать? Какие конкретные систематические тенденции прошли в программировании вообще (а не конкретно в Форте), что надо поменять принцип организации словарей? Это вопрос уже какой-то сектантский получается - можно просто добавить в стандарт любую глупость и посмотреть на появляющиеся форт-системы, чтобы понять, сколько есть в распоряжении сектантов. Сколько систем эту глупость повторят (и даже попытаются обосновать), столько и сектантов-авторов, которым все равно что, лишь бы как у выбранных для поклонения идолов.

mOleg писал(а):
кстати, пример вполне реальный и работающий (не придуманный).

Я уже писал - "не образует статистики". Когда надо одному - это ни о чем не говорит. Никто не мешает реализовывать в Форте то, что нравится, но в стандарт-то зачем тащить? Чтобы создалось ощущение толпы, помогающее справляться с сомнениями? Если есть более одного варианта решения, фиксация любого из вариантов приведет только к разделению на секты. В языках стандарт описывает десятки ключевых слов, но не сотни прикладных. А в текущем ANS именно что сотни прикладных слов, которые к тому же частично противоречат другим стандартам - к примеру куда более распространенного POSIX.
Сообщение Добавлено: Вс сен 23, 2018 22:53
  Заголовок сообщения:  Re: Еще раз о словарях  Ответить с цитатой
Hishnik писал(а):
А вот это именно то, о чем я написал в предыдущем сообщении. Вместо анализа и сравнения с другими подходами используется аргумент "мне надо и я могу привести пример".

Приведи пример, как реализовать перестройку порядка поиска или выключить лишнее из цепочки поиска в старом варианте.
чисто для сравнения

вернусь чуток назад:
Hishnik писал(а):
Отсюда и вопрос - какая есть практическая необходимость постоянно менять порядок поиска? Причем речь именно о необходимости, потому что аргумент "сейчас придумаем подходящий пример" не образует статистики.

необходимость появляется по ходу решения конкретных задач.
Но, кто сказал, что менять порядок поиска необходимо постоянно? - меняется по мере необходимости, а необходимости менять постоянно пока что не появлялось в моей практике.

Hishnik писал(а):
потому что аргумент "сейчас придумаем подходящий пример" не образует статистики

кстати, пример вполне реальный и работающий (не придуманный).
Сообщение Добавлено: Вс сен 23, 2018 20:24
  Заголовок сообщения:  Re: Еще раз о словарях  Ответить с цитатой
mOleg писал(а):
я боюсь, что бесполезно объяснять, уж сколько копий сломано 8(

А "объяснять" тут слишком громкое слово. Может создасться впечатление, что я чего-то не понимаю, и мне начинают "объяснять".
mOleg писал(а):
ну, к примеру, у меня

А вот это именно то, о чем я написал в предыдущем сообщении. Вместо анализа и сравнения с другими подходами используется аргумент "мне надо и я могу привести пример". К этому можно еще добавить отсылку к "мировому сообществу, которое так делает, и теперь надо осознать и заучить новую истину". В итоге обоснованное принятие решения зачем-то предлагается заменить на "мне надо, и все тут!".
Сообщение Добавлено: Сб сен 22, 2018 18:36
  Заголовок сообщения:  Re: Каллисто 1.0 для «Электроники МК-161»  Ответить с цитатой
Hishnik писал(а):
Отсюда и вопрос - какая есть практическая необходимость постоянно менять порядок поиска?

я боюсь, что бесполезно объяснять, уж сколько копий сломано 8(
ну, к примеру, у меня есть параметры, которые я набираю в консоли перед запуском своей программы, ну там всякие: -file -help и т.п., и я не хочу писать еще один интерпретатор ради разбора единственной строки параметров, но, так как я пишу не для себя, я должен скрыть все лишнее, т.е. в контексте должны быть только ключи и не должны, например, распознаваться числа, а должны распознаваться углы,
кроме того у меня есть файл с настройками всякими (some.ini) в котором всякие настройки, и опять мне нужно, чтобы видно было только их, а все остальное должно быть сокрыто.
Что делаю я:

Код:
VOCABULARY INTERFACE
  ALSO INTERFACE DEFINITIONS

: -file ... ;
: -help ... ;

PREVIOUS DEFINITIONS

VOCABULARY INITIAL
ALSO INITIAL DEFINITIONS
: base .. ;
: limit .. ;
: step .. ;
и всякое такое
PREVIOUS DEFINITIONS

я получил два изолированных словаря, которые я могу использовать нужным мне образом.
Дальше во время инициализации я делаю:
ONLY ANGLES ALSO INTERFACE
и разбираю параметры, при этом числа у меня не распознаются, т.к. не нужны.
в следующей фазе я подключаю .ini файл, и перед этим пишу
ONLY INITIAL
и разбираю файл.

И так далее, и тому подобное.

В старом стандарте нет (на сколько я помню и в старых фортах) возможности стандартным путем ограничить поиск до корня словарей, приходилось цепочку словарей обрывать. Когда появился СМАЛ32 с контекстом словарей я вздохнул свободно.
Сообщение Добавлено: Сб сен 22, 2018 15:05
  Заголовок сообщения:  Re: Каллисто 1.0 для «Электроники МК-161»  Ответить с цитатой
Victor__v писал(а):
Насчёт иерархии классов не понял.
Наверно, сказываются разные подходы к архитектуре форт-систем

Как это работает в ООП. Допустим, есть базовый объект "точка". От него строим "окружность", у которого кроме точки есть радиус. От точки строим прямоугольник - точка, ширина, высота. От прямоугольника строим "прямоугольник со скругленными углами" - прямоугольник, радиус скругления. Это все структура, которая не подлежит изменению.

Словари Форта устроены так, что обеспечивают основные свойства объектов. Инкапсуляция - поскольку слова-указатели на данные могут быть недоступны из другого контекста. Наследование - потому что при статическом связывании словарей можно просмотреть словарь-родитель. Полиморфизм - потому что если слова нет в текущем словаре, оно может найтись в словаре-родителе, и наоборот, если оно есть, то найдется самое близкое слово к точке начала поиска.

Отсюда и вопрос - какая есть практическая необходимость постоянно менять порядок поиска? Причем речь именно о необходимости, потому что аргумент "сейчас придумаем подходящий пример" не образует статистики. То есть пока фанат помнит все нюансы, он будет раз за разом использовать неудобную вещь, потому что использование этой неудобной вещи является "подтверждением эффективности".
Сообщение Добавлено: Пт сен 21, 2018 23:23
  Заголовок сообщения:  Re: Каллисто 1.0 для «Электроники МК-161»  Ответить с цитатой
Victor__v писал(а):
Вот объясните мне молодому почему реализация контекста была изначально в виде списка в стандарте, а не в виде стека?

списка не было. Был один текущий и один контекстный словарь. А словари связывались в древовидную структуру. Т.е. поиск начинался с вершины (контекстного словаря) к корню, что было достаточно просто в реализации но совершенно неуправляемо. Нельзя было перестроить цепочку поиска, можно было лишь оборвать ее. Стек контекста позволил перестраивать порядок поиска, оставлять только нужное, что на мой взгляд является шагом вперед.

Victor__v писал(а):
Но смысл использовать вместо органичного стека список?

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

Victor__v писал(а):
Наверно, сказываются разные подходы к архитектуре форт-систем :)

Имхо, сказывается непонимание архитектуры Форта, желание привнести что-то чужеродное но привычно-знакомое.
Это как с обсуждением скобок в качестве ограничения комментария. Выглядит не очень обоснованно для привычных к сям и там, а фортера вообще не напрягает, потому как привычно, понятно, удобно.
Сообщение Добавлено: Пт сен 21, 2018 21:00
  Заголовок сообщения:  Re: Каллисто 1.0 для «Электроники МК-161»  Ответить с цитатой
Стек контекста в Каллисто нужен для эффективности. Массив из списков слов быстрее просматривается, чем список, и занимает меньше места в весьма ограниченной памяти МК-161.

Также я не согласен с тем, что Форт-2012 навязывает список. Если это так, можно ссылку на forth-standard.org ?

Стандарт фиксирует интерфейс, то есть GET-ORDER и SET-ORDER . Их внутренние «потроха» это интимное дело реализации.
Сообщение Добавлено: Пт сен 21, 2018 10:17
  Заголовок сообщения:  Re: Каллисто 1.0 для «Электроники МК-161»  Ответить с цитатой
Ну а что укладывается в контекст?
Если указатель на структуру, то стек удобнее и проще в реализации
Насчёт иерархии классов не понял.
Наверно, сказываются разные подходы к архитектуре форт-систем :)
Сообщение Добавлено: Пт сен 21, 2018 09:04
  Заголовок сообщения:  Re: Каллисто 1.0 для «Электроники МК-161»  Ответить с цитатой
Victor__v писал(а):
Вот объясните мне молодому почему реализация контекста была изначально в виде списка в стандарте, а не в виде стека?

Нормальный вариант. Стек же не волшебная вещь, чтобы его применение автоматически превращало все в идеал. Например, иерархия классов вполне представляется в виде списков (с разными точками входа), а попытка класть это все на стек провоцирует ошибки, потому что можно переложить на стек неправильно. Как правило, проектируя словари, программист в целом понимает их структуру. Зачем же там стек? Просто чтобы "по-фортовски"?
Сообщение Добавлено: Пт сен 21, 2018 01:27
  Заголовок сообщения:  Re: Каллисто 1.0 для «Электроники МК-161»  Ответить с цитатой
ath писал(а):
ANS действительно был «однонаправленный и в форме диктата». Тем не менее, оказался полезен и для СПФ. Forth 20xx — намного более открытая система. Если есть «вечные истины» вне западного «междусобойчика», их вполне можно внести в готовящийся стандарт.

В итоге для СПФ кроме пары "флагманских проектов" ничего особо показать не получается. Сценарий удивительно регулярно повторяется - приходит новый фортер с ожиданием, что совместимость со стандартом означает наличие развитой инфраструктуры языка. Вместо этого от него ожидают, что он эту инфраструктуру и начнет обеспечивать, просто потому, что понятие "стандартный Форт" уже занято. Где сейчас Черезов? Вопрос риторический - я знаю, что СПФ он забросил давно, и на Форте по работе не пишет. Интересная такая помощь.
ath писал(а):
У хороших идей сила куда выше юридической.

О чем и речь. Форт во многом понятие из сферы теории программирования. Он реализует определенную модель вычислений и модель грамматики. Придумывать под эти базовые принципы какие-то наборы слов и заявлять, что только так и правильно - либо неграмотность, либо излишние нахрапистые амбиции. Если программист освоил на практике принципы построения форт-системы, за какой такой надобностью ему нужно разрешение от комитета по стандартизации? Сказки о том, что с принятием стандарта сотни программистов объединятся и заживут дружно и богато, рассказывают годами. У этих сказок есть свои выгодоприобретатели - лица, допущенные к редактированию стандарта, которые могут туда вписать что им нравится. Были бы это действительно лидеры рынка, сильно зависящие от реальной эффективности применяемых решений, можно было бы к ним прислушиваться. А на текущий состав комитета без слез не взглянешь. Хочется некоторым леденец на палочке вручить.
Сообщение Добавлено: Пт сен 21, 2018 01:04
  Заголовок сообщения:  Еще раз о словарях  Ответить с цитатой
mOleg писал(а):
ath писал(а):
Идея стека контекста мне нравится. Стандарту она не противоречит.

Важнее, что стек контекста органично вписывается в Форт.


Вот объясните мне молодому почему реализация контекста была изначально в виде списка в стандарте, а не в виде стека?
Или я что-то путаю?

Ладно там хранение флагов и длины слова в одном байте. Понимаю, память все дела.
Но смысл использовать вместо органичного стека список?
По затратам памяти, сложности и результатм у списка в данном случае жуткий дизбаланс
Сообщение Добавлено: Пт сен 21, 2018 00:06

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


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