Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lfa:proiect:etapa2 [2021/11/24 01:26] stefan.stancu [Metodologia de testare:] |
lfa:proiect:etapa2 [2021/12/23 00:48] (current) stefan.stancu [Etapa 2 - Transformarea Regex-urilor la AFD-uri] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Etapa 2 - Transformarea Regex-urilor la AFD-uri ====== | ====== Etapa 2 - Transformarea Regex-urilor la AFD-uri ====== | ||
+ | |||
+ | **Update legat de upload**: incarcati o arhiva ce contine **atat fisierele sursa, cat si directorul de testare tests/ si script-ul checker.py**. | ||
+ | |||
+ | **Checker si teste**: [[lfa:proiect:checker|Checker proiect LFA]]. | ||
Transformarea Regex-AFD ne permite operationalizarea expresiilor regulate, iar aceasta este o parte importanta atat dintr-un lexer cat si dintr-un parser. | Transformarea Regex-AFD ne permite operationalizarea expresiilor regulate, iar aceasta este o parte importanta atat dintr-un lexer cat si dintr-un parser. | ||
Line 24: | Line 28: | ||
<code> | <code> | ||
UNION CONCAT a b STAR c | UNION CONCAT a b STAR c | ||
+ | </code> | ||
+ | <code> | ||
+ | CONCAT UNION a b UNION c d | ||
</code> | </code> | ||
<code> | <code> | ||
Line 29: | Line 36: | ||
</code> | </code> | ||
<code> | <code> | ||
- | STAR UNION CONCAT a b c CONCAT b STAR d | + | STAR UNION CONCAT a b CONCAT b STAR d |
+ | </code> | ||
+ | <code> | ||
+ | CONCAT PLUS c UNION a PLUS b | ||
</code> | </code> | ||
===== Cerinta si descrierea outputului ===== | ===== Cerinta si descrierea outputului ===== | ||
Line 67: | Line 77: | ||
===== Development si testare ===== | ===== Development si testare ===== | ||
- | Pentru a testa AFD-urile generate de voi, veti avea nevoie de o modalitate de afisare a acestora in text. Va sugeram sa adaugati la aceasta si o modalitate grafica. Atasam un script Python3 care poate fi folosit pentru a desena AFD-uri: | + | Pentru a testa AFD-urile generate de voi, veti avea nevoie de o modalitate de afisare a acestora in text. Va sugeram sa adaugati la aceasta si o modalitate grafica. Atasam un script Python3 ({{:lfa:proiect:draw_fa.zip|}}) care poate fi folosit pentru a desena AFD-uri: |
* script-ul primeste in linia de comanda un fisier CSV ce contine un AFD, si deseneaza AFD-ul respectiv. | * script-ul primeste in linia de comanda un fisier CSV ce contine un AFD, si deseneaza AFD-ul respectiv. | ||
* va fi necesar sa instalati anumite module pentru a rula scriptul (e.g. networkx, numpy). | * va fi necesar sa instalati anumite module pentru a rula scriptul (e.g. networkx, numpy). | ||
Line 84: | Line 94: | ||
* tranzitiile sunt codificate pe linii, sub forma: ''stare initiala, caracter, stare finala'' | * tranzitiile sunt codificate pe linii, sub forma: ''stare initiala, caracter, stare finala'' | ||
* pentru legibilitate, starile finale au fost precedate de simbolul ''f'' | * pentru legibilitate, starile finale au fost precedate de simbolul ''f'' | ||
- | * [TODO: link catre script pe github-ul LFA] | ||
- | |||
Line 126: | Line 134: | ||
===== Metodologia de testare ===== | ===== Metodologia de testare ===== | ||
- | Odata generate AFD-urile de catre implementarea voastra si afisate in cadrul fisierlor de output, checker-ul etapei 2 va compara rezultatele fata de o suita de AFD-uri de referinta, verificand pentru fiecare caz in parte daca automatele accepta acelasi limbaj. Mai multe detalii vor fi oferite in momentul in care scriptul de testare va fi facut public. | + | Odata generate AFD-urile de catre implementarea voastra si afisate in cadrul fisierlor de output, checker-ul etapei 2 compara rezultatele fata de o suita de AFD-uri de referinta, verificand pentru fiecare caz in parte **daca automatele accepta acelasi limbaj**. Mai multe detalii legate de checker gasiti pe pagina [[lfa:proiect:checker|Checker proiect LFA]]. |