OberonCore https://forum.oberoncore.ru/ |
|
Детерминированность лексики Оберона https://forum.oberoncore.ru/viewtopic.php?f=61&t=2279 |
Страница 6 из 9 |
Автор: | Peter Almazov [ Среда, 03 Февраль, 2010 09:57 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Евгений Темиргалеев писал(а): Поскольку формально синтаксис сканера не дан, как можно говорить о его детерминированости? Дать его самим. Текст программы, которая его реализует дан.
|
Автор: | Galkov [ Среда, 03 Февраль, 2010 11:58 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Илья Ермаков писал(а): Т.е. имеется в виду, что детерминированный синтаксис - это такой, по которому не получится при всём желании НКА? Мне думается: "при всем желании" - не совсем те слова. ДКА, в моем понимании - частный случай НКАВроде как, мы имеем точное отображение регулярного синтаксиса в НКА. По построению просто, так уж получилось.... И вот оказывается, что эти НКА могут удовлетворять некоторым условиям (из одной вершины только одна дуга для любого символа). И тем НКА, для которых "только одна", мы присваиваем дополнительно почетное звание ДКА. А правила проверки именно синтаксиса на детерминированнось - это та же самая проверка на "только одна", но минуя этап рисования картинок. Евгений Темиргалеев писал(а): Я понимаю так: для кодирования недетерминированного синтаксиса его надо преобразовать в детерминированный (если возможно). Про "возможность" - вообще никаких сомнений. Интерпретатор НКА (фишки на диаграммах переходов) - это же алгоритм. Детерминированный. И, как у всякой программы, у него есть "множество состояний". Что такое "состояние" этого интерпретатора - конкретное расположение фишек на поле. Автоматически (как бы сам собой) получается способ построения ДКА, глядя внимательно на наш НКА. Каждая фишка, предположим, ответственна за некую лексему. Наверное это вот и называет igor классом лексем, если таких фишек несколько ((но это не более, чем мои предположения)) Возникает ощущение, что, пытаясь смекнуть, как же "это" закодировать - он идет очень похожим путем. Типа, природу не обманешь... Peter Almazov писал(а): Дать его самим. Текст программы, которая его реализует дан В принципе, в природе существует т.н. LEX-формализм.Но он шибко не похож на синтаксис РБНФ, приводимый Виртом. Скажем, квадратные и фигурные скобки обладают совершенно иным смыслом. И под С заточен - аж до безобразия. Мне-то, хоть к пчелам в улей.... Хотя тоже достает его C-шность. Скажем, задача табличного НКА настолька маленькая, что тут и АСМ - совершенно адекватен. Тем более, что тормоза на этом месте совершенно не в тему. А вот, глядя на основные идеи этого LEX-формализма, сделать его хоть бы и в Оберон - почему бы и нет. Нет более лучшего способа стать Мастером, видимо.... Главное, "ребенка не выплеснуть" |
Автор: | Евгений Темиргалеев [ Среда, 03 Февраль, 2010 12:11 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Евгений Темиргалеев писал(а): Peter Almazov писал(а): Регулярный язык для синтаксического анализатора (парсера) Этот язык не регулярный.Peter Almazov писал(а): Евгений Темиргалеев писал(а): Поскольку формально синтаксис сканера не дан, как можно говорить о его детерминированости? Дать его самим. Текст программы, которая его реализует дан.{ ">" | ">=" } { ">" [ "=" ] } |
Автор: | Trurl [ Среда, 03 Февраль, 2010 13:03 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Peter Almazov писал(а): Регулярный язык для лексического анализатора (сканера): { > | >= } – недетерминированный В каком смысле недетерминированный? |
Автор: | Peter Almazov [ Среда, 03 Февраль, 2010 13:19 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Trurl писал(а): Peter Almazov писал(а): Регулярный язык для лексического анализатора (сканера): { > | >= } – недетерминированный В каком смысле недетерминированный? |
Автор: | Valery Solovey [ Среда, 03 Февраль, 2010 15:53 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Илья Ермаков писал(а): Т.е. имеется в виду, что детерминированный синтаксис - это такой, по которому не получится при всём желании НКА? Нет. Просто не надо путать недетерминированность синтаксиса и недетерминированность конечного автомата. Они друг с другом не связаны.
|
Автор: | Valery Solovey [ Среда, 03 Февраль, 2010 16:11 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Peter Almazov писал(а): Trurl писал(а): Peter Almazov писал(а): Регулярный язык для лексического анализатора (сканера): { > | >= } – недетерминированный В каком смысле недетерминированный? Код: < Из каждого состояния (они заключены в скобки - кружков нарисовать не могу) строго по одному выходу для каждого из вариантов. Над стрелками указываются символы, побуждающие перейти в соответствующие состояния.
→ (A) → (СтрогоМеньше) ↓= (МеньшеРавно) |
Автор: | Peter Almazov [ Среда, 03 Февраль, 2010 16:34 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
igor писал(а): PS: Я пошёл дальше, и нарисовал на листочке графы автоматов, соответствующих этому синтаксису. Если кому то интересно, то я мог бы их оцифровать и выложить. Интересно было бы посмотреть на рисунки. Не по теме, а вообще. Не пропадать же трудам.А по теме - надоело уже толочь воду в ступе. |
Автор: | Galkov [ Среда, 03 Февраль, 2010 17:07 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
2Valery Solovey В Вашем случае правильно рисовать так, мне кажется Код: < Ну скажем, для "изтропности"→ (A) → (СтрогоМеньше) ↓= (B) ↓ (МеньшеРавно) "Семанитика" срабатывает в каждом target-состоянии по символу "other" (непомеченная стрелочка) Евгений Темиргалеев писал(а): Это не возможно сделать однозначно. Например: Ну да, не возможно. Поэтому сначала надо нарисовать формальное определение, а потом применить именно к этому, нарисованному - формальные правила.{ ">" | ">=" } { ">" [ "=" ] } Вы взяли очень простые лексемы А если такие ? Код: integer = digit{digit} | //семантика 1 Здесь под семантикой предполагается не только руководящее указание про LexemID, но и некие действия по преобразованию текста, например - в число.digit{hexDigit}"H" //семантика 2 CharConstant = '"'character'"'| //семантика 3 digit{hexDigit}"X" //семантика 4 string = '"'{character}'"' //семантика 5 Ни в коем случае я не утверждаю, что нельзя написать некие хитромудрые регулярные выражения, которые будут детерминироваными. Но кто в них потом разберется, спрашивается ((но утверждаю, между прочим, что никакой "тупой компьютер" не поймет из РБНФ: кто такой "A" - string, или CharConstant)) Тут по-моему чисто психологический вопрос: если недетерминированность - значит кошмар. Надо просто убедить, что нет никакого кошмара... Типа снять психологический барьер Ну посложнее это, чем "прозрачная" генерация кода. Но самую-самую малость. В конце концов, код можно просто угадать (или попросить дядю написать), и проверить его на соответствие некому формальному определению. А уж детерминировано это определение, или нет - да по барабану Главное, чтобы разработчику понятно было. |
Автор: | Trurl [ Среда, 03 Февраль, 2010 17:38 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Peter Almazov писал(а): В смысле отрицания того, что Вирт в своей книге называет детерминированным. А что он называет детерминированным? |
Автор: | Peter Almazov [ Среда, 03 Февраль, 2010 18:02 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Trurl писал(а): Peter Almazov писал(а): В смысле отрицания того, что Вирт в своей книге называет детерминированным. А что он называет детерминированным? |
Автор: | Евгений Темиргалеев [ Среда, 03 Февраль, 2010 19:08 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Peter Almazov писал(а): Trurl писал(а): Peter Almazov писал(а): В смысле отрицания того, что Вирт в своей книге называет детерминированным. А что он называет детерминированным? Мне тоже не ясно. Поясните, пожалуйста. Согласитесь, догадок делать смысла не имеет, можно ошибиться. |
Автор: | Peter Almazov [ Среда, 03 Февраль, 2010 19:52 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Евгений Темиргалеев писал(а): Чтобы понять о чём Вы говорите. Думаю, тут уместна цитата из книги вида ".... называется детерминированным ....". Если строго придерживаться слов "Вирт в своей книге называет". Все уже сказано, повторяться не вижу смысла.Мне тоже не ясно. Поясните, пожалуйста. Согласитесь, догадок делать смысла не имеет, можно ошибиться. Можете поискать в книге слова вида "детерменирован*" и посмотреть, что там стоит рядом. Потом дадите свою трактовку. |
Автор: | Peter Almazov [ Среда, 03 Февраль, 2010 22:41 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
igor писал(а): 1. На рисунке изображён граф магазинного автомата А чем рисовали?
|
Автор: | Trurl [ Среда, 03 Февраль, 2010 22:48 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Peter Almazov писал(а): Все уже сказано, повторяться не вижу смысла. Сказано очень много слов. Но, не зная законов языка ирокезского... |
Автор: | igor [ Четверг, 04 Февраль, 2010 05:50 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Peter Almazov писал(а): А чем рисовали? Visio
|
Автор: | Galkov [ Пятница, 05 Февраль, 2010 02:02 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
igor, у меня возникли смутные сомнения... Те не Легалова часом усиленно штудируешь |
Автор: | igor [ Пятница, 05 Февраль, 2010 06:06 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
Galkov писал(а): igor, у меня возникли смутные сомнения... Те не Легалова часом усиленно штудируешь Вирта, Гриса, Легалова, Свердлова, Молчанова, Ахо и Ко. И этим не ограничиваюсь.Всё как всегда, знания приходится добывать по крупицам из разных источников. |
Автор: | Валерий Лаптев [ Пятница, 05 Февраль, 2010 16:35 ] |
Заголовок сообщения: | Re: Детерминированность лексики Оберона |
igor писал(а): Galkov писал(а): igor, у меня возникли смутные сомнения... Те не Легалова часом усиленно штудируешь Вирта, Гриса, Легалова, Свердлова, Мочалова, Ахо и Ко. И этим не ограничиваюсь.Всё как всегда, знания приходится добывать по крупицам из разных источников. Молчанова - вы хотели сказать... Еще порекомендую: Льюис, Розенкранц, Стирнз; МакКиман, Хорнинг; Робин Хантер - первую книжку, но можно и вторую... Мозговой М.В. - Классика программирования... И вот такая интересненькая книжка: Залогова Л.А. Разработка Паскаль-компилятора. - М.: БИНОМ. Лаборатория знаний, 2007. Можно еще продолжить... |
Страница 6 из 9 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |