https://github.com/teodutu/lfa
Tema la LFA - 2020
https://github.com/teodutu/lfa
deterministic-finite-automata formal-languages jflex
Last synced: 4 months ago
JSON representation
Tema la LFA - 2020
- Host: GitHub
- URL: https://github.com/teodutu/lfa
- Owner: teodutu
- License: gpl-3.0
- Created: 2020-01-13T08:09:55.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-15T16:48:36.000Z (over 6 years ago)
- Last Synced: 2025-10-24T17:12:06.732Z (8 months ago)
- Topics: deterministic-finite-automata, formal-languages, jflex
- Language: OpenEdge ABL
- Size: 1.68 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LFA
Tema la LFA - 2020
Fiecare cerinta este rezolvata din prima parsare a inputului. In anumite stari
ale *AFD*-ului care parseaza fisierul de input, se stocheaza/calculeaza
structurile necesare rezolvarii respectivelor cerinte: graful starilor si
tranzitiilor, graful transpus si multimile de stari accesibile si utile.
## -e
Pur si simplu se verifica daca vreuna dintre starile finale este cea initiala.
## -a si -u
Aceste cerinte se rezolva similar: parcurgand cu un *BFS* din starea initiala,
respectiv din starile finale graful ce reprezinta *AFD*-ul, respectiv acelasi graf
transpus. Din prima parcurgere rezulta starile accesibile, iar din cea de-a doua
cele productive. Starile utile sunt intersectia acestor doua multimi.
## -v
Limbajul este vid daca starile finale nu sunt accesibile. La citirea fiecarei
stari finale se verifica daca aceasta este si accesibila.
## -f
Se testeaza cu un *DFS* care verifica daca exista cicluri in *AFD*. Din moment ce
daca un nod dintr-un ciclu este util, toate nodurile sunt utile, in momentul in
care se depisteaza un ciclu se verifica un singur nod.