есть ли функция C для регулярных выражений, использующая автомат детерминированных c? - PullRequest
1 голос
/ 30 апреля 2020

Функции регулярных выражений POSIX компилируют регулярные выражения в недетерминированные c конечные автоматы (NFA). Одна из проблем заключается в том, что во время компиляции невозможно определить, будут ли эти автоматы использовать слишком много стекового пространства или слишком много времени процессора. Это делает их (в некотором смысле) непригодными для использования в системе реального времени.

Эквивалентный детерминированный c конечный автомат выполняется за линейное время. Недостатком является то, что он может использовать чрезмерное количество состояний, что приводит к большому объему памяти программы. Однако положительным моментом является тот факт, что вы знаете число состояний, использованных во время компиляции регулярного выражения.

Это означает, что во время компиляции регулярного выражения вы можете узнать, подходит ли оно для вашего приложения. , Это подводит меня к моему вопросу: существует ли библиотека регулярных выражений для C, которая компилируется в DFA? Ответ на вопрос, который может быть столь же полезным, мог бы ответить на вопрос: существует ли библиотека регулярных выражений для C, которая дает полезную информацию об использовании памяти и процессора?

Ken

...