За что я должен отдать приоритет? (no.of.states) или (модульность <-> удобочитаемость)? - PullRequest
0 голосов
/ 06 октября 2011

Как я уже говорил в этом вопросе , я использую DFA для отслеживания всех комментариев, строк и т. Д. И я закончил этот DFA с 11 состояниями.

Теперь я собираюсь написать DFAраспознавать ключевые слова в Java.

Идея:

Первоначально pos = 0.pos увеличивается на 1 для каждого перехода.

iskeyword () - моя собственная функция.

isalnum () может быть заменена любой пользовательской функцией, в зависимости от будущих требований.

(Многие несвязанные переходы и собственные циклы не предусмотрены, хотя они присутствуют в реальном DFA).

(q0) -! Isalnum (pos) -------> (q1) --- ключевое слово is (pos, pos + len) ---> (pos + = len) (q2) -----! isalnum (pos) --------> (q3 [сделать прочитанноеключевое слово BOLD ]) --- ключевое слово (pos, pos + len) -> (q2).

Требуется минимум 4 состояния.Приведенный выше метод весьма отличается от обычной реализации DFA .

Мой вопрос ...

  1. Могу ли я следоватьвыше метод?Правильно ли следовать этому?(если это работает)
  2. Если я должен реализовать это вышеописанным способом, как я могу это сделать?Построить отдельный DFA для улучшения читабельности?или я мог бы объединить этот DFA с распознающими комментарии, строки (чтобы уменьшить количество состояний)
...