Documente Academic
Documente Profesional
Documente Cultură
Limbaje regulate
George Daniel MITRA
17 decembrie 2015
Rezumat
Tema const
a n implementarea unui program care afis, eaz
a toate subs, irurile
dintr-un text care apart, in unui limbaj dat.
Specificat, ii tem
a
1.1
Cerint,
a
S
a se implementeze un program care, primind o reprezentare a unui automat
finit determinist s, i un text, sa afis, eze toate subs, irurile textului care apart, in
limbajului automatului.
Solut, iile care nu folosesc FLEX vor fi depunctate dupa cum e ment, ionat n
sect, iunea 4.
1.2
Arhiva trebuie s
a cont, in
a:
surse, a c
aror organizare nu va e impusa
un fis, ier Makefile care s
a aiba target de build s, i run (Putet, i folosi o versiune
modificat
a a celui din tema 0)
un fis, ier README care sa cont, ina numele s, i grupa s, i maxim 20 de linii
de maxim 80 de caractere n care sa ment, ionat, i algoritmul aplicat pentru
construct, ia automatului s, i sa descriet, i abordarea pentru lexer. Cu cat mai
scurt, cu at
at mai bine!
Absent, a oric
arui element mai sus ment, ionat va duce la nepunctarea temei.
Arhiva trebuie s
a fie zip. Nu rar, 7z, ace sau alt format ezoteric. Fis, ierul
Makefile trebuie s
a fie n r
ad
acina arhivei.
1.3
Format README
Prima linie din README trebuie sa cont, ina numele vostru, as, a cum apare pe
cs.curs.pub.ro. Prenumele trebuie sa fie complet, numele sa fie scris cu majuscule, dac
a avet, i diacritice n nume, ele trebuie sa apara s, i salvat, i fis, ierul ca
UTF-8. Prima linie ar trebui sa arate as, a, cu ment, iunea ca folositi numele
vostru:
1
1.4
1.4.1
Specificat, ii program
Intr
ari
Programul va citi dintr-un fis, ier numit input automatul finit, n formatul
specificat mai jos. Programul va citi dintr-un fis, ier numit text un text din
Ies, iri
Programul va afis, a la ies, irea standard rezultatul, cate un subs, ir pe linie. S, irul
vid nu se va afis, a fiindc
a nu are sens sa cautam s, irul vid ntr-un text.
1.4.3
Erori
bine f
acut, cazurile de erori sintactice se rezolva cu o singura regula la final.
In cazul n care automatul nu are erori sintactice, dar foloses, te undeva stari
care nu sunt n mult, imea st
arilor, K, simboluri care nu sunt n alfabet, , sau
are num
arul de tranzit, ii pentru o combinatie (stare sursa, simbol) diferit de
1, programul trebuie s
a afis, eze mesajul Semantic error. Erorile semantice
pot ap
area la nivel de tranzit, ii(tranzit, ii lipsa, tranzit, ii duplicat, stari incorecte,
simboluri incorecte), stare init, iala sau stari finale.
Erorile se afis, eaz
a la ies, irea standard; e mai simplu as, a.
2.1
Limbajul de descriere
2.2
2.2.1
Simbol, Alfabet, S, ir
Simbol
Alfabet
S, ir
3.1
Descriere
3.2
Specificat, ii
In tem
a, un automat finit determinist este dat ca un tuplu, conform definit, iei:
<DFA> ::= ( <states> , <alphabet> , <transitions> , <state> , ( <states>
| {} ) )
<states> ::= { <state> ( , <state> )* }
<state> ::= <name>
<name> ::= ( <upper-case letter> | <lower-case letter> | <digit> | ) +
<transitions> ::= ( <transition> ( , <transition> ) * )
<transition> ::= d( <state> , <symbol> )= <state>
4
4.1
Punctaj
Checker
Checker-ul va oferi un punctaj ntre 0 s, i 150. Ce este peste 100 intra n categoria
bonus. Testele sunt publice.
4.2
Bonus s, i Depunct
ari
Implement
arile care nu folosesc flex primesc maxim 50% din punctaj.
Pentru temele care nu respecta specificat, iile la rularea automata, punctajul
va fi 0.
Deadline: 20.01.2016, 23:59. Upload-ul va ramane deschis pana la ora 05:00.
Sugestii
V
a recomand s
a ncepeti c
at mai repede. E mai us, or decat credeti.
Bibliografie
[1] flex homepage
[2] Lexical Analysis with Flex
[3] Using flex
[4] jflex homepage
[5] jflex user manual
[6] jflex user manual in japanese
[7] Laborator 1 SO: Makefile