Växjö 21 april -04Språk & logik: Kontextfria grammatiker1 DAB760: Språk och logik 21/4: Kontextfria 10-12grammatiker Leif Grönqvist

Slides:



Advertisements
Liknande presentationer
F. Drewes, Inst. f. datavetenskap1 Föreläsning 13: Resolution •Resolution i satslogiken •Resolution i predikatlogiken.
Advertisements

Talföljder formler och summor
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Bedömning för lärande Workshop för nyckelpersoner i Sundsvalls kommun
hej och välkomna EKVATIONER Ta reda på det okända talet.
1 Listor En sekvens värden av samma typ Nr 5. 2 Listor Sekvens av värden, element Variabelt antal Alla med samma typ Bara första elementet direkt åtkomligt.
1 Logikprogrammering ons 11/9 David Hjelm. 2 Repetition Listor är sammansatta termer. De består av en ordnad mängd element. Elementen i en lista kan vara.
2D1311 Programmeringsteknik med PBL
Prolog, Mån 16/9 Rebecca Jonson.
Leif Håkansson’s Square Dancer Rotation
DAB752: Algoritmteori Leif Grönqvist
Dcg-notation 21.2 G 2.3 M (BBS 8). dagens föreläsning extra argument i dcg-notation prolog-anrop i dcg-notation avslutande kommentarer om dcg.
Föreläsning 2. Operatorer Tilldelning Kodblock { } if – satsen Logiska uttryck Att programmera.
Växjö 22 april -04Språk & logik: Parsning med kontextfria grammatiker1 DAB760:Språk och logik: 22 aprilParsning Leif Grönqvist
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
FL2 732G70 Statistik A Detta är en generell mall för att göra PowerPoint presentationer enligt LiUs grafiska profil. Du skriver in din rubrik,
732G22 Grunder i statistisk metodik
Stora additionstabellen
Växjö 29 april -04Språk & logik: Kontextfria grammatiker i språkteknologi1 DAB760, 29 april Kontextfria grammatiker i språkteknolog Leif Grönqvist
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
© Patrick Blackburn, Johan Bos & Kristina Striegnitz FL 6: Definite Clause Grammars (kap. 7) Teori –Introducerar kontextfria grammatikor och några besläktade.
Grammatiska exempel Förklaringar av uttryck i BNF-form.
Flödeskontroll Satser i ett program utförs en och en efter varandra. Detta kallas sekvensiell flödeskontroll. Ofta är det dock nödvändigt att modifiera.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Programmering B PHP Lektion 2
Algebraiska uttryck Matematik 1.
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Programmering B PHP Lektion 3
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Formell logik Kapitel 1 och 2
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Språkteknologiska metoder Språkteknologisk forskning och utveckling (HT 2006)
Föreläsning 3 Programmeringsteknik och Matlab DD1312
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.
Listor En lista är en föränderlig ordnad samling objekt.
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Styrteknik 7.5 hp distans: PLC-Program, kaffe-automat PLC7B:1
Logikprogrammering 21/10 Binära träd
Formell logik Kapitel 9 Robin Stenwall Lunds universitet.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska operatorer och logiska uttryck -Referenstyper.
15 September, Lexikala element mm Eftersom C är ett språk, har det ett alfabet och regler för hur bokstäverna kan bilda ord och hur olika strukturella.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax Flertydighet i kontextfri.
Föreläsning 4 Listor, tupler, och for-loopar. Listor En lista är en föränderlig ordnad samling objekt. Listor skapas med hakparenteser. lista = [12,13,14,15]
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
Anders Broberg, Programspråksteoridelen DVA Moment 2 1 Epost: Hemsida: Tel: Rum: D438.
Föreläsning 11 Logik med tillämpningar Innehåll u Generell resolution u Kapitel i Ben-Ari.
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Föreläsning 9 Logik med tillämpningar Innehåll u Semantiska tablåer i predikatlogiken u Klausulform u Herbrandmodeller u Kapitel 3.5,
Föreläsning 13 Logik med tillämpningar Innehåll u Aritmetik i Prolog u Rekursiva och iterativa program u Typpredikat u Metalogiska predikat.
Karl-Henrik Hagdahl, 11 november Repetition Logikprogrammering: måndag 11 november 2002.
Logikprogrammering 23/10 Binära träd In- och uthantering David Hjelm.
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
Föreläsning 16 Logik med tillämpningar Innehåll u Information kring kursvärdering och tentagenomgång u Genomgång av övningstenta 2.
Logik med tillämpningar
F. Drewes, Inst. f. datavetenskap1 Föreläsning 5: Syntaxanalys (parsning) Syntaxanalysens mål Tillvägagångssätt och komplexitet Syntaxanalys.
Pontus Johansson 1 grammatiker 21.1 G 1 (BBS 7)
Föreläsning 14 Logik med tillämpningar Innehåll u Cuts och negation u Input/output u Extralogiska predikat u Interaktiva program, failure-drivna.
Mer om operatorer logiska operatorer bit-operatorer adress-operatorn ”komma”-operatorn punkt - operatorn.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax.
Växjö 22 april -04Språk & logik: Introduktion till labb 11 DAB760:Språk och logik: 22 aprilLabbintroduktion Leif Grönqvist
Växjö 14 april -04Språk & logik: Finita automater1 DAB760: Språk och logik 14/4:Finita automater Leif Grönqvist Växjö Universitet.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 13: Resolution Resolution i satslogiken Resolution i predikatlogiken.
Mer om operatorer logiska operatorer bit-operatorer adress-operatorn ”komma”-operatorn punkt - operatorn.
Lars Madej  Talmönster och talföljder  Funktioner.
Formell logik Kapitel 1 och 2
Presentationens avskrift:

Växjö 21 april -04Språk & logik: Kontextfria grammatiker1 DAB760: Språk och logik 21/4: Kontextfria 10-12grammatiker Leif Grönqvist Växjö Universitet (MSI) GSLT (Sveriges nationella forskarskola i språkteknologi) Göteborg Universitet (Institutionen för lingvistik)

2Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Dagens föreläsning  Icke-reguljära språk  Kontextfria grammatiker  Terminologi

3Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Icke-reguljära språk  Språken som kan definieras av finita nätverk eller reguljära uttryck räcker inte alltid till  Exempel: Balanserade parenteser Tillåtet: Ej tillåtet: 3(3 (1+2)(1+3)+3) (1+(2+(3+4)+5))1+()+2 (1+(((2+3))))(1+2)+3)+(4 1+(2+(3+(4)))osv.  En ändlig automat skulle bara kunna klara ett begränsat antal parenteser  En kontextfri grammatik klarar det här

4Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Icke-reguljära språk, forts.  Inbäddade relativsatser: Bill är rik Bill som äger Microsoft är rik Bill som äger Microsoft och heter Gates är rik Bill som äger Microsoft som gjort Window som är jobbigt ibland som mycket annat här i världen är rik  Nästlade if-satser: if(a) { if(b) { if(c) { … }  Samma som för parenteserna: reguljära språk kan inte klara godtyckligt djup inbäddning  Finita automater är effektiva, men här duger de inte  Rekursiva strukturer är viktiga för exempelvis programspråk

5Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Kontextfria grammatiker  Består av fyra komponenter: Ett alfabet Σ T av terminala symboler Ett alfabet Σ N av icke-terminala symboler En startsymbol: S є Σ N En ändlig mängd produktionsregler (syntaxregler) på formen A   där  A є Σ N och   є (Σ T  Σ N )*

6Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Ett exempel på en CFG: aritmetiska uttryck  Låt oss formulera en CFG för aritmetiska uttryck bestående av: Operander: heltal Operatorer: de fyra räknesätten Parenteser för gruppering  Terminaler: +, -, *, /, (, ), tal  Icke-terminaler:  Startelement:

7Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Ett exempel på en CFG: aritmetiska uttryck, forts.  Produktionsregler:  tal  ( )  +  -  *  / “syntaktiska kategorin kan komponeras av: något som är ett uttryck följt av / följt av ett uttryck tal är en platshållare för en sträng som kan tolkas som ett tal

8Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Ett exempel på en CFG: aritmetiska uttryck, forts. 2  För fullständigheten borde första regeln lyda:  Och vi får istället: Terminaler: +, -, *, /, (, ), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,. Icke-terminaler:,, Och ett par nya produktionsregler  |  1|2|3|4|5|6|7|8|9|0 Exempel: (1+2)*30

9Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Exempel 2: balanserade parenteser  Vi kan göra en grammatik som definierar uttryck med balanserade parenteser  ε Den tomma strängen är balancerad  ( ) Om vi har två balanserade uttryck så kan vi konstruera ett tredje genom att sätta parenteser runt det första och konkatenera dem

10Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Exempel 2: balanserade parenteser, forts.  De enda terminala symbolerna var parenteser!  En ny regel kan tillåta godtyckliga uttryck: 

11Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Exempel 3: C-”statements”   while (condition)   if (condition)   if (condition) else   { }   “simple statement” ;   ε    Sedan måste tal, variabler, uttryck, fler konstruktioner, mm läggas till

12Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Utforska ett språk utifrån dess grammatik  Grammatiken är en induktiv beskrivning av språket  Vi kan generera språket: 1.Starta med en tom mängd L 2.Välj en syntaktisk kategori som står för en sträng i språket 3.Generera en sträng genom att tillämpa pråduktionsregler tills endast terminaler återstår 4.Stoppa in strängen i mängden L 5.Gå till steg 2 Valen kan göras antingen: Systematiskt så att vi ser till att sekvensen regler vi valt för att skapa ett element i språket aldrig upprepas Slumpmässigt: vi slipper hålla reda på vilka regler som använts men vet aldrig när vi är klara

13Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Parsträd  Ett bra sätt att visualisera ett uttryck i ett språk  Ett bevis för att ett uttryck tillhör språket  I löven finns terminaler  I övriga noder icketerminaler och tillämpning av en produktionsregel  Exempel: 25*(2+(1))  En förenkling av ett parsträd är syntaxträd där icketerminalerna tas bort från trädet: Atomära operander representeras som en nod Operatorer flyttas upp och ersätter den syntaktiska kategorin ovanför Kvarvarande icke-terminaler tas bort

14Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Ambiguitet  För uttrycket finns två olika parsträd:  Eftersom det finns uttryck som kan beskrivas av flera olika parsträd så är grammatiken ambiguös  Att en grammatik är icke-ambiguös är mycket svårt att bevisa  Problem kan uppstå om evaluering av uttryck i språket blir olika beroende på parsträd: if a then if b then c else d

15Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Icke-ambiguös grammatik för aritmetiska uttryck  Vi lägger till nya syntaktiska kategorier för termer och faktorer: 1.  + | - | 2.  * | / | 3.  ( ) | 4.  | 5.  1|2|3|4|5|6|7|8|9|0 e=expression, t=term, f=factor, n=number, d=digit  Regel 1 och 2 garanterar att och 1/2*3 grupperas korrekt

16Språk & logik: Kontextfria grammatikerVäxjö 21 april -04 Nästa föreläsning  Parsning!