Implementing Regular Expressions | Cerca per titolo, autore, parola chiave | ||||||||
Implementing Regular Expressions a cura di Russ Cox. Questo è il racconto di due differenti approcci al riscontro delle espressioni regolari. Il primo approccio è il più diffuso, tra gli interpreti standard di diversi linguaggi di programmazione, incluso Perl. L'altro, chiamato Thompson NFA, è usato solo nelle implementazioni dei comandi Linux AWK e GREP. I due approcci si differenziano notevolmente, in termini di prestazioni: l'implementazione Thompson NFA è più veloce di Perl di un milione di volte. Potreste trovare incredibili questi risultati, soprattutto se usate Perl, che sembrerebbe piuttosto veloce, nei riscontri delle espressioni regolari. In effetti, il più delle volte, il motore delle espressioni regolari di Perl è sufficientemente veloce. Eppure, è possibile scrivere espressioni regolari, definite "patologiche", che Perl eseguirebbe molto lentamente. Per quanto riguarda l'agoritmo Thompson NFA, invece, non esistono espressioni regolari patologiche. Perchè, allora, Perl non utilizza l'algoritmo Thompson NFA? Potrebbe farlo, dovrebbe farlo! Il resto di questo articolo verte proprio su questo tema.
|
|||||||||
Implementing Regular Expressions | Disclaimer: questo è un link a contenuti ospitati su server esterni. |