Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Et formelt språk er en mengde av strenger over et endelig alfabet Eksempler: AlfabetSpråkEn streng i språket Norske ordNorskGutten spiser en pølse, … Engelske.

Liknende presentasjoner


Presentasjon om: "Et formelt språk er en mengde av strenger over et endelig alfabet Eksempler: AlfabetSpråkEn streng i språket Norske ordNorskGutten spiser en pølse, … Engelske."— Utskrift av presentasjonen:

1 Et formelt språk er en mengde av strenger over et endelig alfabet Eksempler: AlfabetSpråkEn streng i språket Norske ordNorskGutten spiser en pølse, … Engelske ordEngelskThe boy eats a sausage, Norske bokstaverNorske ordpølse Latinske bokstaverEngelske ordsausage

2 Norske ord: mengde av strenger {a,b,c, …, z,æ,ø,å}* grønn blå en et egg gutt pølse spiser drikker melk saft sjokolade pølsespiser sover drømmer tenkte våkner melkedrikker Norske ord Ymer palse slajk trovt gridda pøz åg tag æg dejlig utomordentlig yxi øøøøø øøø øø ø 

3 Operasjoner på språk NavnSymbol Eksempel Union  {aa,ab,bb}  {cc, d} = {aa,ab,bb, cc, d} Produkt {aa,ab,bb}{cc, d} = {aacc, aad, abcc, abd, bbcc,bbd} Kleene-stjerne  {cc, d}* = { , cc, d, cccc, ccd, dcc, dd, cccccc, ccccd, ccdcc, ccdd, dcccc, dccd, ddcc, ddd, cccccccc, ccccccd, ccccdcc, … }

4 A* er en uendelig union: A* = {  }  A  AA  AAA  AAAA  … {a,b}* = { , a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb, ………. }

5 Et regulært uttrykk brukes til å definere et språk betyr et språk er bygget opp fra ,  og symboler i alfabetet ved hjelp av operatorene +, · og * samt parenteser. Operator-presedens: * over · over +: R · S* + T* = R · (S*) + (T*) = (R · (S*)) + (T*)

6 Betydning L(R) er språket som R betegner: L(a) = {a} L(  ) =  L(  ) = {  } L(R + S) = L(R)  L(S) L(R · S) = L(R) L(S) L(R*) = L(R)*

7 Eksempel Uttrykk Betegner a{a} b{b}  {}{} ab{ab} a +  {a,  } (ab) · (a +  ) {aba, ab} ((ab) · (a +  ))*{ , aba, ab, abaaba, abaab, ababa, abab, abaabaaba, … }

8 RS = R·S

9 R(ST) = (RS)T

10 Noen regneregler R(S+T) = RS + RT  R = R (S+T)R = SR + TR R*R = RR*  + RR* = R* (mange flere side 638)  + (aa + ab*ba) (ab*a)*  + (a + b*ba) (ab*a)*  + (a (  a + b*ba) (ab*a)*  + (a ( ( + b*b)a) (ab*a)*  + (a ( ( + bb*)a) (ab*a)*  + (ab*a) (ab*a)*

11 Et regulært språk er (pr. definisjon) et språk som kan defineres ved et regulært uttrykk

12 Deterministisk endelig automat (DFA) (over språk A) Består av - en ikke-tom, endelig mengde Q av tilstander - hvor nøyaktig en er utpekt som start-tilstand - og null eller flere er utpekt som slutt-tilstander - samt en transisjons-funksjon fra Q  A til Q

13 Eksempel A = {a,b} Q = {q0, q1, q2, q3}, q0 er start-tilstand, q3 er slutt-tilstand, transisjons-funksjonen er gitt ved tabellen ab q0q1q2 q1q3q1 q2 q3

14 Eksempel A = {a,b} Q = {q0, q1, q2, q3}, q0 er start-tilstand, q3 er slutt-tilstand, transisjons-funksjonen er gitt ved tabellen ab q0q1q0 q1 q2 q1q3 q1q0

15 Automat aksepterer streng: En (deterministisk) endelig automat aksepterer en streng hvis vi kan komme fra start-tilstanden til en slutt-tilstand ved å følge strengen. Automat aksepterer språk: En (deterministisk) endelig automat aksepterer et språk hvis den aksepterer alle strenger i språket, og ingen strenger utenfor språket.

16 Deterministiske endelige automater vs. Regulære uttrykk (RE) Gir oss det samme! Altså: Et språk er regulært hviss det fines en deterministisk endelig automat som aksepterer det. Bevises oftest ved hjelp av ikke-deterministiske endelige automater

17 Ikke-deterministisk endelig automat (NFA) DFA NFA Er spesialtilfelle av RE Kan gjøres om til

18 To definisjoner av DFA To litt ulike krav er i omløp med hensyn til hva som skal til for at en NFA teller som en DFA. For det første skal det ikke finnes  -transisjoner. Alle er enige om det. Læreboken vår krever dessuten at det for hver a i alfabetet skal gå nøyaktig en a-transisjon ut fra hver tilstand, mens andre bøker/forfattere bare sier at det skal gå høyst en a-transisjon ut fra hver tilstand.

19 Den alternative definisjonen er altså svakere/snillere: Den slipper flere maskiner gjennom nåløyet. Som for eksempel følgende.

20 Man kan imidlertid alltid med et enkelt grep omforme en slik maskin til en DFA i vår strengere forstand. Dette gjøres ved å innføre en ny tilstand som tar imot alle de manglende transisjonene. Denne tilstanden er ikke-endelig, og har dessuten transisjoner til seg selv for alle symboler i alfabetet. På engelsk omtaler man gjerne denne tilstanden som a sink. Altså avløp/kloakk:

21 Applikasjonen JFLAP benytter denne svakere definisjonen. Fordelen ved dette, er at tegninger av DFAer oftest blir enklere og mer oversiktlige. Et vanlig kompromiss er å tillate alle (tegninger av) DFAer som følger det snilleste kravet, men underforstått tolke disse slik at det i tillegg finnes et usynlig avløp.


Laste ned ppt "Et formelt språk er en mengde av strenger over et endelig alfabet Eksempler: AlfabetSpråkEn streng i språket Norske ordNorskGutten spiser en pølse, … Engelske."

Liknende presentasjoner


Annonser fra Google