2003-11-11Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax.

Slides:



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

Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Labb 1 - Textbearbetning med reguljära uttryck
2D1311 Programmeringsteknik med PBL
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella.
Del 1: Språkets uppkomst
Repetition inför provet
2D1311 Programmeringsteknik med PBL Föreläsning 7 Skolan för Datavetenskap och kommunikation.
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
De fundamentala datatyperna
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.
2D1311 Programmeringsteknik med PBL
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning.
Algoritmer och datastrukturer
Växjö 21 april -04Språk & logik: Kontextfria grammatiker1 DAB760: Språk och logik 21/4: Kontextfria 10-12grammatiker Leif Grönqvist
Växjö 22 april -04Språk & logik: Parsning med kontextfria grammatiker1 DAB760:Språk och logik: 22 aprilParsning Leif Grönqvist
Föreläsning 2 Datalogi för E1 2D1343
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.
Programmering B PHP Lektion 2
Programmeringsbegrepp
Programmering B PHP Lektion 2
Programmering B PHP Lektion 3
Språkteknologiska metoder Språkteknologisk forskning och utveckling (HT 2006)
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
Introduktion till språkteknologi Introduktion. Språkteknologi Vi studerar vad som krävs för att få datorer att utföra nyttiga och intressanta uppgifter.
Funktioner, styrstrukturer, manipulering av matriser
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.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
Problemlösningsmetodik
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska operatorer och logiska uttryck -Referenstyper.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
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. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 7: Uttryck och sidoeffekter Uttryck Sidoeffekter Överladdning Tilldelningar i uttryck.
Anders Broberg, Programspråksteoridelen DVA Moment 2 1 Epost: Hemsida: Tel: Rum: D438.
2D1311 Programmeringsteknik med PBL
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.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer.
Lennart Lönngren TYSTNA Är Stagnelius otydlig?.
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
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.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Pickering Robust semantisk parser Del i HIGGINS- projektet –Felhantering i dialogsystem –Navigering i stadsmiljö.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 3 Operatorer Flödeskontroll Primitiva datatyperKlasser i API och egna klasser int double byte float char boolean short long String BufferedReader.
Föreläsning 1 Introduktion till kursen. Algoritmer
Program indata ? utdata 1/20 Vahid Mosavat, Nada, KTH.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 3: Abstrakta datatyper Algebror Abstrakta datatyper Inkapsling och informationsmaskering.
Selektion jämförande och logiska operatorer
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.
Satsbegreppet. Begreppen mening och sats På svenska talar man ofta om meningar och satser, men på tyska finns inte begreppet mening. På svenska används.
FTEA12:2 Filosofisk Metod Grundläggande argumentationsanalys II.
KPP053, HT2015 MATLAB, Föreläsning 4
Presentationens avskrift:

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax Flertydighet i kontextfri syntax Syntaxgrafer

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 2 Formell syntaxdefinition Syntaxen för ett språk definierar mängden av alla strängar som betraktas som program (där man bortser från betydelsen). Man skiljer alltså syntaxen (formen) från semantiken (betydelsen) Syntaktisk korrekthet är nödvändig men inte tillräcklig för semantisk korrekthet Att definiera syntax är betydligt enklare än att definiera semantik

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 3 Formell syntaxdefinition Ett programspråk är ett formellt språk  syntaxen kan definieras formellt (=otvetydigt), t.ex. med grammatiker Fördelar med en formell syntaxdefinition  är exakt  ”standard” för datavetare, alla vet hur den ska läsas  kompatibla kompilatorer  automatisk generering av kompilatorer  inget tvivel om korrekthet/inkorrekthet av program  algoritmer och resultat från teorin för formella språk kan användas  gör det enklare att definiera semantiken

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 4 Lexikalisk och kontextfri syntax Syntaxdefinitioner brukar delas upp i två nivåer:  lexikalisk syntax  kontextfri syntax Den lexikaliska nivån består av enkla syntaktiska kategorier för identifierare, tal, nyckelord, … Centrala begrepp:  token= en av kategorierna(t.ex. integer)  lexem= en sträng i en av kategorierna(t.ex. 5317) På den kontextfria nivån behandlas de syntaktiska kategorierna som har en högre komplexitet (satser, uttryck, …)

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 5 lexem (token IF_TOKEN) lexem (token LEFT_PAR) lexem (token IDENTIFIER) lexem (token LESS_THAN) lexem (token INTEGER) Exempel uttryck sats reguljära språk lexem (token IF_TOKEN) lexem (token LEFT_PAR) lexem (token IDENTIFIER) lexem (token LESS_THAN) lexem (token INTEGER) kontextfria språk satsuttryck sats if ( count < 3 * x ) { count++; x = x / 2; }

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 6 Flertydighet Den kontextfria syntaxen är flertydig om det finns ett program som har fler än ett deriveringsträd (= fler än en vänsterderivering) Vänsterderivering = derivering där man i varje steg ersätter den första icketerminalen i strängen En flertydig grammatik är inte felaktig i sig men ger upphov till problem när semantiken definieras Exempel:  * | + | |

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 7 Flertydighet (2) Några vanliga tekniker för att undvika flertydighet Bindningsregler t.ex. ^ binder starkare än * som binder starkare än + Höger- eller vänsterassocierande operatorer t.ex. a + b + c betyder (a + b) + c eftersom + associerar till vänster Parenteser t.ex. (a + b) * (a + c) för att sätta bindningsreglerna ur kraft

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 8 Syntaxgrafer (ett exempel) Syntaxgrafer är ekvivalent med kontextfria grammatiker. Adas if-then-else: ifthen else end if; condstmts else_ifstmts if_stmt cond stmts else_if    terminal icketerminal

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 9 Extended BNF Några vanliga tekniker för kompaktare grammatik Valfrihet markeras med [ ] IF -> if E then S [else S] Upprepning (noll eller fler ggr) IDLIST -> ID {, ID} Val (en av) T -> T (* | / | %) F