DFAs vs Regexes bei der Implementierung eines lexikalischen Analysators?
(Ich lerne gerade, wie man einen Compiler schreibt. Bitte korrigieren Sie mich, wenn ich falsche Angaben mache.)
Warum sollte jemand DFAs immer noch in Code implementieren (goto-Anweisungen, tabellengesteuerte Implementierungen), wenn er einfach reguläre Ausdrücke verwenden kann? Nach meinem Verständnis nehmen lexikalische Analysatoren eine Reihe von Zeichen auf und erstellen eine Liste von Token, die in der Grammatikdefinition der Sprachen Terminals sind, sodass sie durch einen regulären Ausdruck beschrieben werden können. Wäre es nicht einfacher, eine Reihe von Regexen zu durchlaufen und aus der Schleife auszubrechen, wenn sie eine Übereinstimmung finden?