Determinarea tipului de mecanism

Capitolul 4. Mecanica procesării expresiilor regulate

Deoarece tipul de mecanism utilizat de program, într-o măsură semnificativă determină caracteristicile de care beneficiază de sprijin, precum și singularitatea muncii lor, în multe cazuri, includem un mecanism la care tipul de exmatriculare pe mai multe expresii de testare (și, dacă nu puteți găsi diferențe, atunci aceste diferențe sunt atât de importante?). În această etapă, nu mă aștept să înțelegeți de ce rezultatele acestor teste arată exact ceea ce le scriu. Vă propun să vă bazați pe alegerea mea și dacă programul dvs. de dragoste lipsește în tabel. 4.1, vă recomand să efectuați un auto-test și să determinați tipul de mecanism înainte de a continua să citiți următoarele capitole.







Mecanismul tradițional al NFA sau nu?

Dintre toate tipurile de motoare de exprimare regulată, mecanismul tradițional al ANC este cel mai des folosit, ceea ce este ușor de distins de celelalte. Sunt cuantificatorii minimali susținuți în mecanism (184)? Dacă este acceptată, veți avea aproape sigur mecanismul tradițional al ANC. După cum veți vedea în scurt timp, cuantificatorii minimali din DFA sunt imposibili, iar în POSIX NDA nu au sens. Cu toate acestea, pentru acuratețe, aplicați expresia regulată nfa | nfa • nu la șirul "nfa • not"; dacă numai "nfa" coincide, atunci acesta este mecanismul tradițional al ANC. Dacă întregul șir de caractere "nfa • nu" se potrivește, acesta este fie POSIX NFA, fie DFA.







DKA sau POSIX NDA?

Pentru a distinge POSIX de NCA în DKA în general nu este dificil - în DFA nu este acceptată păstrarea parantezelor și backlink-urilor. Cu toate acestea, în unele sisteme hibride se folosește o combinație a celor două tipuri de mecanisme și în absența expresiilor consecutive blocate rotunde, mecanismul DKA este utilizat în expresie.

Următorul test simplu vă va ajuta să obțineți informații suplimentare. Aplicați expresia X (. +) + X la un șir de formule '= XX =============

========= ', ca în următoarea comandă:

În cazul în care comanda durează foarte mult timp înainte de a avea mecanism de NCA (și în cazul în care nu poate fi mecanismul tradițional al ANV cu privire la rezultatele testului anterior, atunci este POSIX AEN). Dacă comanda este executată rapid, este vorba de un DFA sau de un ANC cu un fel de optimizare viclean. Dacă pe ecran apare un avertisment despre depășirea stivei sau întreruperea unei operații prelungite, NCA funcționează.







Articole similare

Trimiteți-le prietenilor: