Documente Academic
Documente Profesional
Documente Cultură
. Se cer textele sursa a 2 programe (functionale) - Care respecta specificatiile MLP date - Si care evalueaza valoarea unor expresii aritmetice date. (versiune electronica) 2. Specificarea minilimbajului de programare Limbajul trebuie sa contina anumite instructiuni si tipuri de date: a) Declaratii de variabile intregi b) Instructiuni de citire: a. Se citeste un intreg de la intrare c) Instructiuni de scriere: a. Se afiseaza valoarea unei variabile d) Expresii aritmetice e) Instructiune de atribuire 3. Implementarea unui analizator lexical accepta la intrare un fisier text reprezentand un program sursa si intocmeste ca date de iesire tabelele - FIP forma interna a programului sursa - TS tabelul de simboluri In plus, programul va trebui sa semnaleze erorile lexical si locul in care apar. Programul care efectueaza analiza lexicala trebuie sa fie insotit de documentatie.
Program primul_program
Program al_doilea_program var a, b, suma: Integer; begin Read(a); Read(b); suma := 0; For b := 1 To b Do begin suma := suma + a; end Write(suma); end.
program=var variabile ; executie variabile ID{,ID} : Integer executie = begin instructiuni end instructiuni = instructiuni | instructiuni ;instructiuni input_output= "read" ID | "Write" ID atribuire = ID ":=" expresie instructiuni_FOR = for ID:=termen to begin instructiuni end expresie = termen | termen {operatie termen} operatie = + | - | *| / termen = ID | constanta constanta = intreg_semn intreg_semn = [+ | -] cifra| cifra {cifra} cifra = 0 | 1| 2| 3| 4 | 5|6|7|8|9 Analiza lexicala: Litere: Cifre: Operatori aritmetici: Separatori Relatii ID [a-z | A-Z] [0-9] [ '+' | '-' | '*' | '/' ] "(" | ")" "<" | "<=" | "=" | "<>" | ">=" | ">" identificator - nume variabila: litera | litera{litera}{cifra} "*/" | */"
Comentarii Cuvinte rezervate: o 'program' o sintaxa: program nume_program o 'var' se definesc variabilele
Tabel de atomi:
Tip atom ID Constanta Program Var Integer Begin End Read Write Do For To ; , . ( ) + :=
o 'Begin' de aici incepe executia programului o 'End' sfarsitul executiei o 'Write' instructiune care se foloseste pentru o afisare pe ecran o 'Read' - instructiune care se foloseste pentru citirea unei valori de la tastatura (prin valoare intelegandu-se atat cifre cat si litere) o ':=" - instructiune de atribuire in Pascal o 'Integer" tipul variabilei definire (exista si alte tipuri rezervate, cum ar fi: String, Char, Boolean, etc) o 'For" instructiune repetitiva o To de la o Do - executie
Cod 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18