2002-11-12F. Drewes, Inst. f. datavetenskap1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax Flertydighet i kontextfri.

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.
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
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
Algoritmer och datastrukturer
Föreläsning 6 Länkade lista Komplexitet Linjärsökning & binärsökning
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.
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.
Iteration i C ”upprepa”
Programmering B PHP Lektion 2
Programmering B PHP Lektion 3
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.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning Singel mot multipelt.
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.
För utveckling av verksamhet, produkter och livskvalitet. -Algoritmer och Datastrukturer- -Algoritm analys och sökning algoritmer- Kap 5 -Algoritmer och.
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.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 1: Inledning administrativt o dyl kursens mål varför programspråksteori? språkkategorier användningsområden.
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 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
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.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 9: Implementering av underprogram Aktiveringsposter Exekveringsstacken Implementera dynamisk räckvidd.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
Karl-Henrik Hagdahl, 11 november Repetition Logikprogrammering: måndag 11 november 2002.
Lennart Lönngren TYSTNA Är Stagnelius otydlig?.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden.
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. Drewes, Inst. f. datavetenskap1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
Procedurellt potpurri Dagens samtalsämnen –Klipp (Cut) –If-then-else –fail/0 –repeat/0 Att läsa –The Art of Prolog, kapitel 11 –Relevant avsnitt i Learn.
-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.
Program indata ? utdata 1/20 Vahid Mosavat, Nada, KTH.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax.
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.
Presentationens avskrift:

F. Drewes, Inst. f. datavetenskap1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax Flertydighet i kontextfri syntax Syntaxgrafer

F. Drewes, Inst. f. datavetenskap2 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

F. Drewes, Inst. f. datavetenskap3 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

F. Drewes, Inst. f. datavetenskap4 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, …)

F. Drewes, Inst. f. datavetenskap5 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; }

F. Drewes, Inst. f. datavetenskap6 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:  * | + | |

F. Drewes, Inst. f. datavetenskap7 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

F. Drewes, Inst. f. datavetenskap8 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