Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Лексический анализ, объединение двух ДКА
|
|||
|---|---|---|---|
|
#18+
White Owlkealon(Ruslan)автор статьи фактически расшифровывает "книгу дракона" главу 3-ю "Лексический анализ" Код: plaintext Глава 3 2-й абзац . Издательство Вильямс 2003 год White Owlkealon(Ruslan)Неважно как лексер обрабатывает промежутоные состояния ДКА, сути это не меняет - тем более там только запоминание позиции и результата.Должен тебя огорчить, но это как раз важно. Ты же хочешь провести оптимизацию состояний и переходов между ними, верно? А это без понимания сути ты сделать не сможешь никак. И вот для этого тебе и надо понять во первых, что нету такой вещи как "промежуточные состояния ДКА". Ну не важно для ДКА ничего кроме стартового и финального состояний. Просто по сути самого конечного автомата - он стартует и останавливается, но он никогда не прерывается. Не предусмотрено в теории автоматов такой сущности как "промежуточное" состояние для конечного автомата. А как только ты эту сущность введешь, то ты сразу получишь машину тьюринга и мы опять придем к тому от чего начали. Не, я понимаю что учебники по теории читать скучно, но увы. Хочешь манипулировать автоматами состояний - придется их все-же прочитать. В Драконей Книге дается только их практическое применение в приложении к компилятором и совсем нет теории языков. Что в принципе не очень хорошо, но никто не заставляет жить только на ней одной. по факту я вижу ДКА у которого финальные состояния(не промежуточные) имеют определённые атрибуты. Т.е. есть всё присущее ДКА: начальное состояние,финальные состояния, функция переходов White Owlkealon(Ruslan)Главное, что лексема идентифицируется за один проход по тексту(заглядываение вперёд не считаем - для большинства языков это один символ LR(1)), а не по всем входным регуляркам в отдельности. Практическое следствие из этого - хоть 2, хоть 1000 регулярок будет обрабатываться на тексте одинакового размера за практически одинаковое время Да. И? В современных лексерах действительно все шаблоны проверяются одной общей TM. И ей действительно нет большой разницы 2 или 1000 шаблонов. мне вот совершенно без разницы как она называется, тем более, что ТМ - расширение КА, а вот сам вопрос сабжа в плане практики не критичен, но результат его интересен. Если будет пример не подходящий под моё утверждение придётся дописывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 09:23 |
|
||
|
Лексический анализ, объединение двух ДКА
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)White Owlпропущено... мммм... не верю. Не может в Драконей Книге быть такого ляпа. Впрочем, возможно это переводчик наврал. Конкретно, скажи где находится эта фраза, попытаюсь найти ее в оригинале. Глава 3 2-й абзац . Издательство Вильямс 2003 годНу точно переводчик хреновый. 1st edition from 1986In this language, patterns are specified by regular expressions, and a compiler for Lex can generate an efficient finite-automaton recognizer for the regular expressions. Переводить надо или сам справишься? А через двадцать лет эту супер-сложную для понимания фразу заменили: Вторая редакция от 2007-го года Chapter 3 Lexical Analysis In this chapter we show how to construct a lexical analyzer. To implement a lexical analyzer by hand, it helps to start with a diagram or other description for the lexemes of each token. We can then write code to identify each occurrence of each lexeme on the input and to return information about the token identified. We can also produce a lexical analyzer automatically by specifying the lexerne patterns to a lexical-analyzer generator and compiling those patterns into code that functions as a lexical analyzer. This approach makes it easier to modify a lexical analyzer, since we have only to rewrite the affected patterns, not the entire program. It also speeds up the process of implementing the lexical analyzer, since the programmer specifies the software at the very high level of patterns and relies on the generator to produce the detailed code. We shall introduce in Section 3 . 5 a lexical-analyzer generator called Lex (or Flex in a more recent embodiment). We begin the study of lexical-analyzer generators by introducing regular expressions, a convenient notation for specifying lexeme patterns. We show how this notation can be transformed, first into nondeterministic automata and then into deterministic automata. The latter two notations can be used as input to a "driver," that is, code which simulates these automata and uses them as a guide to determining the next token. This driver and the specification of the automaton form the nucleus of the lexical analyzer. kealon(Ruslan)по факту я вижу ДКА у которого финальные состояния(не промежуточные) имеют определённые атрибуты. Т.е. есть всё присущее ДКА: начальное состояние,финальные состояния, функция переходовНу вот. Как я и подозревал. Ты просто не видишь разницы между DFA и TM. А как раз в этом вопросе она и важна... kealon(Ruslan)мне вот совершенно без разницы как она называется, тем более, что ТМ - расширение КА, а вот сам вопрос сабжа в плане практики не критичен, но результат его интересен.Да, TM это расширение FA. Но алгоритмы разработанные для одного не подходят для другого и наоборот. Ты же и застрял из-за того что не смог натянуть круглое на квадратное. kealon(Ruslan)Если будет пример не подходящий под моё утверждение придётся дописывать.Не будет. Твое утверждение, не верно по сути. Но (как я подозреваю) та практическая реализация что ты сделал исходя из неверных предпосылок, оказалась достаточно правильной. Поэтому все примеры обратного ты сейчас просто не поймешь. Мы, увы, говорим на разных языках. В общем, ладно. Учебники я тебе показал которые нужно читать. То что нужно читать оригиналы а не переводы ты тоже осознал? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 17:15 |
|
||
|
Лексический анализ, объединение двух ДКА
|
|||
|---|---|---|---|
|
#18+
White Owl, я не хочу вдаваться в философию, что и как называется и как натягивается, достаточно что работает Умничать народу полно, а вот по вопросу никто сказать пока не может. Т.е. если моё утверждение с указанными ограничениями не верно хотелось бы увидеть контрпример . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 19:33 |
|
||
|
|

start [/forum/topic.php?fid=16&startmsg=39320715&tid=1340263]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
195ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 292ms |
| total: | 582ms |

| 0 / 0 |
