Size: a a a

Compiler Development

2020 January 18

C

Constantine in Compiler Development
Yaroslav Schekin
А ответа на мой вопрос там нет, случайно? ;)
загляните сами)
источник

C

Constantine in Compiler Development
Yaroslav Schekin
А ответа на мой вопрос там нет, случайно? ;)
источник

C

Constantine in Compiler Development
Yaroslav Schekin
А ответа на мой вопрос там нет, случайно? ;)
источник

YS

Yaroslav Schekin in Compiler Development
Constantine
загляните сами)
Смотрю... и пока ничего не вижу. Для * там дана та же конструкция, и почему только она — пока не нашёл...
источник

YS

Yaroslav Schekin in Compiler Development
Пролистал всю главу — ответа там либо нет, либо я пропустил. :(
источник

YS

Yaroslav Schekin in Compiler Development
Может быть, есть какой-то ещё чат/группа, где тоже можно задать этот вопрос?
источник

AT

Alexander Tchitchigin in Compiler Development
Yaroslav Schekin
Может быть, есть какой-то ещё чат/группа, где тоже можно задать этот вопрос?
https://t.me/formal_language_processing но там ещё более бесперспективно. 😄
источник

YS

Yaroslav Schekin in Compiler Development
Alexander Tchitchigin
https://t.me/formal_language_processing но там ещё более бесперспективно. 😄
Да там же только 14 человек. ;)
источник

C

Constantine in Compiler Development
Yaroslav Schekin
Пролистал всю главу — ответа там либо нет, либо я пропустил. :(
источник

МБ

Михаил Бахтерев in Compiler Development
Yaroslav Schekin
А не, например, такая?
Потому что переход 2 -> RE -> 3 это такой же граф с пунктирными входами/выходами. Там тоже может быть *. Что-нибудь вроде (a*b*)* И это должно нормально компоноваться. С промежуточными узлами это делается без лишней дополнительной логики и доказывается проще.
источник

YS

Yaroslav Schekin in Compiler Development
Так всё равно же нет?
источник

M

Mohammad in Compiler Development
Model exam
источник

YS

Yaroslav Schekin in Compiler Development
Михаил Бахтерев
Потому что переход 2 -> RE -> 3 это такой же граф с пунктирными входами/выходами. Там тоже может быть *. Что-нибудь вроде (a*b*)* И это должно нормально компоноваться. С промежуточными узлами это делается без лишней дополнительной логики и доказывается проще.
Да, может быть. Но в чём проблема при компоновке (я, конечно, подробно не сравнивал, но второе выглядит так же просто — добавил состояние и два стереотипных перехода, и всё)?
>  и доказывается проще.
Меня просто несколько удивляет, что а) в то время Томпсона волновало, что проще доказывается, а не как бы сэкономить ещё 10 байт ;) и б) почему этих альтернатив нет в современных учебниках и т.п.
Может, я чего-то не вижу? :(
источник

C

Constantine in Compiler Development
Yaroslav Schekin
Так всё равно же нет?
нужно поискать, правильный поисковый запрс составить, найдется все
источник

YS

Yaroslav Schekin in Compiler Development
Constantine
нужно поискать, правильный поисковый запрс составить, найдется все
Так ничего не нашлось (я достаточно долго и разнообразно искал, мне кажется).
Потому и спросил...
источник

МБ

Михаил Бахтерев in Compiler Development
Yaroslav Schekin
Да, может быть. Но в чём проблема при компоновке (я, конечно, подробно не сравнивал, но второе выглядит так же просто — добавил состояние и два стереотипных перехода, и всё)?
>  и доказывается проще.
Меня просто несколько удивляет, что а) в то время Томпсона волновало, что проще доказывается, а не как бы сэкономить ещё 10 байт ;) и б) почему этих альтернатив нет в современных учебниках и т.п.
Может, я чего-то не вижу? :(
Корректность важнее. Да и потом, это же NFA. Потом всё сокращается и оптимизируется. Для чего-то вроде (a*b*)* важно, по какой стрелке вышли. А в Вашей конструкции, вроде как, на первый взгляд, с этим не очевидно.
источник

YS

Yaroslav Schekin in Compiler Development
Михаил Бахтерев
Корректность важнее. Да и потом, это же NFA. Потом всё сокращается и оптимизируется. Для чего-то вроде (a*b*)* важно, по какой стрелке вышли. А в Вашей конструкции, вроде как, на первый взгляд, с этим не очевидно.
Подождите... Т.е. Вы думаете, что эта конструкция неправильная?
А почему? Я вот думал об этом, и так ничего и не нашёл (ни причин, ни контрпримеров). :(
источник

МБ

Михаил Бахтерев in Compiler Development
Yaroslav Schekin
Подождите... Т.е. Вы думаете, что эта конструкция неправильная?
А почему? Я вот думал об этом, и так ничего и не нашёл (ни причин, ни контрпримеров). :(
Ну. Попробуйте нарисовать нечто вроде (a*b*[cd])*, мне кажется, если строить Вашим методом, она сломается на abac. Но вообще, конечно, надо брать и доказвать, что для любого re ваш вариант будет допускать только re*
источник

YS

Yaroslav Schekin in Compiler Development
Михаил Бахтерев
Ну. Попробуйте нарисовать нечто вроде (a*b*[cd])*, мне кажется, если строить Вашим методом, она сломается на abac. Но вообще, конечно, надо брать и доказвать, что для любого re ваш вариант будет допускать только re*
Спасибо, сейчас попробую!
источник
2020 January 19

YS

Yaroslav Schekin in Compiler Development
Михаил Бахтерев
Ну. Попробуйте нарисовать нечто вроде (a*b*[cd])*, мне кажется, если строить Вашим методом, она сломается на abac. Но вообще, конечно, надо брать и доказвать, что для любого re ваш вариант будет допускать только re*
Да, похоже, что так и есть (или я ошибся в построении "руками").
Огромное Вам спасибо (буду проверять дальше, теперь я хоть вроде понял, на какие примеры смотреть)! :)
источник