Slides til 12.1 Formelt språk og formell grammatikk



Like dokumenter
INF INF1820. Arne Skjærholt INF1820. Dagens språk: Russisk. dyes yataya l yektsiya. Arne Skjærholt. десятая лекция

Stoff som i boka står i kap 4, men som er. 10. Februar Ifi, UiO

. Grammatiske problem med å beskrive ordklassen adverb og setningsleddet adverbial i norsk. Sverre Stausland Johnsen Universitetet i Oslo

UNIVERSITETET I OSLO

TMA4140 Diskret Matematikk Høst 2016

Kap. 4 del I Top Down Parsering INF5110 v2006. Stein Krogdahl Ifi, UiO

NORSKPRØVEN 2014 ny muntlig prøve. Sett inn sted, dato og foredragsholder Kurs i vurdering av ny muntlig prøve, i regi av Vox

Hvor er vi nå - kap. 3 (+4,5)? Forenklet skisse av hva en parser gjør PARSER. Kontekstfrie grammatikker og syntaksanalyse (parsering)

Kap. 5, del 1: Parsering nedenfra-opp (Bottom up parsing) INF5110. Stein Krogdahl Ifi, UiO

INF 2820 V2016: Innleveringsoppgave 3 del 1

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF1820: Ordklasser INF1820: Ordklasser. Arne Skjærholt. 13. februar. INF1820: Ordklasser. Arne Skjærholt. 13. februar

Kap.4 del I Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO

Semantisk Analyse del I

Løsningsforslag til obligatorisk oppgave 3 INF1800 Logikk og beregnbarhet, høsten 2009

Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) INF / Stein Krogdahl Ifi, UiO

Chapter 6 - Discrete Mathematics and Its Applications. Løsningsforslag på utvalgte oppgaver

INF 2820 V2016: Innleveringsoppgave 3 hele

Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2)

Litt om kompilering og interpretering. Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2) Syntaks og semantikk

Slides til 1.6 og 1.7. Andreas Leopold Knutsen

Enkel beskrivelse av islandsk språk

Setningsledd. Arne Martinus Lindstad Tekstlaboratoriet Universitetet i Oslo.

Matriser En matrise er en rektangulær oppstilling av tall og betegnes med en stor bokstav, f.eks. A, B, C,.. Eksempler:

Enkel beskrivelse av somali

"Det er fort gjort og skrive feil." En presentasjon av en automatisk grammatikkontroll for bokmål

Oppgave 1 Vi har gitt følgende grammatikk for noe vi kan kalle speilengelsk :

a) Sett strek mellom ordene og forklaringene som betyr omtrent det samme. b) Sett inn riktig ord uten å

Beskrivelse av programmeringsspråket Simpila INF Kompilatorteknikk Våren 2012

INF januar Forelesninger fremover:

IN2080. Oppgave 1. Oppgave 2. Eksamen. Vår Den nondeterministiske endelige automaten A er gitt ved (Q, Σ, δ, q 0, F ) der

Enkel beskrivelse av bulgarsk språk

INF 2820 V2015: Obligatorisk innleveringsoppgave 3

Turingmaskiner en kortfattet introduksjon. Christian F Heide

Syntaksanalyse. Skanner (repetisjon) Parsering top-down bottom-up LL(1)-parsering Recursive descent Forutsetninger. IN 211 Programmeringsspråk

INF4170 { Logikk. Forelesning 1: Utsagnslogikk. Arild Waaler. 20. august Institutt for informatikk, Universitetet i Oslo

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning

Overblikk over komplementer i kinesisk

TID TEMA KOMPETANSEMÅL ARBEIDSMETODER VURDERINGSFORMER RESSURSER

Slides til 4.1 og 4.2: Eksempler på feil i induksjonsbevis. Andreas Leopold Knutsen

Statisk semantisk analyse - Kap. 6

Forelesning 9: Frsteordens logikk { kompletthet Roger Antonsen mars 2006

Finne løsninger på ligninger numerisk: Newton-Raphson metoden og Fikspunktiterasjon MAT111, høsten 2017

Oppgave 2. INF5110 oppgave 2 på eksamen v04 med teori. FirstMengder. Arne Maus Ifi. Eks. 4.9 Beregning av First-mengde. terminal

Oppgaver til INF 5110, kapittel 5 Fullt svar på oppgave 5.4, og en del andre oppgaver med svar

Morfologi. Studiet av ordenes struktur Kap. 11 Om morfer (selvsagt) og litt større ting. EXFAC EURA 2. Morfologi1 1

Veiledning og tilleggsoppgaver til kapittel 6 i Her bor vi 1

Utviklingssak/ID Resume Endring (g2) Rettet i versjon (g1) Rettet i versjon

Dagens Tema: Grammatikker Kap. 3 i K. C. Louden

Forelesning 2: Induktive definisjoner, utsagnslogikk og sekventkalkyle Christian Mahesh Hansen januar 2007

INF1820: Oppsummering

NORSK ANDRESPRÅKSKORPUS KURSHEFTE. ASK, kurshefte Hilde Johansen (2011) 1

Norsk minigrammatikk bokmål

APPENDIKS D Geminittisk språk/grammatikk

Innhold. Forord Om å bruke Norsk for deg: Grammatikkoppgaver Hovedfokus: Substantiv... 17

b) Hvis det er mulig å svare blankt (dvs. vet ikke) blir det 5 svaralternativer på hvert spørsmål, og dermed mulige måter å svare på.

Dagens plan. INF3170 Logikk. Induktive definisjoner. Eksempel. Definisjon (Induktiv definisjon) Eksempel

LØSNINGSFORSLAG EKSAMEN MNF130 VÅREN 2010 OPPGAVE 1

Overblikk over komplementer i kinesisk

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

Hjemmeeksamen 1 i INF3110/4110

Spørsmål 1.1 (10%) Lag en ikke-deterministisk endelig tilstandsautomat (NFA) som beskriver dette språket.

Transkript:

Slides til 12.1 Formelt språk og formell grammatikk Andreas Leopold Knutsen April 6, 2010

Introduksjon Grammatikk er studiet av reglene som gjelder i et språk. Syntaks er læren om hvordan ord settes sammen til større enheter, dvs. setninger og fraser. Semantikk er den grenen av språkvitenskapen som studerer ordenes betydning, både enkeltvis og i sammenstilte strukturer (setninger). Vårt mål er syntaktisk korrekthet (ikke semantisk). Naturlig språk er ekstremt komplisert. Formelt språk er bestemt av en veldenert (gjerne endelig) mengde av syntaktiske regler. Programmeringsspråk er formelle språk.

Syntaktiske kategorier Substantiv (SUB) Adjektiv (ADJ) Artikkel (ART) Verb (V) Adverb (ADV) En frase er i grammatikken en gruppe ord som fungerer som en enkelt enhet i en setnings syntaks. Nominalfrase fungerer som et substantiv. (Eks: En ganske snill mann) Verbalfrase fungerer som et verb. (Eks: springer veldig fort)

Grammatikk, uformelt En setning består av en nominalfrase og en verbalfrase. En nominalfrase består av en artikkel etterfulgt av et substantiv, muligens med et adjektiv imellom. En verbalfrase består av et verb, muligens etterfulgt av et adverb. Et substantiv er student eller foreleser. Et adjektiv er ittig eller trett. En artikkel er en. Et verb er leker eller sover. Et adverb er dypt eller best.

Eksempel på gyldig setning med denne grammatikken setning nominalfrase verbalfrase artikkel adjektiv substantiv verbalfrase artikkel adjektiv substantiv verb adverb En adjektiv substantiv verb adverb En trett substantiv verb adverb En trett foreleser verb adverb En trett foreleser sover adverb En trett foreleser sover dypt Også mulig: En ittig student leker best. En student leker dypt. Ikke mulig: Flittig leker dypt.

Grammatikk, formelt S NF VF NF ART SUB, NF ART ADJ SUB, VF V, VF V ADV SUB student, SUB foreleser ADJ ittig, ADJ trett ART en V leker, V sover ADV dypt, ADV best Å generere en setning: S NF VF ART ADJ SUB V ADV en trett foreleser sover dypt Trestruktur på tavlen

Denisjoner i formell språkteori Et alfabet (eller vokabular) V er en endelig, ikketom mengde. Elementene i V kalles symboler. Et ord (eller en setning ) over V er en streng av endelig lengde av elementer i V, inkludert den tomme strengen/nullstrengen λ uten symboler V = mengden av alle ord over V. Et språk over V er en delmengde L V.

I vårt eksempel: V = {S, NF, VF, ART, ADJ, SUB, V, ADV, en, foreleser, student, trett, ittig, leker, sover, dypt, best} en trett foreleser sover dypt er et element i V. Men også ittig ADV ART er et element i V. Vi ga i tillegg regler for å generere setninger ved at symboler fra delmengden N = {S, NF, VF, ART, ADJ, SUB, V, ADV } V kunne erstattes med symboler fra seg selv eller fra delmengden T = {en, foreleser, student, trett, ittig, leker, sover, dypt, best} V Reglene var på formen w 1 w 2, der w 1 N og w 2 V.

Frasestrukturgrammatikk En frasestrukturgrammatikk G = (V, T, S, P) består av: Et vokabular/alfabet V. En delmengde T V, hvis elementer kalles terminale. (Elementene i komplemementet N = V T kalles ikketerminale eller variable.) Et element S V, kalt startsymbol. En endelig mengde P av regler, kalt produksjoner, for å erstatte et symbol i en streng over V med et annet symbol. Skrives som w 1 w 2, der w 1, w 2 V. Krav: enhver produksjon må inneholde minst ett element fra N på sin venstre side.

I vårt eksempel igjen: N = {S, NF, VF, ART, ADJ, SUB, V, ADV } V T = {en, foreleser, student, trett, ittig, leker, sover, dypt, best} V S er startelement P = {S NF VF, NF ART SUB, NF ART ADJ SUB, VF V, VF V ADV, SUB student, SUB foreleser, ADJ ittig, ADJ trett, ART en, V leker, V sover, ADV dypt, ADV best}

Variasjon... Vi kan også ha produksjoner som ikke er på formen ikketerminal streng av symboler Hvis vi f.eks. ønsker at adjektivet trett kun skal brukes for en student og ittig kun skal brukes for en foreleser kan vi bytte ut med ADJ ittig, ADJ trett ADJ foreleser ittig foreleser, ADJ student trett student Grammatikken går fra å være kontekstfri til kontekstsensitiv (mer om dette senere).

Backus-Naur form for produksjonene ::= for for alternativer ikketerminale elementer i klammer I vårt eksempel kan produksjonene skrives som S ::= NF VF NF ::= ART SUB ART ADJ SUB VF ::= V V ADV ART ::= en ADJ ::= trett ittig SUB ::= student foreleser V ::= leker sover ADV ::= dypt best

Avledninger/derivasjoner Hvis z 0 z 1 er en produksjon, z 0, z 1 V, kan vi f.eks. erstatte strengen w 0 = lz 0 r med w 1 = lz 1 r Vi skriver w 0 w 1 og sier at w 1 er direkte avledbar/avledet/derivérbar fra w 0 Dersom w 0 w 1, w 1 w 2,..., w n 1 w n for w 0, w 1..., w n V, sier vi at w n er (indirekte) avledbar/avledet/derivérbar fra w 0 og skriver w 0 wn Sekvensen w 0 w 1, w 1 w 2,..., w n 1 w n kalles en avledning/derivasjon Språket generert av/språket til grammatikken G er denert som L(G) = {w T S w} V (alle strenger av terminale objekter som er avledbare fra startsymbolet S) NB: Forskjellige grammatikker kan generere samme språk (se Eks. 6 og Oppg. 10 i 12.1)

I vårt eksempel igjen: En trett foreleser sover dypt L(G) En trett foreleser V ADV L(G) Flittig leker dypt L(G) Men alle disse er elementer i V, dvs. ord (strenger) over V.

Nye eksempler (endelig!) V = {S, A, B, a, b}, med T = {a, b}, og S er startsymbol. Eksempel 1: P = {S AB, S aa, A a, B ba}. Da er L(G) = {aba, aa}. Eksempel 2: P = {S AA, S B, A aaa, A aa, B bb, B b}. Da er L(G) = {a 2n n Z, n 2} {b m m Z, m 1}. På tavlen: derivasjonstre for a 6

Eksempel på syntaksanalyse Syntaksanalyse = parsing = skille mellom lovlige og ulovlige uttrykk. Eksempel: G = (V, T, S, P) V = {a, b, c, A, B, C, S} T = {a, b, c} P = { S ::= A B, A ::= C a, B ::= B a C b b, C ::= cb b} Oppgave (vises på tavlen): (a) Vis at cbaba L(G) (b) Vis at bbbcba L(G)

Kontekstfrie grammatikker Kontekstfri grammatikk: alle produksjonene er på formen A w, der A N og w V. Kalles også grammatikk av type II. Et språk som kan genereres av en kontekstfri grammatikk kalles et kontekstfritt språk. Alle eksemplene hittil (bortsett fra variasjonen) har vært slik. Men det nnes grammatikker og språk som ikke er kontekstfrie, se neste side.

Eksempel 7 -Oppgave 12 i 12.1 G = (V, T, S, P) V = {0, 1, 2, S, A, B} T = {0, 1, 2} P = {S 0SAB, S λ, BA AB, 0A 01, 1A 11, 1B 12, 2B 22} (merk trykkfeil i boken) G er ikke kontekstfri grammatikk pga. (hvilken som helst av) de fem siste produksjonene Vises på tavlen hvis tid: L(G) = {0 n 1 n 2 n n N}, med konvensjonen 0 0 1 0 2 0 = λ. Man kan vise at ingen av grammatikkene som genererer språket {0 n 1 n 2 n n N} er kontekstfrie, slik at språket ikke er kontekstfritt.

Kontekstsensitive grammatikker Kontekstsensitiv grammatikk: alle produksjonene er på formen lar lwr, der A N og w, l, r V, w λ. Produksjonen S λ er også tillatt, dersom S ikke forekommer på høyresiden av noen annen produksjon. Kalles også grammatikk av type I. Et språk som kan genereres av en kontekstsensitiv grammatikk kalles et kontekstsensitivt språk.

Tilbake til Eksempel 7 -Oppgave 12 i 12.1 G = (V, T, S, P) V = {0, 1, 2, S, A, B} T = {0, 1, 2} P = {S 0SAB, S λ, BA AB, 0A 01, 1A 11, 1B 12, 2B 22} G er ikke kontekstsensitiv grammatikk pga. produksjonen BA AB og felles forekomst av S λ og S 0SAB. (Her står det feil i Eks. 10 i boken) Likevel er L(G) = {0 n 1 n 2 n n N} et kontekstsensitivt språk fordi det kan genereres av en kontekstsensitiv grammatikk: Bytt ut {S λ, S 0SAB} med {S 0AB, S 0SAB}. Introdusér nytt ikketerminalt symbol C og bytt ut BA AB med {BA CA, CA CB, CB AB}.

Fortsettelse... Vi får den kontekstsensitive grammatikken G = (V, T, S, P ) V = {0, 1, 2, S, A, B, C} T = {0, 1, 2} P = {S 0AB, S 0SAB, BA CA, CA CB, CB AB, 0A 01, 1A 11, 1B 12, 2B 22} Lett å se at L(G ) = L(G) = {0 n 1 n 2 n n N}. Konklusjon: {0 n 1 n 2 n n N} er et et kontekstsensitivt språk, som hevdet i Eks. 10 i boken.