OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 17 Февраль, 2019 21:00

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 180 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9
Автор Сообщение
СообщениеДобавлено: Среда, 10 Февраль, 2010 11:06 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Peter Almazov писал(а):
Ну а что следует-то? В "самом исходном тексте, а не в тексте продукции"?
Не доктрина же следует?
В правиле №3 речь идёт о символах в исходном тексте, которые могут следовать за конструкцией K. Они могут относиться как к текущей лексеме, так и к следующей, а могут вообще быть пробельными (находиться между текущей и следующей лексемой). В контрпримере, который Вы привели, символ "=" следует за альтернативой ">" ["="] в тесте самой продукции, а не в исходном тесте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 13:25 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 528
Откуда: Москва
igor писал(а):
Peter Almazov писал(а):
Ну а что следует-то? В "самом исходном тексте, а не в тексте продукции"?
Не доктрина же следует?
В правиле №3 речь идёт о символах в исходном тексте, которые могут следовать за конструкцией K. Они могут относиться как к текущей лексеме, так и к следующей, а могут вообще быть пробельными (находиться между текущей и следующей лексемой). В контрпримере, который Вы привели, символ "=" следует за альтернативой ">" ["="] в тесте самой продукции, а не в исходном тесте.
Вы на вопрос-то можете ответить? Без моих "контрпримеров". Что по Вашему следует для использования в правиле № 3?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 13:56 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
igor писал(а):
Они могут относиться как к текущей лексеме, так и к следующей

А следующая может начинаться того красного равенства, которое Вам совершенно справедливо отметил коллега Peter Almazov
Вот Вам и все Ваше "доказательство" :D
igor, не надо такие вещи называть доказательствами. Не заслуживают они этого.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 14:10 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Galkov писал(а):
А следующая может начинаться того красного равенства, которое Вам совершенно справедливо отметил коллега Peter Almazov

igor писал(а):
лексический анализатор выполняет разбор исходя из предположения, что синтаксис является детерминированным.
То есть если символ "=" следует за символом ">", то лексический анализатор присоединит его к текущей лексеме в соответствии с правилом | ">" ["="]. Если же символ "=" следует за символом "=", то это начало новой лексемы. Выводы, которые здесь следуют после слова "то" однозначны. Других вариантов толкования у сканера здесь просто нет. Это и означает детерминированность.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 14:17 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Peter Almazov писал(а):
Вы на вопрос-то можете ответить?
То есть Вы считаете, что я ещё не ответил на Ваш вопрос (после всех моих разжовываний)? :shock:
Тогда я вынужден признать, что да, я действительно не могу ответить Вам на Ваш вопрос. :(


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 14:26 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4488
Откуда: Россия, Орёл
9-я пошла... хотя практически значимых вопросов ни у кого нет :)

ИМХО, эта тема сейчас больше всего подходит к
Цитата:
Отвлеченные темы
Незначащие обсуждения любых тем, болтовня и т.п.
Что скажут остальные участники?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 14:28 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 528
Откуда: Москва
Ну ладно, проехали, я уже писал, что разочарован.
igor писал(а):
Кстати, код, приведённый на странице 170, в точности соответствует тому фрагменту продукции, который я только что привёл.
Но почему мы с Вами так по разному видим один и тот же код?
С тем, что приведенный код
Код:
| ">": R.ReadChar(ch);
  IF ch = "=" THEN R.ReadChar(ch); sym := geq ELSE sym := gtr END
в точности соответствует продукции
">"["="]
я согласен.

У меня предложение к igor, а также к другим заинтересованным лицам: привести код, который в точности соответствует продукции
">="|">"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 14:31 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
igor писал(а):
Так вот оно в чём дело! Профессиональный Разработчик с 30-летнем стажем и с предвзятым отношением к ИТ-девелоперам
Ну надо же, обиделся :lol:
Что в 101-й раз подтвердило наблюдение: сколько людям не говори, а доходит только "через руки".
Двадцать раз будут строить шанхай, он столько же раз разрушится. И только на тридцатый задумаются: "а вдруг и правда, грамотная постановка задачи - половина ее решения"

Ведь именно в этом Вас и пытаются убедить, igor - давайте сформулируем грамотную постановку.
Честное слово, это не больно :D
А Вы чего ??? Для себя у меня написано это, для других - вон то, а делать я буду - как записано на листочке, который у меня на работе.

Вот Вы обижаетесь что не воспринимают Ваши "доказательства"
Воспринимают. И сообщают Вам, что в качестве аксиоматики для доказательств Вы выбираете неверные посылы. Потому-что автомат, изоморфный регулярному выражению работает не так, как Вы думаете.
Этот автомат должен не только распознавать лексемы, но и порождать их.
Из того, что рассуждения Легалова аналогичны Вашим, следует вовсе не то, что они правильны, а то, что ему за это ноги надо повыдергивать.
Разве я не говорил Вам, что Автомат обязан рассматривать все альтернативы ???
А что Вы в ответ ???
"Что-то в этом есть" - и продолжаете формировать "доказательства" и тех же ошибочных посылов.
Ну да, такие "доказательства" разбирать по косточкам - бесполезная трата времени.
И это не из-за предвзятости, в который Вы меня обвиняете, а из-за того, что аксиомы напильником рихтовать надо.

Ну хорошо, Мы не можем помочь Вам в "рихтовке напильником", потому-что Вы нам просто не показываете эту деталь.
Альтернатива - посчитайте сами.
Разве Вы считаете ???
Нет. Зото делаете выводы о предвзятости.

Вас шокирует 30 лет ??? Так я больше скажу: в нас вбивали опыт предыдущих поколений Разработчиков.
Причем более жестко, чем моя фраза к Вам про велосипед. Например, приносит вьюноша схему завсектору на подпись:
    - Какое пиковое напряжение на этом резисторе?
    - Какая у него мощность?
    - Как, ты не смотрел ТУ на него?
    - Пошел вон отсюда!
И вьюноша умнел на глазах (если хотел остаться на работе), а не рвал рубаху на груди по причине предвзятого отношения :D


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 14:39 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4488
Откуда: Россия, Орёл
Peter Almazov писал(а):
У меня предложение к igor, а также к другим заинтересованным лицам: привести код, который в точности соответствует продукции
">="|">"
Чорт :) (это касательно заинтересованности, несмотря на бессмысленность)
Код:
 IF sym = ge THEN ...
ELSIF sym = gt THEN ...
Что я не так понимаю? viewtopic.php?p=41728#p41728


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 14:46 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 528
Откуда: Москва
Евгений, я привел реальный кусок из сканера. И Вы приводите полностью корректный кусок, который можно вставить в нужное место и оттранслировать. Чтобы не надо было ничего домысливать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 15:20 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Peter Almazov писал(а):
У меня предложение к igor, а также к другим заинтересованным лицам: привести код, который в точности соответствует продукции
">="|">"
Тот же код. Но этот код получен не по правилам Вирта, а по другим. Которые от этого не становятся не правильными.
Чисто из спортивного интереса... я Вам могу нарисовать картинки, с помощью которых можно совершенно формально, из определения комментария здесь, получить код Евгения
Как бы эдакое конструктивное доказательство соответствия Реализации требованиям ТЗ...
Ну или: сказал, что недерминированность, это не есть проблема для сканера - так могу за слова и ответить :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 15:21 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Peter Almazov писал(а):
У меня предложение к igor, а также к другим заинтересованным лицам: привести код, который в точности соответствует продукции
">="|">"
Мой вариант в точности такой же, как предложил Евгений Темиргалеев. От себя добавлю, что этот код должен быть в парсере, а не в сканере. GE и GT это РАЗНЫЕ буквы в алфавите парсера. Парсер НЕ ВИДИТ то, что внутри эти лексемы начинаются с одного и того же элементарного символа. Парсер видит только абстрактные символы GE и GT. Для него они не делимы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 15:28 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
2igor, в догонку :)
Мне понравились слова Федора Васильевича (за которые я голосую обеими лапами):
Цитата:
Любая дисциплина -- геморрой.
Но отказ от нее -- отложенное потенциальное самоубийство.
Дальше каждый выбирает

Грамотная постановка задачи (которая уже и есть половина ее решения) - это Дисциплина
А дальше - дело выбора :D


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 15:45 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 528
Откуда: Москва
Galkov писал(а):
Чисто из спортивного интереса... я Вам могу нарисовать картинки, с помощью которых можно совершенно формально, из определения комментария здесь, получить код Евгения
Нарисуйте, если не сложно. Я люблю картинки.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 16:14 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4488
Откуда: Россия, Орёл
Peter Almazov писал(а):
Евгений, я привел реальный кусок из сканера. И Вы приводите полностью корректный кусок, который можно вставить в нужное место и оттранслировать. Чтобы не надо было ничего домысливать.
Вы таки про сканер... Приведённый Вами кусок я видел в грамматике для парсера, и для него указал код.

Полной грамматики сканера пока не видно. Те, кто хочет получить код сканера исключительно по указанным Виртом правилам (мне кажется, что вокруг этого момента тема крутится), должны её привести полностью. Про куски говорить смысла не вижу... Мысли по полному определению

Лично я пока ограничюсь полуформальным способом определения сканера, описанным у Вирта (как я понимаю) иммено так с методич. т.зрения (не забываем про "This book has emerged from my lecture notes for an introductory course in compiler design at ETH Zürich") по принципу "Make everything as simple as possible, but not simpler".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 10 Февраль, 2010 16:40 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 528
Откуда: Москва
Евгений Темиргалеев писал(а):
Вы таки про сканер... Приведённый Вами кусок я видел в грамматике для парсера, и для него указал код.

Полной грамматики сканера пока не видно. Те, кто хочет получить код сканера исключительно по указанным Виртом правилам (мне кажется, что вокруг этого момента тема крутится), должны её привести полностью. Про куски говорить смысла не вижу...
Да тут вся тема только про сканер.
А я вижу смысл говорить про куски. Почему бы для ясности не выделить нужное подмножество языка. До парсера это все равно не доходит.
Конечно, если жевать одно и тоже по 10 раз, то смысла нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 11 Февраль, 2010 02:02 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Хммм...
Мне придется дико извиниться, но код Евгения у меня не получается :(
Вложение:
Comment.png
Comment.png [ 26.61 КБ | Просмотров: 7087 ]

Получается такое:
Код:
.....
   CASE state OF
   | 0:   IF ch = "(" THEN state := 1 ELSIF ch = "*" THEN state := 2 (* ELSE state := 0 *) END
   | 1:   IF ch = "*" THEN INC(level) END; IF ch#"(" THEN state := 0  END
   | 2:   IF ch = ")" THEN DEC(level) END; IF ch="(" THEN state := 1 ELSIF ch#"*" THEN state := 0 END
   END
.....

Никакого злого умысла, пытался просто быть честным :)
А ранее, лишь поймал общий смысл, не щупая все детали...


ЗЫ: красные стрелочки, это типа эпсилон-переходов, они не кушают символ, поручая это тому состоянию, в которое направляются...


Последний раз редактировалось Galkov Пятница, 12 Февраль, 2010 07:15, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 11 Февраль, 2010 11:07 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 528
Откуда: Москва
Здорово! А я ведь в свое время набросал автомат, и проверял код. Но повторные скобки и звездочки прощёлкал ... :(


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 11 Февраль, 2010 11:39 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4488
Откуда: Россия, Орёл
Galkov писал(а):
Получается такое...
Вы правы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 12 Февраль, 2010 07:29 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
А ведь я тоже ошибся. Вот же ж блин :(
Забыл про переход из <3,5> в <1,5> по "(". Скобки-то у нас, оказывается - разные бывают :wink:
В ДКА это было "замаскировано" двумя красными стрелочками в Comment, а от туда уже по черной...
((поправил выше))


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 180 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB