Forth http://fforum.winglion.ru/ |
|
структура словарей и поле флагов http://fforum.winglion.ru/viewtopic.php?f=8&t=3115 |
Страница 2 из 4 |
Автор: | Hishnik [ Сб фев 18, 2017 21:36 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Victor__v писал(а): Как-то не понял. В словаре присутствует слово, которое является другим словарём. И? Если активировать слово, оно обновит контекст. И из него слова словаря-родителя будут не видны. А внешний словарь не будет иметь доступа к словам внутреннего словаря. В 94-м году ANS-комитетом было придумано такое бредовое поведение словарей, когда каждый раз при переключении надо было перестраивать всю структуру поиска словами ONLY и ALSO. Предыдущий подход состоит в том, что один словарь создается как слово в другом словаре и автоматически наследует его цепочку поиска. Это заодно обеспечивает и полиморфизм, поскольку перекрытие новым словарем слова найдутся в нем, а неперекрытые будут в словаре-родителе. При необходимости можно установить LFA словаря в пустоту, тогда родителя у него не будет. Однако существующие шаблоны проектирования такого требуют редко, а требование постоянно помнить порядок перечисления в ONLY ALSO никоим образом качество кода не повышает. Вообще, требование к программисту что-то помнить постоянно, апеллируя при этом к его профессионализму - изначально проигрышная позиция. Victor__v писал(а): Словарь отличается, в моём представлении, дополнительными полями, где и хранится поле связи внутри словаря. Тут ключевой вопрос - зачем? Словари решают вполне определенные задачи, и их реализация должна отталкиваться от этих формулировок. Реализовывать что-то "потому что получается" чревато уходом в программистские дебри и утерей основных целей проекта. Полученная программа будет представлять собой предел возможностей программиста, но далеко не факт, что этим можно будет пользоваться на практике. |
Автор: | chess [ Сб фев 18, 2017 23:35 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Цитата: Вообще, требование к программисту что-то помнить постоянно, апеллируя при этом к его профессионализму - изначально проигрышная позиция. Некоторое уточнение - помнить постоянно что-то находящееся в оперативной памяти программиста. А в оперативной памяти находится как раз нечто меняющееся. Другое дело постоянная память(долговременная) - там у профессионала по сравнению с любителем гораздо больше информации. |
Автор: | Hishnik [ Сб фев 18, 2017 23:44 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
chess писал(а): Некоторое уточнение - помнить постоянно что-то находящееся в оперативной памяти программиста. А в оперативной памяти находится как раз нечто меняющееся. Другое дело постоянная память(долговременная) - там у профессионала по сравнению с любителем гораздо больше информации. Ну вот пример - если в строке нечетное количество согласных букв, строка завершается двойной точкой с запятой. Разумное требование? Явно нет. А ведь можно обосновать и аргументировать высокими соображениями. Вокруг Форта тоже есть достаточное количество формализованных и описанных требований, не имеющих практической ценности. Постоянная перестройка словарей из этой серии. |
Автор: | Victor__v [ Вт фев 21, 2017 18:08 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Цитата: возможно, вы не видели, а возможно видели, на всякий случай Устройство словарных статей и словарей в форке. Кстати, с числами у меня все гораздо проще и интереснее, чем обычно Видел, форк есть на компе Я не могу понять зачем нужна фича вида ' 1 ? И ещё вопрос по поводу подбора слов ядра. Почему отсутствуют операции 1+ 2+ 1+! ? Когда пробовал портировать планировщик сопрограмм на форк, то спотыкнулся именно на этом А поведение словаря определяемое словарём идея интересная сама по себн |
Автор: | Victor__v [ Вт фев 21, 2017 18:16 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Цитата: а требование постоянно помнить порядок перечисления в ONLY ALSO никоим образом качество кода не повышает Я работаю со словарями. ONLY не разу не пользовался. ALSO CONTEXT , да DEFINITIONS , только во время отладки. В чём проблема, я не могу этого уразуметь. Механизм контекста словарей достаточно адекватен. Перестановки контекста не было ни разу. Лишь ужать до одного словаря и восстановить. |
Автор: | mOleg [ Вт фев 21, 2017 19:42 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Цитата: Я не могу понять зачем нужна фича вида ' 1 ? это следствие устройства словарей, и однородности работы с любыми лексемами. Victor__v писал(а): Почему отсутствуют операции 1+ 2+ 1+! ? идея форка была в том, что ядро содержит только необходимые вещи, а все лишнее цепляется поверх с помощью библиотек, собственно, если вы посмотрите, какие слова есть в ядре, то станет ясно, что только используемые самим ядром. что же касается 1+ , то оно легко заменяется на 1 + , а слов в в словаре становится меньше. Т.е. убрано за неочевидностью необходимости. К тому же я смотрел, как меняется объем ядра, выигрыш от 1+ 2+ и т.п. очень мал, если есть вообще. Victor__v писал(а): А поведение словаря определяемое словарём идея интересная сама по себе Оно напрашивается само. Цитата: В чём проблема, я не могу этого уразуметь да тут все просто - не умеют пользоваться. У меня были подобные проблемы с механизмом исключений Catch Throw - мог очень долго доказывать их ненужность, пока не научился пользоваться 8) психология-с |
Автор: | mOleg [ Вт фев 21, 2017 19:46 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Цитата: Видел, форк есть на компе Ну, тогда таки рекомендую тщательно посмотреть на устройство словарей, в частности, рассмотрение всех полей слова кроме LFA, как атрибутов, и, как следствие, возможности использования в качестве имени иконок, гифок, музыкальных фрагментов и т.п. |
Автор: | Victor__v [ Вт фев 21, 2017 20:09 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Цитата: Ну, тогда таки рекомендую тщательно посмотреть на устройство словарей, в частности Сам задумывался об этом. Временному словарю по факту не нужно поле кода, имени, флагов и т.д. Кстати, а что вы думаете на счёт флага " я словарь" ? |
Автор: | mOleg [ Вт фев 21, 2017 21:04 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Цитата: Кстати, а что вы думаете на счёт флага " я словарь" ? Я его оставил, хотя особо нигде не использовал. Чего-то особенного я о нем не думаю. |
Автор: | Hishnik [ Вт фев 21, 2017 23:46 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Victor__v писал(а): В чём проблема, я не могу этого уразуметь. Механизм контекста словарей достаточно адекватен. Перестановки контекста не было ни разу. Лишь ужать до одного словаря и восстановить. А собственно, это и ответ. Реализовывать нужно то, что используется на практике. Ладно 90-е, трудно было заявлять, что Европа нам не указ. Но сейчас-то? Эртл - записной лузер из европейского университета средней руки. В Forth Inc аж целых два программиста на полную ставку, что есть, по их мнению, большое достижение. И эти люди пытаются нас учить? Ладно пытаются учить, а мы-то почему идем на поводу и смотрим в рот тем, кто за 20 лет ничего вменяемого выдать не смог. |
Автор: | Hishnik [ Вт фев 21, 2017 23:50 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
mOleg писал(а): да тут все просто - не умеют пользоваться. У меня были подобные проблемы с механизмом исключений Catch Throw - мог очень долго доказывать их ненужность, пока не научился пользоваться психология-с Я реализовал CATCH THROW и вполне пользуюсь исключениями в С++/C#. Считаю, что в Форте этот механизм чужеродный и перекрывается другими видами реакции на ошибки. Аргумент "зелен виноград" превращается в довольно жалкое зрелище, когда оказывается, что "не умеете пользоваться" идет мимо. |
Автор: | Victor__v [ Ср фев 22, 2017 18:17 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Цитата: а мы-то почему идем на поводу и смотрим в рот тем, кто за 20 лет ничего вменяемого выдать не смог Сочувствую вашей братии А если серьёзно, то я руководствуюсь здравым смыслом и идеями фортеров на этом форуме. К примеру, идея стековых комбинаторов от известного нам шахматиста Давайте придумаем наилучший вариант словарей с кучей фич, а я пока запасусь попкорном и буду юзать "дьявольский" механизм контекста, буга-га |
Автор: | Victor__v [ Ср фев 22, 2017 18:22 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Цитата: Я реализовал CATCH THROW и вполне пользуюсь исключениями в С++/C#. Считаю, что в Форте этот механизм чужеродный и перекрывается другими видами реакции на ошибки Считаю также. Но за не имением рыбы, используем раков. Можно, к примеру, для ловли исключений сопрограммы использовать. Сопрограммами удобно выражать интерпретатор, кстати. |
Автор: | Victor__v [ Чт фев 23, 2017 20:11 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Цитата: это следствие устройства словарей, и однородности работы с любыми лексемами. Смотрел исходники словаря number Это не следствие, это скорее заглушка, дабы была однородность Да и кому нужно брать xt от числа? К тому же вариант не масштабируется. А то мало ли в обиход войдёт данная фича с лагом? т.е. код ' 1 ' 2 ' 3 execute . execute . execute . выведет 3 3 3 Хотя надо поискать задачу, дабы эта фича была востребована Непорядок |
Автор: | Hishnik [ Чт фев 23, 2017 21:25 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Victor__v писал(а): Сочувствую вашей братии Я вот не сильно этой братии сочувствую. Затянувшееся состояние "заграница нам поможет" мешает людям работать и обсуждать практические проблемы. Victor__v писал(а): К примеру, идея стековых комбинаторов от известного нам шахматиста Да, еще одна разновидность того, что Эртл называет recognizers. Человек, видимо, открыл для себя Dragon book и решил, что все узнанное нужно срочно реализовать. А это неправильный подход. Довольно-таки опасно делать систему постоянно на грани возможностей, потому что у другого человека эти грани в других местах, ну и получаются разные реализации. Victor__v писал(а): Можно, к примеру, для ловли исключений сопрограммы использовать. Сопрограммами удобно выражать интерпретатор, кстати. Исключения в Форте вообще нужно ловить далеко не всегда. Компилируемая программа требует обеспечить ей постоянную информацию о том, куда и как уходить. А если в Форте что-то и обнаружилось, проще просто очистить стек и вернуться в консоль. Обработка исключений в стиле "настроили обработчик, убедились в том, что туда передается управление... чтобы очистить стек и вернуться в консоль"? Это просто демонстрация возможностей - "пусть все видят, что я освоил такое сложное понятие". Действительное освоение подразумевает и возможность отказаться, когда в технологии нет реальной необходимости. |
Страница 2 из 4 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |