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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 67 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 00:51 
mOleg писал(а):
что есть слово WORD ?
Ну, оно-то в ANS 94 все-таки есть.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 01:01 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
gudleifr писал(а):
Ну, оно-то в ANS 94 все-таки есть.

Ясно, только его давно нет в СПФе, и тем более в форке.
только я тогда совсем не понял утверждения:
gudleifr писал(а):
Еще чуть-чуть и Вы поймете, что слово WORD тоже является контекстом - с пустым off_quest .

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 01:13 
Ну как же, оно берет из потока очередной "токен" и... больше ничего не делает. Значит, реализоваться оно должно как контекст с пустым off_quest.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 01:22 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
gudleifr писал(а):
Значит, реализоваться оно должно как контекст

контекст сам текст не разбирает, зачем сваливать в кучу выделение лексемы и поиск в словаре?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 10:49 
mOleg писал(а):
зачем сваливать в кучу выделение лексемы и поиск в словаре?
Так в данном примере, вы сами отказались от поиска на диске, заменив его парсированием...

Ваш метод нужно срочно аксиоматизировать.
Ведь, смотрите, ваш метод контекстов позволяет писать в одном потоке на разных языках - для каждого контекста свой. Однако, Вы разделили чтение на два этапа: парсирование и поиск/парсирование. В результате, все языки должны базироваться на словах, разделенных пробелами? Или я опять что-то просмотрел?

Вот, например, я сейчас понял, что имею в своем FOBOS не один а два (если добавлю консоль - три) малосвязанные случая чтения:
1. исполнение сценария: ПОТОК - текстовый файл, лексема - слово, FIND - по словарю;
2. обработка сообщения: ПОТОК - очередь приложения, лексема - структура MSG-WND-WPAR-LPAR, FIND - поиск в таблицах/деревьях.
3. консоль: похоже на (1).
(Очевидно, поиск сообщения ложится под Ваш вариант поиска, за исключением наличия не одного поля связи, а двух, но вот парсирование из цикла полностью выпадает).
А при распознавании C-подобного текста, поиск годится обычный, а вот парсирование должно производится явно не по пробелам.

У Мура еще страшнее: он допускал возвращение на парсирование остатка лексемы.

Так, что надо сильно думать над границами применения всей этой лабуды... или писать под каждую новую задачу новый вариант INTERPRET : на этом этапе ищем в словаре, на этом - по регулярному выражению, здесь - на диске, здесь - грамматический разбор...
И не будет ли написание отдельных процедур off_quest приводить к куче малопонятного кода (как в случае углов) и конфликтам контекстов?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 12:47 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
gudleifr писал(а):
Так в данном примере, вы сами отказались от поиска на диске, заменив его парсированием...

Так, стоп. Причем тут разбор входного потока и поиск на диске?

gudleifr писал(а):
Ваш метод нужно срочно аксиоматизировать.Ведь, смотрите, ваш метод контекстов позволяет писать в одном потоке на разных языках - для каждого контекста свой.

Форт это всегда позволял.

gudleifr писал(а):
Однако, Вы разделили чтение на два этапа: парсирование и поиск/парсирование.

причем тут чтение? (судя по всему у нас разная терминология)

Есть процесс разбора исходного текста, который обычно называется QUIT
Внутри него происходит:
1) заполнение входного буфера из активного источника (входного потока) - REFILL
2) выделение лексем из буфера входного потока
3) поиск лексем, и в зависимости от режима работы системы компиляция\исполнение - INTERPRET
В форке все этапы реализованы отличным от привычного методом, но сути своей они не меняют.

gudleifr писал(а):
В результате, все языки должны базироваться на словах, разделенных пробелами? Или я опять что-то просмотрел?

ну, как бы входной поток всегда остается открытым, поэтому, скажем вот

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 12:59 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
gudleifr писал(а):
(Очевидно, поиск сообщения ложится под Ваш вариант поиска, за исключением наличия не одного поля связи, а двух, но вот парсирование из цикла полностью выпадает)

и опять я вас не понимаю 8(
какая разница, сколько полей связи? Все устройство поиска должно быть скрыто в конкретном словаре.
Разбор вполне себе производится в цикле.

gudleifr писал(а):
А при распознавании C-подобного текста, поиск годится обычный, а вот парсирование должно производится явно не по пробелам.

выше была ссылка на пример разбора текста без пробелов, повторюсь.

gudleifr писал(а):
У Мура еще страшнее: он допускал возвращение на парсирование остатка лексемы.

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

gudleifr писал(а):
Так, что надо сильно думать над границами применения всей этой лабуды... или писать под каждую новую задачу новый вариант INTERPRET : на этом этапе ищем в словаре, на этом - по регулярному выражению, здесь - на диске, здесь - грамматический разбор...

смысл как раз в том, чтобы не писать каждый раз свой INTERPRET, а пользоваться стандартным.
Тогда, один словарь распознает числа, другой регулярные выражения, третий отображает содержимое каталога - при наличии в контексте необходимых словарей все превращается в привычные слова и остается управляемым за счет управления контекстом.

gudleifr писал(а):
И не будет ли написание отдельных процедур off_quest приводить к куче малопонятного кода (как в случае углов) и конфликтам контекстов?

не понял, причем тут понятность кода? есть единый интерфейс, его можно использовать для распознавания чисел в различных форматах, в том числе и углов. За контекстом приходится следить в любом случае, однако это достаточно просто и удобно.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 15:41 
mOleg писал(а):
поиск на диске
Описка по Фрейду, следовало читать "поиск в словаре".
mOleg писал(а):
1) заполнение входного буфера из активного источника (входного потока) - REFILL
2) выделение лексем из буфера входного потока
3) поиск лексем, и в зависимости от режима работы системы компиляция\исполнение - INTERPRET
Вот тут, пожалуйста, поподробнее. С (3) вроде разобрались, а как выполняется настройка (1) и (2)? Как они увязываются с настройками (3)?
mOleg писал(а):
чтобы не писать каждый раз свой INTERPRET, а пользоваться стандартным.
Вот тут вопрос: что проще? Создать INTERPRET под нужную задачу или заниматься переопределением его атрибутов "несколькими уровнями ниже"?
mOleg писал(а):
причем тут понятность кода?

1) В случае правки INTERPRET пользователь находит описание нюансов "чтения" там, где он его ожидает видеть. В случае "атрибутов" нужно долго и нудно отслеживать их переопределения во всех участвующих в чтении "объектах".
2) Описание "атрибутов" по мере надобности требует, судя по приведенному примеру, какой-то унификации методов, иначе как у Вас с углами - я могу верить, что Вы не ошиблись, но проверить, все ли углы обрабатываются корректно достаточно трудно.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 19:35 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
gudleifr писал(а):
Вот тут, пожалуйста, поподробнее.

Код:
\ интерперетировать поток вплоть до его окончания
: TranslateFlow ( --> )
                BEGIN REFILL WHILE
                      INTERPRET
                    source-id @ IFNOT OK THEN \ только при работе с консолью
                REPEAT ;

gudleifr писал(а):
Как они увязываются с настройками (3)?

похоже таки ничего вы не поняли 8)
Управление только контекстом имеется, все остальное б\м обычно реализовано.

gudleifr писал(а):
1) В случае правки INTERPRET пользователь находит описание нюансов "чтения" там, где он его ожидает видеть. В случае "атрибутов" нужно долго и нудно отслеживать их переопределения во всех участвующих в чтении "объектах".

если работаешь со словарем стандартным образом (обычным для форта) никаких нюансов нет.
Впрочем, о каких атрибутах речь?

gudleifr писал(а):
2) Описание "атрибутов" по мере надобности требует, судя по приведенному примеру, какой-то унификации методов, иначе как у Вас с углами - я могу верить, что Вы не ошиблись, но проверить, все ли углы обрабатываются корректно достаточно трудно.

и я опять вас не понял. А проверить просто 8)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 20:29 
gudleifr писал(а):
похоже таки ничего вы не поняли

Потому и прошу объяснить... На халяву...

Я понимаю Ваш вариант так:
(термины условные, стековые и управляющие операторы опускаю)
ALSO КОНТЕКСТ-REFILL
ALSO КОНТЕКСТ-WORD
ALSO КОНТЕКСТ-NUMBER
ALSO КОНТЕКСТ-FIND
СИСТЕМА
по сравнению с самым кондовым:
: REFILL' ... ;
: WORD' ... ;
: NUMBER' ... ;
: FIND' ... ;
: СИСТЕМА' ... REFILL' ... WORD' ... FIND' ... NUMBER' ... ;
СИСТЕМА'
И никак не могу понять выгоду Вашего варианта...

mOleg писал(а):
о каких атрибутах речь
Например, об off_quest. Т.е. об атрибутах, позволяющих обеспечить нестандартное поведение стандартных конструкций.

mOleg писал(а):
А проверить просто
Дейкстра в таких случаях говорил: "Выкидываю, не пытаясь понять".
Проверить Ваш распознаватель можно только одним способом - просчитав в уме. Что займет ровно столько же времени, сколько написание своего варианта.
Строчка:
([0-9]+°([0-9]+\')?([0-9]+\")?)|([0-9]+\'([0-9]+\")?)|[0-9]+\"
читается все-таки проще.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 22:01 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
gudleifr писал(а):
Я понимаю Ваш вариант так:

нет, в контексте после запуска три словаря: ROOT NUMBERS FORTH
если не хочется чего-нибудь странного, работаем как обычно.
Т.е. понимаете, похоже, не правильно.

gudleifr писал(а):
Например, об off_quest. Т.е. об атрибутах, позволяющих обеспечить нестандартное поведение стандартных конструкций.

"смешались в кучу кони люди" 8)
обычно словарная статья состоит из 3-4 полей: связи, имени, кода, параметров - их количество фиксировано и не изменяется от словаря к словарю. Из перечисленных четырех полей только одно оказывается уникальным, остальные могут разделяться с другими определениями. В форке эти самые поля называются атрибутами исходя из целого ряда причин. off_quest не является атрибутом слова, а является смещением в структуре, описывающей конкретный словарь. Цель переделки словарей в форке как раз обратная - обеспечение стандартное поведение нестандартных конструкций 8).

gudleifr писал(а):
Строчка:([0-9]+°([0-9]+\')?([0-9]+\")?)|([0-9]+\'([0-9]+\")?)|[0-9]+\"читается все-таки проще.

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

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 22:21 
mOleg писал(а):
если не хочется чего-нибудь странного
Я говорю о "странном". Если не хотеть странного, то Ваша схема вообще не дает преимуществ.
mOleg писал(а):
off_quest не является атрибутом слова
А словарь не слово? А слова, которые читают/распознают поток ввода - не слова? INTERPRET - не слово?
gudleifr писал(а):
только сам механизм регулярных выражений, как минимум, на порядок сложнее, больше и медленнее.
Проще, меньше и быстрее.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 22:35 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
gudleifr писал(а):
Я говорю о "странном". Если не хотеть странного, то Ваша схема вообще не дает преимуществ.

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

gudleifr писал(а):
А словарь не слово?

а каталог это файл, и что?

gudleifr писал(а):
Проще, меньше и быстрее.

код в студию.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 22:42 
mOleg писал(а):
ачинается создание собственного словаря
а разве это не сводится к тем схемам, что я привел выше?
mOleg писал(а):
каталог это файл
Я говорил об атрибутах, изменяющих смысл слов, участвующих в работе INTERPRET...
mOleg писал(а):
код в студию
Все необходимые Вам выкладки приведены у Ахо, Хопкрофта и Ульмана... Вы же знаете, я лентяй, и не пишу код заранее. Частные случаи конечных автоматов, распознающих ввод, можете посмотреть в FOBOS.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: преобразование строкового представления угла вида 12°12'
СообщениеДобавлено: Вс май 05, 2013 23:03 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
gudleifr писал(а):
а разве это не сводится к тем схемам, что я привел выше?

нет

gudleifr писал(а):
Я говорил об атрибутах, изменяющих смысл слов, участвующих в работе INTERPRET...

уф, всеравно ерунда получается. Вы бы все-таки описание почитали. Иначе дикая терминологическая разноголосица убивает.

gudleifr писал(а):
Все необходимые Вам выкладки приведены у Ахо, Хопкрофта и Ульмана... Вы же знаете, я лентяй, и не пишу код заранее.

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

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


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

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


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

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


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

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