Sunteți pe pagina 1din 10

Ministerul Educaţiei şi Ştiinţei

al Republicii Moldova

Universitatea Tehnică a Moldovei

Facultatea Calculatoare Informatică şi Microelectronică


Tehnologii Informationale

LUCRARE DE LABORATOR Nr.1

la Limbaje Formale şi Proiectarea Compilatoarelor

Tema:
Limbajele regulate

A efectuat: st.grupei TI-113


Florin Rosca

A verificat: lector superior


Duca Ludmila .

Chişinău 2018

Scopul lucrării:
1. Pentru gramatica formală G=(VN, VT, P, S) construiţi 5 şiruri care aparţin limbajului
L(G) generat de această gramatică. Lungimea şirului trebuie să fie nu mai mică decît
numărul de caractere din alfabetul V n+2
2. Pentru fiecare şir să se construiască arborele de derivare.
3. Desenaţi automatul finit echivalent acestei gramatici.
4. La ce clasă a gramaticilor dacă Chomsky aparţine gramatica dată.
Datele iniţiale :
VN ={A, B,C}
VT ={ a , 1 , b , + }
P={ 1. M→aA
2. M→1B
3. C→b
4. C→+A
5. C→aB
6. B→aC
7. C→1A
8. C→1C
9. A→b
10. A→bB
11. A→+B
12. A→+C
13. B→bA
14. B→a }

1.M→aA→abB→abbA→abb+C→abb+b;

M
a A
A

b B

b A

+ C

b
2. M→1B→1aC→1a1A→1a1bB→1a1bb;

2
M

1
B

a
C

1 A

b B

3. M→aA→a+B→a+bA→a+b+B→a+b+a;

a A

+ B

b A

+ B

5. M→1B→1bA→1b+C→1b+1A→1b+1bB →1b+1ba;
M

B
3
1 A

b C
+
A
1
B
b
a

5. M→aA→a+B→a+bA→a+b+B→a+b+aC→a+b+ab;
M

A
a B

+ A
b
B
+
C
a
b

Listingul programului:
#include<vector>
#include<string>
#include<map>
#include<conio.h>
#include<cstdlib>
#include<time.h>
#include<iostream>
4
#include<windows.h>
#include<cmath>
#pragma warning(disable:4786)

using namespace std;


typedef vector<string> sir;
class Grammer
{ public:
Grammer(){};
void InitializeData();
void CreateGramm(int len);
void FindTerminal(string &str);
private:
void DivStr(string &s,vector<string> &v);
private:
map<char,sir> prod;
string Vn;
};
void Grammer::InitializeData()
{
string Vt;
cout<<"Introduceti vocabularul Vn:"<<endl;
cout<<"Vn=";
cin>>Vn;
int pos=0;
while((pos=Vn.find(','))!=string::npos)
{
Vn.erase(pos,1);
}
cout<<endl<<"Introduceti vocabularul Vt:"<<endl;
cout<<"Vt=";
cin>>Vt;

string s;
vector<string> v;
cout<<endl<<"Introduceti productiile separindu-le prin virgula (s->aB,cD...):"<<endl;
for(int i=0; i<Vn.size(); i++)
{
cout<<Vn[i]<<"->";
cin>>s;
DivStr(s,v);
for(int j=0; j<v.size(); j++)
prod[Vn[i]].push_back(v[j]);
v.clear();
}
}
void Grammer::DivStr(string &s,vector<string> &v)
{
int pos=0;
char *str=0;
while((pos=s.find(','))!=string::npos)
{
str=new char[pos];
str[pos]=0;

5
s.copy(str,pos,0);
s.erase(0,pos+1);
v.push_back(str);
str=0;
}
v.push_back(s);
}

void Grammer::CreateGramm(int len)


{
static int cont=0;
LARGE_INTEGER n;
cont++;
string res,aux;
int index=0,temp=0;
time_t t;
aux=prod['S'][cont%prod['S'].size()];
res="S->"+aux;
cout<<"S";

while(true)
{
temp=prod[res[res.size()-1]].size();
Sleep(1);
QueryPerformanceCounter(&n);
index=n.LowPart%temp;
if (aux.size()>=len)
{
string str=aux;
FindTerminal(aux);
if(str!=aux)
{
res+="->"+aux;
break;
}
}
if ((prod[res[res.size()-1]][index].size()==1)) continue;

cout<<" - "<<aux[aux.size()-1];
aux.erase(aux.size()-1,1);
aux+=prod[res[res.size()-1]][index];
res+="->"+aux;
}
cout<<endl;
for(int i=0;i<len;i++)
cout<<"| ";
cout<<endl;

for(int i=0;i<aux.size();i++)
cout<<aux[i]<<" ";
cout<<endl;

cout<<endl<<res<<endl;
}

6
void Grammer::FindTerminal(string &str)
{
char term=str[str.size()-1];
for(int i=0; i<prod[term].size(); i++)
{
if(prod[term][i].size()==1 && prod[term][i][0]>='a')
{
cout<<" - "<<str[str.size()-1];
str.erase(str.size()-1,1);
str+=prod[term][i];
break;
}
}
}

main()
{ Grammer g;

g.InitializeData();
LARGE_INTEGER n;

cout<<endl;
cout<<"Rezultatele: \n"<<endl;
while(1)
{
for(int i=0; i<5; i++)
{
QueryPerformanceCounter(&n);
g.CreateGramm(n.LowPart%7+7+i);
cout<<endl;
}
getch();
}
}

Rezultatele executiei programului:

7
8
Schema automatului finit echivalent gramaticii:

AF=(Q, , , q0, F), unde


Q – mulţimea de stări
 - vocabular
 - funcţia de tranziţie
q0 – starea iniţială
F – mulţimea stărilor finale
Algoritmul de construire AF:

1. Q = VN{X}={ S, P,Q}
2. =VT={ a, b, c, d, e, f }
3. q0=S
4. F={X}

1. (S,a)=P
2. (S,b)=Q
3. (P,b)=P
4. (P,c)=P
5. (P,d)=Q
6. (P,e)=X
7. (Q,e)=Q
8. (Q,f)=Q
9. (Q,a)=X

9
Concluzii:În urma efectuării date de laborator am obţinut experienţă în
domeniul limbajelor şi anume a limbajelor regulate care sunt foarte importante în
proiectarea compilatoarelor. Astfel am perceput în practică lucrul cu acest tip de
limbaje, adică construirea şirurilor, a arborelor de derivare precum şi desenarea
automatelor finite echivalente, etc.

10

S-ar putea să vă placă și

  • Lab 1 LFA
    Lab 1 LFA
    Document10 pagini
    Lab 1 LFA
    Eric Semeniuc
    Încă nu există evaluări
  • Grafica Laborator Nr.2
    Grafica Laborator Nr.2
    Document8 pagini
    Grafica Laborator Nr.2
    Cebotari Ion
    100% (1)
  • Grafica Laborator Nr.3
    Grafica Laborator Nr.3
    Document5 pagini
    Grafica Laborator Nr.3
    Cebotari Ion
    100% (2)
  • Raport 5 CDE
    Raport 5 CDE
    Document7 pagini
    Raport 5 CDE
    crismaruion
    Încă nu există evaluări
  • Lab1 GC
    Lab1 GC
    Document8 pagini
    Lab1 GC
    Andrei Barbalat
    Încă nu există evaluări
  • Lab 2 MMC Boj
    Lab 2 MMC Boj
    Document12 pagini
    Lab 2 MMC Boj
    Andrian Brinzan
    Încă nu există evaluări
  • Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Document4 pagini
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Ion Damaschin
    Încă nu există evaluări
  • CDE (Lab 2)
    CDE (Lab 2)
    Document5 pagini
    CDE (Lab 2)
    BlandjLdhui
    Încă nu există evaluări
  • POO Lab7
    POO Lab7
    Document6 pagini
    POO Lab7
    Dani Ela
    Încă nu există evaluări
  • Laborator 4 Croitoru Tudor
    Laborator 4 Croitoru Tudor
    Document3 pagini
    Laborator 4 Croitoru Tudor
    DorelDjj
    Încă nu există evaluări
  • PS NR 2
    PS NR 2
    Document8 pagini
    PS NR 2
    DASdsa fsa f
    Încă nu există evaluări
  • Lab 4 Apa
    Lab 4 Apa
    Document21 pagini
    Lab 4 Apa
    crismaruion
    Încă nu există evaluări
  • LFA Lab 03.11 PDF
    LFA Lab 03.11 PDF
    Document16 pagini
    LFA Lab 03.11 PDF
    Denis Goncearuc
    Încă nu există evaluări
  • Lab NR 4 MMC2 Duca Dumitru TI 194
    Lab NR 4 MMC2 Duca Dumitru TI 194
    Document11 pagini
    Lab NR 4 MMC2 Duca Dumitru TI 194
    Santa Claus
    Încă nu există evaluări
  • Lab APA 4
    Lab APA 4
    Document12 pagini
    Lab APA 4
    AlionaCrigan
    Încă nu există evaluări
  • Lab 4 MN
    Lab 4 MN
    Document3 pagini
    Lab 4 MN
    nn nnn
    Încă nu există evaluări
  • Laborator-2mmc Balan Ion
    Laborator-2mmc Balan Ion
    Document12 pagini
    Laborator-2mmc Balan Ion
    Ion Bn
    Încă nu există evaluări
  • Lab1 CDE
    Lab1 CDE
    Document3 pagini
    Lab1 CDE
    Tudor Domenti
    Încă nu există evaluări
  • TW Lab2
    TW Lab2
    Document4 pagini
    TW Lab2
    Dan
    Încă nu există evaluări
  • Laborator nr6 CDE
    Laborator nr6 CDE
    Document5 pagini
    Laborator nr6 CDE
    Vlad Racu
    Încă nu există evaluări
  • Cobușcean Cristic Laburator 1 MMC
    Cobușcean Cristic Laburator 1 MMC
    Document9 pagini
    Cobușcean Cristic Laburator 1 MMC
    Alina Axenti
    Încă nu există evaluări
  • Raport: La Disciplina Metode Și Modele de Calcul 1
    Raport: La Disciplina Metode Și Modele de Calcul 1
    Document9 pagini
    Raport: La Disciplina Metode Și Modele de Calcul 1
    Anya Mr
    Încă nu există evaluări
  • TW Lab 5
    TW Lab 5
    Document4 pagini
    TW Lab 5
    danielploaia
    Încă nu există evaluări
  • Lab 2 BTD
    Lab 2 BTD
    Document14 pagini
    Lab 2 BTD
    megadanyx
    Încă nu există evaluări
  • Lab 6
    Lab 6
    Document4 pagini
    Lab 6
    Егор Казаков
    Încă nu există evaluări
  • AMOO Lab2.Use Case
    AMOO Lab2.Use Case
    Document5 pagini
    AMOO Lab2.Use Case
    Dorin Gribincea
    Încă nu există evaluări
  • MMC Lab3 Rap
    MMC Lab3 Rap
    Document4 pagini
    MMC Lab3 Rap
    I LOVE ME
    Încă nu există evaluări
  • Lab2 MN CR-212 V14
    Lab2 MN CR-212 V14
    Document8 pagini
    Lab2 MN CR-212 V14
    Tabureanu Marian
    Încă nu există evaluări
  • Lab 7 Cazacu POO
    Lab 7 Cazacu POO
    Document8 pagini
    Lab 7 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Laborator 3 Croitoru Tudor
    Laborator 3 Croitoru Tudor
    Document8 pagini
    Laborator 3 Croitoru Tudor
    DorelDjj
    Încă nu există evaluări
  • Asdn2 Lab5
    Asdn2 Lab5
    Document4 pagini
    Asdn2 Lab5
    Жан Ганган
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document10 pagini
    Lab 1
    Ion Cornea
    Încă nu există evaluări
  • Lucrarea de Laborator NR 4 POO
    Lucrarea de Laborator NR 4 POO
    Document10 pagini
    Lucrarea de Laborator NR 4 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • TW Lab5
    TW Lab5
    Document3 pagini
    TW Lab5
    Dan
    Încă nu există evaluări
  • Laboratorul Cercetari
    Laboratorul Cercetari
    Document5 pagini
    Laboratorul Cercetari
    Buinovschi Corneliu
    Încă nu există evaluări
  • Cde 5
    Cde 5
    Document5 pagini
    Cde 5
    Belîi Daniela
    Încă nu există evaluări
  • Lab7 POO
    Lab7 POO
    Document10 pagini
    Lab7 POO
    Grosu Elena
    Încă nu există evaluări
  • Sofroni Maxim Ai-211 MN Lab3
    Sofroni Maxim Ai-211 MN Lab3
    Document7 pagini
    Sofroni Maxim Ai-211 MN Lab3
    Максим Софрони
    Încă nu există evaluări
  • AI-191 Medinschi Ion SO4
    AI-191 Medinschi Ion SO4
    Document5 pagini
    AI-191 Medinschi Ion SO4
    Carolin
    Încă nu există evaluări
  • Laboratorul 2 PPE
    Laboratorul 2 PPE
    Document4 pagini
    Laboratorul 2 PPE
    crismaruion
    Încă nu există evaluări
  • Lab 1 GC
    Lab 1 GC
    Document4 pagini
    Lab 1 GC
    Ion Popescu
    Încă nu există evaluări
  • POO1-varianta 3
    POO1-varianta 3
    Document5 pagini
    POO1-varianta 3
    Octavian Lucaș
    Încă nu există evaluări
  • Laborator-3 MMC
    Laborator-3 MMC
    Document4 pagini
    Laborator-3 MMC
    Dan
    Încă nu există evaluări
  • Lucrare de Laborator Nr.3 CDE
    Lucrare de Laborator Nr.3 CDE
    Document5 pagini
    Lucrare de Laborator Nr.3 CDE
    Dan
    Încă nu există evaluări
  • Laborator nr.3 POO
    Laborator nr.3 POO
    Document6 pagini
    Laborator nr.3 POO
    MARYAN Pătru
    Încă nu există evaluări
  • Lab 3 BTD
    Lab 3 BTD
    Document6 pagini
    Lab 3 BTD
    Trifan Petru
    100% (1)
  • TW Lab4
    TW Lab4
    Document8 pagini
    TW Lab4
    Dan
    Încă nu există evaluări
  • Grafica Pe Calculator Lab 1 Java
    Grafica Pe Calculator Lab 1 Java
    Document4 pagini
    Grafica Pe Calculator Lab 1 Java
    OpreaEugen
    Încă nu există evaluări
  • LFA Lab - 2
    LFA Lab - 2
    Document15 pagini
    LFA Lab - 2
    RoscaFlorin
    100% (1)
  • Raport GC Lab 4
    Raport GC Lab 4
    Document2 pagini
    Raport GC Lab 4
    Nickolae Enachi
    Încă nu există evaluări
  • Rezolvarea Numerica A Sistemelor de Ecuatii Liniare
    Rezolvarea Numerica A Sistemelor de Ecuatii Liniare
    Document8 pagini
    Rezolvarea Numerica A Sistemelor de Ecuatii Liniare
    Valentin I. Marius
    Încă nu există evaluări
  • Laborator 6 AC
    Laborator 6 AC
    Document6 pagini
    Laborator 6 AC
    Alexandru Dumbrava
    Încă nu există evaluări
  • LFA3
    LFA3
    Document5 pagini
    LFA3
    Valeria Ţînţaru
    Încă nu există evaluări
  • Lab 4
    Lab 4
    Document12 pagini
    Lab 4
    Fil Gorea
    Încă nu există evaluări
  • Asdn Lab 1 Rotari Viorel
    Asdn Lab 1 Rotari Viorel
    Document7 pagini
    Asdn Lab 1 Rotari Viorel
    ViorelRotari
    Încă nu există evaluări
  • Admitere Informatica Online Subiecte-V2
    Admitere Informatica Online Subiecte-V2
    Document51 pagini
    Admitere Informatica Online Subiecte-V2
    ionut ionescu
    Încă nu există evaluări
  • Admitere Informatica Online Subiecte
    Admitere Informatica Online Subiecte
    Document54 pagini
    Admitere Informatica Online Subiecte
    georgianaeleve1
    Încă nu există evaluări
  • Utm Fcim Mn151 PC Lab2 Galus Ina
    Utm Fcim Mn151 PC Lab2 Galus Ina
    Document2 pagini
    Utm Fcim Mn151 PC Lab2 Galus Ina
    Mihai Isac
    Încă nu există evaluări
  • Varianta 008
    Varianta 008
    Document2 pagini
    Varianta 008
    Mr Finn12
    Încă nu există evaluări
  • 3 4 PDF
    3 4 PDF
    Document8 pagini
    3 4 PDF
    Tudor Borta
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document12 pagini
    Lab 1
    RoscaFlorin
    Încă nu există evaluări
  • Caietul de Sarcini
    Caietul de Sarcini
    Document3 pagini
    Caietul de Sarcini
    RoscaFlorin
    Încă nu există evaluări
  • MMC (Lab 1)
    MMC (Lab 1)
    Document12 pagini
    MMC (Lab 1)
    RoscaFlorin
    Încă nu există evaluări
  • Lab2 P - Web.
    Lab2 P - Web.
    Document11 pagini
    Lab2 P - Web.
    RoscaFlorin
    Încă nu există evaluări
  • Ghid Elaborarea Si Sustinerea Proiectelor Tezelor de Licenta
    Ghid Elaborarea Si Sustinerea Proiectelor Tezelor de Licenta
    Document32 pagini
    Ghid Elaborarea Si Sustinerea Proiectelor Tezelor de Licenta
    Andrei Buraga
    Încă nu există evaluări
  • Lab 2
    Lab 2
    Document3 pagini
    Lab 2
    RoscaFlorin
    Încă nu există evaluări
  • Lab1 P - Web.
    Lab1 P - Web.
    Document11 pagini
    Lab1 P - Web.
    RoscaFlorin
    Încă nu există evaluări
  • Lab LFPCN3 OnicaDinu
    Lab LFPCN3 OnicaDinu
    Document18 pagini
    Lab LFPCN3 OnicaDinu
    Dinu RaceClan
    Încă nu există evaluări
  • CDE Lab 4 PDF
    CDE Lab 4 PDF
    Document7 pagini
    CDE Lab 4 PDF
    RoscaFlorin
    Încă nu există evaluări
  • Semeniuc Eric Lab2 CDE
    Semeniuc Eric Lab2 CDE
    Document8 pagini
    Semeniuc Eric Lab2 CDE
    Eric Semeniuc
    Încă nu există evaluări
  • LFA Lab - 2
    LFA Lab - 2
    Document15 pagini
    LFA Lab - 2
    RoscaFlorin
    100% (1)
  • CDE Lab 3
    CDE Lab 3
    Document6 pagini
    CDE Lab 3
    RoscaFlorin
    Încă nu există evaluări
  • CDE Lab 4 PDF
    CDE Lab 4 PDF
    Document7 pagini
    CDE Lab 4 PDF
    RoscaFlorin
    Încă nu există evaluări
  • Laborator 3 ASDN
    Laborator 3 ASDN
    Document8 pagini
    Laborator 3 ASDN
    Iulian Decuseara
    Încă nu există evaluări
  • Laborator 4 APA
    Laborator 4 APA
    Document18 pagini
    Laborator 4 APA
    RoscaFlorin
    Încă nu există evaluări
  • CDE Lab 1
    CDE Lab 1
    Document9 pagini
    CDE Lab 1
    RoscaFlorin
    100% (1)
  • Laborator 4 ASDN
    Laborator 4 ASDN
    Document7 pagini
    Laborator 4 ASDN
    RoscaFlorin
    Încă nu există evaluări
  • Laborator 3 ASDN
    Laborator 3 ASDN
    Document8 pagini
    Laborator 3 ASDN
    Iulian Decuseara
    Încă nu există evaluări
  • Laborator 2 APA
    Laborator 2 APA
    Document17 pagini
    Laborator 2 APA
    RoscaFlorin
    Încă nu există evaluări
  • Laborator 4 ASDN
    Laborator 4 ASDN
    Document7 pagini
    Laborator 4 ASDN
    RoscaFlorin
    Încă nu există evaluări
  • Laborator 2 ASDN
    Laborator 2 ASDN
    Document7 pagini
    Laborator 2 ASDN
    Iulian Decuseara
    Încă nu există evaluări
  • Laborator 3 APA
    Laborator 3 APA
    Document22 pagini
    Laborator 3 APA
    RoscaFlorin
    Încă nu există evaluări
  • Laborator 1 ASDN
    Laborator 1 ASDN
    Document9 pagini
    Laborator 1 ASDN
    RoscaFlorin
    Încă nu există evaluări
  • Laborator 2 APA
    Laborator 2 APA
    Document17 pagini
    Laborator 2 APA
    RoscaFlorin
    Încă nu există evaluări
  • Raport Lab.7 (SDA)
    Raport Lab.7 (SDA)
    Document10 pagini
    Raport Lab.7 (SDA)
    RoscaFlorin
    Încă nu există evaluări
  • Raport Lab.6 (SDA)
    Raport Lab.6 (SDA)
    Document11 pagini
    Raport Lab.6 (SDA)
    RoscaFlorin
    Încă nu există evaluări
  • Laborator 1 APA
    Laborator 1 APA
    Document8 pagini
    Laborator 1 APA
    RoscaFlorin
    Încă nu există evaluări
  • Laborator 1 APA
    Laborator 1 APA
    Document8 pagini
    Laborator 1 APA
    RoscaFlorin
    Încă nu există evaluări
  • Raport Lab.6 (SDA)
    Raport Lab.6 (SDA)
    Document11 pagini
    Raport Lab.6 (SDA)
    RoscaFlorin
    Încă nu există evaluări