Statisk semantisk analyse - Kap. 6 Foiler ved Birger Møller-Pedersen (Forelest 10/3 og 12/ av Stein Krogdahl)

Størrelse: px
Begynne med side:

Download "Statisk semantisk analyse - Kap. 6 Foiler ved Birger Møller-Pedersen (Forelest 10/3 og 12/ av Stein Krogdahl)"

Transkript

1 Statisk semantisk analyse - Kap. 6 Foiler ved Birger Møller-Pedersen (Forelest 10/3 og 12/ av Stein Krogdahl) Oversikt over kapittelet Generelt om statisk semantisk analyse Attributt-grammatikker Symboltabellen (ikke i dag) Datatyper og typesjekking (ikke i dag) Det blir lagt ut oppgaver om attributt-grammatikker som gjennomgås torsdag 12. mars. 3/12/2015 1

2 Hvor er vi nå? - Kap. 6: program Pre - processor Macros Conditional compilation Files text Scanner Partition the text into a sequence of lexemes Can be described by regular expressions Tools: Lex Flex tokens Parser Find the structure of the program - Can be Described by a (BNF) grammar Symbol table syntax - tree Symbol table Checker Checks usage against declarations Checks types in expressions checked syntax-tree with «bindings» Code generator Usually some type of optimizer, for efficient execution Grammars. Top-down and bottomup parsing. + Attributte grammars More or less systematic Tools: Antlr, Yacc, techniques and methods Bison, CUP, etc. 2

3 Hva får vi fra parseren? Sequence of tokens (leksemes) from scanner Syntaks-tre for det gitte programmet. Abstraket eller konkret? Dette treet er typisk abstrakt PARSER declarations program var proc val sentences if while assign. int a := Det er satt av plass i nodene i treet til semantisk informasjon. Denne skal fylles ut semantisk analyse. Eksempler: For uttrykks-noder: Typen For navne-noder: Peker til deklarasjonen a + b 5 3

4 Generelt om (statisk) semantisk analyse Formål: Fylle inn semantisk informasjon i treet, f.eks. typer og pekere til deklarasjon Sjekke alt som kan sjekkes før utførelsen, men ikke under syntaks-analyse Typiske ting som skal sjekkes: at navn er deklarert at bruk av navn er konsistent med deres deklarasjon at typen av (sub)-uttrykk stemmer med operasjonene Men ikke alt kan sjekkes før utførelsen: Merk at man ikke får divisjon med null index out of range i arrayer none-test for remote access. («r.a» er feil om r == null) Ikke alltid klart hvor grensen mellom syntaktisk/semantisk sjekk går (eller bør gå ) if a then... Må godkjennes syntaktisk if a+b then...?? 3/12/2015 4

5 En drøm: Beskrivelse av språkets statiske semantikk Sem-yacc Semantisk sjekker for det aktuelle språk Men: Intet standard beskrivelsesspråk Input til semantisk sjekker er rimelig komplisert Det er alltid en masse ad-hoc regler Derfor: Språkets regler må vanligvis programmeres i hvert tilfelle. Men siden vi gjør det på treet blir reglene oftest greie å oversette til program. Man må forsøke å utvikle programmerings-stiler som gir greiest mulig programmering av semantikksjekkene 3/12/2015 6

6 Kap. 6.1og 6.2: Attributter og attributt-grammatikker Et forsøk på å formalisere (noe av) semantikk-sjekkingen Et attributt er en egenskap ved et språkbegrep Eksempler: statisk? også: typen til uttrykk dynamisk? (av og til statisk) Fortran: statisk, Java: dynamisk statisk? statisk Statiske attributter: Kan beregnes før utførelsen Dynamiske attributter: Må beregnes under utførelsen For attributt-grammatikker er alle attributter statiske, og de er definert i tilknytning til grammatikken for språket 3/12/2015 7

7 Tradisjopnell grammatikk: Eksempel på attributt-grammatikk: Bergener verdien av tall-uttrykk Attributter er variable knyttet til nodene i parseringstreet Alle symboler har her bare ett attributt: «val» Nytt: Hver semantisk regel er knyttet til én produksjon i språkets syntaks: Attributtenes verdier er definert ved: semantiske regler Spesielt for dette tilfellet: Bare ett attributt til hvert grammatikk-symbol, og alle har samme navn: «val» Bare én semantisk regel pr. produksjon 3/12/2015 8

8 Mer attributt-grammatikker Gitt en grammatikk på ren BNF-form For hvert grammatikk-symbol X (terminal eller ikke-terminal) skal det være gitt en mengde (navnede) attributter Attributt-mengdene for de forskjellige grammatikk-symbolene kan generelt være helt forskjellige, men har ofte mye felles Attributtene er ment å materialisere seg som variable knyttet til nodene i et konkret eller abstrakt syntakstre Attributtet a til noden X skrives X.a Attributtene er definert ved at det til hver produksjon er knyttet en semantisk regel av formen (for produksjonen: X 0 -> X 1 X 2 X n ) Eksempler: X1 a 1 X2 X 0 a 1 a 2 X 3 a 1 a 1 a 2 NB: Formlen for hver av disse X1 a 1 a X2 X 0 a 1 a 2 X 3 a 1 a 1 a 2 Pilene er avhengigheter (flyt av verdier under bergningen) 3/12/2015 9

9 Avhengighetsgraf: for et senere eksempel ( based-num -eksempelet) Tegnekonvensjon: «arvede» X Kan også lages om til syntetiserte attributter Mulig beregningsrekkefølge: «syntetiserte» 3/12/

10 Vanlig restriksjon på attributt-grammatikker (litt annen fremstilling enn i boka) Hvert attributt må være av en av følgende to typer: 1. Syntetisert attributt 2. Arvet attributt arvede Restriksjon på syntetiserte attributter: For en produksjon av typen: A -> X 1 X 2 X 3 og et syntetrisert attributt s, så må alle semantiske regler der s nevnes være definert slik: A.s = f(a.a, X 1.b, X 2.c, X 3.d) Her må a være et arvet attributt til A, og b, c og d må være syntetiserte attributter til hhv. X 1, X 2 og X 3 X tre-node syntetiserte X1 Tegnekonvensjon X2 A X3 Mulige avhengigheter for et syntetisert attributt S-attributt-grammatikk: Alle attributter er syntetiserte (alle piler oppover!) 11

11 Restriksjoner på arvede attributter Kan defineres på flere måter. F.eks. slik: For en produksjon av typen: A -> X 1 X 2 X 3 og et arvet attributt a, så må alle semantiske regler der a nevnes være definert slik: X 2.a = f(a.b, X 1.c, X 2.d, X 3.e) Her er a altså et arvet attributt til X 2 (eller til X 1 eller X 3, men ikke til A), b et arvet attributt til A, og c, d og e må være attributter (arvede eller syntetiserte) til X 1, X 2 og X 3, som på tegningen.. b AA c a d X1 X2 X3. Mulige avhengigheter for et arvet attributt etter denne definisjonen e 3/12/

12 Attr.gram. for å beregne verdien av uttrykk (Samme som på tidligere foil) Tradisjopnell grammatikk: Alle symboler (bortsett fra +, - og * ) har det ene attributtet val. Betegnelsen exp i trengs hvis samme grammatikk-symbol brukes fler ganger: Skal ikke beregnes ved semantiske regler. Beregnet av scanner/parser 3/12/

13 Eksempel: Dette gjør vanligvis scanneren Attributter (bare syntetiserte) number: val digit: val Terminaler: - (ingen) 3/12/

14 Man kan gjerne tenke i: flertydige grammatikker abstrakte syntakstrær Attributter exp: val number: val (fra scanneren) terminaler: - Bare syntetiserte attributter: Det er en S-attributt-grammatikk 3/12/

15 Attr.gram. som bygger abstrakt syntakstre Bruker attr.gram. til å beskrive det parseren skal lage: Beskriver det abstrakte syntakstreet ut fra den konkrete syntaksen (en S-attributt-grammatikk) exp term Attributter (bare syntetiserte): For exp, term og factor: tree For number: lexval 3/12/2015 exp term factor number term factor exp - lexval=34 factor * number lexval=42 term factor number lexval=3 16

16 Atributt-grammatikk med arvede attributter Syntetiserte Attributter type, var-list, id: dtype (verdier: real og int) Avhengighets-graf 3/12/

17 Eksempel (både arvede og syntetiserte attributter) Attributter: based-num: val (syntetisert) basechar: base (syntetisert) num: val, base (val er syntetisert) (base er arvet) digit: val (syntetisert) NB: Attributtet «val» kan også få verdien «error» 3/12/

18 Arvede og syntetiserte attributter, forts. Kan også lages om til syntetiserte attributter 3/12/

19 Avhengighetsgraf for based-num -eksempelet Kan også lages om til syntetiserte attributter Mulig beregningsrekkefølge 3/12/

20 Konsistens og beregnbarhet Alle attributter er enten arvede eller syntetiserte Men merk: OK at basechar.base er syntetisert, mens num.base er arvet Alle attributter må være definerte. Sikres ved at innen hver produksjon: alle syntetiserte attributter i venstresiden er definert alle arvede attributter i høyresiden er definert det må (i hvert fall) ikke være noen lokale avhengighetsløkker Siden alle attributter er enten arvede eller syntetiserte, er hvert attributt i et parseringstre definert én og bare én gang 3/12/

21 Løkker i avhengighets-grafen Det må ikke være løkker i avhengighetsgrafen for noe syntakstre! Da er beregning umulig Generelt er dette vanskelig å garantere (tar eksponensiell tid å sjekke) Man kan sjekke det etter at et tre (for en aktuell setningen) er bygget. Om ikke løkker: Finn topologisk sortering som gir brukbar bergnings-rekkefølgerekkefølge Det som brukes: Man overbeviser seg på forhånd om at det ikke kan bli løkker i avhengighetsgrafen for noe syntakstre Forhåndsbestemmer en rekkefølge for beregning 3/12/

22 Beregningsalgoritme for type-grammatikk Gram fra tidligere foil syntetiserte (alle andre arvede) Dette er også skrevet ut som et program i boka! Treet antas å være bygget ferdig på forhånd Filosofi Syntetiserte attributter i T gis verdi ut fra barnas verdier Arvede attributter setts i T s barn ut fra verdiene i T og i andre barn 3/12/

23 Figurer til forrige foil 3/12/

24 L-attributt-grammatikk: For beregning under parsering venstre > høyre Trykkfeil over: Må også kreve at X 0.a 1,..., X 0.a k alle er arvede attributter (ellers kan det oppstå løkker, som umuliggjør bergening) 3/12/2015 Forbudt! Kan gi løkke 25

25 Beregning av L-attributt-grammatikk under rekursiv gjennomgang av treet int beregn_sa(aa){... } else { if («A -> BCD» er brukt) then { int ab,sb,ac,sc,ad,sd; ab = fb(aa); sb = beregn_sb(ab); ac = fc(aa,ab,sb); sc = beregn_sc(ac); ad = fd(aa,ab,sb,ac,sc); sd = beregn_sd(ad); return fa(aa,ab,sb,ac,sc,ad,sd); } else { } Del av attributt-grammatikk: A -> B C D sa = fa(aa,ab,sb,ac,sc,ad,sd) ab = fb(aa) ac = fc(aa,ab,sb ad = fd(aa,ab,sb,ac,sc) Beregning av sa aa B C D ab sb ac sc ad sd Rekursive kall A sa Mulige avhengigheter for beregning av ac 26

Statisk semantisk analyse - Kap. 6

Statisk semantisk analyse - Kap. 6 Statisk semantisk analyse - Kap. 6 Generelt om statisk semantisk analyse Attributt-grammatikker Symboltabell Datatyper og typesjekking 3/15/11 1 Generelt om semantisk analyse Oppgave: Sjekke alle krav

Detaljer

Statisk semantisk analyse - Kap. 6

Statisk semantisk analyse - Kap. 6 Statisk semantisk analyse - Kap. 6 Generelt om statisk semantisk analyse Attributt-grammatikker Symboltabell Datatyper og typesjekking 3110/4110-2004 5110-2009 3/3/2009 1 Generelt om semantisk analyse

Detaljer

Semantisk Analyse del I

Semantisk Analyse del I Semantisk Analyse del I Attributtgrammatikker Kapittel 6.1-6.2 26.02.2013 1 Statisk semantisk analyse kapittel 6: Innhold Generelt om statisk semantisk analyse Attributt-grammatikker (kapittel 6.1-6.2)

Detaljer

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

Dagens Tema: Grammatikker Kap. 3 i K. C. Louden INF 5110, 29. januar 2015 Stein Krogdahl Dagens Tema: Grammatikker Kap. 3 i K. C. Louden Min Foil-stil: Ofte mer tekst enn man helt kan få med seg på forelesningen, for at de skal være gode til repetisjon

Detaljer

Dagens Tema: Grammatikker

Dagens Tema: Grammatikker INF 5110, 9. februar 2010 Stein Krogdahl Dagens Tema: Grammatikker Kap. 3 i K. C. Louden Min Foil-stil: Ofte mer tekst enn man helt kan få med seg på forelesningen, for at de skal være gode til repetisjon

Detaljer

Anatomien til en kompilator - I

Anatomien til en kompilator - I Anatomien til en kompilator - I program Symboltabell tekst tokens syntaks-tre beriket syntaks-tre Finne struktur i programmet OK i henhold til grammatikk? Preprocessor Makroer Betinget kompilering Filer

Detaljer

INF 5110, 3. februar Dette foilheftet: Kapittel 3

INF 5110, 3. februar Dette foilheftet: Kapittel 3 INF 5110, 3. februar 2009 Stein Krogdahl Min Foil-stil: Ofte mer tekst enn man helt kan få med seg på forelesningen, for at de skal være gode til repetisjon De kommende ca. 4 forelesninger: Kontekstfrie

Detaljer

Kap. 4: Ovenfra-ned (top-down) parsering

Kap. 4: Ovenfra-ned (top-down) parsering Kap. 4: Ovenfra-ned (top-down) parsering Dette bør leses om igjen etter kapittelet: First og Follow-mengder Boka tar det et stykke uti kap 4, vi tok det først (forrige foilbunke) LL(1)-parsering og boka

Detaljer

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

Hvor er vi nå - kap. 3 (+4,5)? Forenklet skisse av hva en parser gjør PARSER. Kontekstfrie grammatikker og syntaksanalyse (parsering) Hvor er vi nå - kap. 3 (+4,5)? Kontekstfrie grammatikker og syntaksanalyse (parsering) INF5110 - kap.3 i Louden + hjelpenotat (se hjemmesida) Arne Maus Ifi, UiO v2006 program Pre - processor Makroer Betinget

Detaljer

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

Dagens Tema: Grammatikker Kap. 3 i K. C. Louden INF 5110, 31. januar 2014 Stein Krogdahl Dagens Tema: Grammatikker Kap. 3 i K. C. Louden Min Foil-stil: Ofte mer tekst enn man helt kan få med seg på forelesningen, for at de skal være gode til repetisjon

Detaljer

Dagens Tema: Grammatikker

Dagens Tema: Grammatikker INF 5110, 8. februar 2011 Stein Krogdahl Dagens Tema: Grammatikker Kap. 3 i K. C. Louden Min Foil-stil: Ofte mer tekst enn man helt kan få med seg på forelesningen, for at de skal være gode til repetisjon

Detaljer

INF5110, onsdag 19. februar, Dagens tema: Parsering ovenfra-ned (top-down)

INF5110, onsdag 19. februar, Dagens tema: Parsering ovenfra-ned (top-down) INF5110, onsdag 19. februar, 2014 Dagens tema: Kapittel 4 Parsering ovenfra-ned (top-down) Vi har med alle foilene til kap. 4 her, også de som ble gjennomgått mot slutten av forelesning 7. februar Pensum

Detaljer

INF januar Forelesninger fremover:

INF januar Forelesninger fremover: Kontekstfrie grammatikker og syntaksanalyse (parsering) Kap. 3, 4 og 5 i Louden Kan også lese om dette i notat delvis brukt i INF 3/4110 Se kursets hjemmeside (foreløpig 2007): Pensum/læringskrav INF 5110

Detaljer

Kontekstfrie grammatikker og syntaksanalyse (parsering)

Kontekstfrie grammatikker og syntaksanalyse (parsering) Kontekstfrie grammatikker og syntaksanalyse (parsering) Kap. 3, 4 og 5 i Louden Kan også lese om dette i notat delvis brukt i INF 3/4110 Se kursets hjemmeside: Pensum/læringskrav 1. februar 2007 Stein

Detaljer

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

Kap.4 del I Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO Kap.4 del I Top Down Parsering INF5110 v2005 Arne Maus Ifi, UiO Innhold Motivering Boka gir først parsering uten First/Follow-mengder og så innfører dem. Vi tar teorien først First og Follow-mengder Fjerning

Detaljer

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

Dagens Tema: Grammatikker Kap. 3 i K. C. Louden INF 5110, 1. februar 2012 Stein Krogdahl Dagens Tema: Grammatikker Kap. 3 i K. C. Louden Min Foil-stil: Ofte mer tekst enn man helt kan få med seg på forelesningen, for at de skal være gode til repetisjon

Detaljer

Kap 6.3: Symboltabellen Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 17. mars Dagens tema:

Kap 6.3: Symboltabellen Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 17. mars Dagens tema: Kap 6.3: Symboltabellen Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 17. mars 2015 Hvordan holde greie på: Dagens tema: Hvilke navn har en deklarasjon på «dette» sted i programmet? Hva

Detaljer

INF5110 V2012 Kapittel 4: Parsering ovenfra-ned

INF5110 V2012 Kapittel 4: Parsering ovenfra-ned INF5110 V2012 Kapittel 4: Parsering ovenfra-ned (top-down) Tirsdag 7. februar Stein Krogdahl, Ifi, UiO Oppgaver som gjennomgås i morgen, onsdag: -Spørsmålene på de to siste foilene fra onsdag 1/2 (Bl.a.

Detaljer

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

Kap. 4 del I Top Down Parsering INF5110 v2006. Stein Krogdahl Ifi, UiO Kap. 4 del I Top Down Parsering INF5110 v2006 Stein Krogdahl Ifi, UiO 1 Innhold First og Follow-mengder Boka ser på én parseringsmetode først, uten å se på First/Follow-mengder. Vi tar teorien først To

Detaljer

Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/ Legger ut en oppgave til kap. 4 (se beskjed).

Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/ Legger ut en oppgave til kap. 4 (se beskjed). Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/2-2008 Legger ut en oppgave til kap. 4 (se beskjed). tein Krogdahl Ifi, UiO Merk: Av de foilene som ble delt ut på papir på

Detaljer

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

Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2) Dagens tema Syntaks (kapittel 2.1 + Komp. 47, kap. 1 og 2) 1/19 Forelesning 6 1.10.2003 Litt om kompilering og interpretering En kompilator oversetter et program til et annet språk, for eksempel maskinspråk.

Detaljer

Syntax/semantics - I INF 3110/ /29/2005 1

Syntax/semantics - I INF 3110/ /29/2005 1 Syntax/semantics - I Program program execution Compiling/interpretation Syntax Classes of langauges Regular langauges Context-free langauges Scanning/Parsing Meta models INF 3/4-25 8/29/25 Program

Detaljer

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

Litt om kompilering og interpretering. Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2) Syntaks og semantikk Litt om kompilering og interpretering Dagens tema Syntaks (kapittel 2. + Komp. 47, kap. og 2) En kompilator oversetter et program til et annet språk, for eksempel maskinspråk. Et program interpreteres

Detaljer

Kap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars Dagens tema: Typer og typesjekking

Kap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars Dagens tema: Typer og typesjekking Kap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars 2015 Dagens tema: Typer og typesjekking Hva er nå egentlig en «type» i et programmeringsspråk? Hvordan

Detaljer

Datatyper og typesjekking

Datatyper og typesjekking Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører

Detaljer

Datatyper og typesjekking

Datatyper og typesjekking Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører

Detaljer

Kap. 5, del 2 LR(1)- og LALR(1)-grammatikker INF5110 V2008

Kap. 5, del 2 LR(1)- og LALR(1)-grammatikker INF5110 V2008 Kap. 5, del 2 LR(1)- og LALR(1)-grammatikker INF5110 V2008 Stein Krogdahl, Ifi, UiO I dag 19/2: Time 1: Fortsette kap.5 Time 2: Hjelpelærer Fredrik Sørensen presenterer Oblig 1 Plan framovrer: Torsdag

Detaljer

INF /2, 2015 Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO

INF /2, 2015 Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO INF5110 17/2, 2015 Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO Mer om LR-parsering Hadde også igjen noen foiler fra 12/2 Oblig 1 er lagt ut. Det blir en intro til Oblig 1 ved Eyvind Axelsen torsdag 19/2 1 Flertydige

Detaljer

INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker

INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker 29. januar 2013 Stein Krogdahl, Ifi, UiO NB: Ikke undervisning fredag 1. februar! Oppgaver som gjennomgås 5. februar

Detaljer

Anatomien til en kompilator - I

Anatomien til en kompilator - I Anatomien til en kompilator - I 5/22/2006 1 Framgangsmåte for automatisk å lage en scanner Beskriv de forskjellige token-klassene som regulære uttrykk Eller litt mer fleksibelt, som regulære definisjoner

Detaljer

Datatyper og typesjekking

Datatyper og typesjekking Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører

Detaljer

Hovedstoffet i kap 4: 16. Februar Ifi, UiO

Hovedstoffet i kap 4: 16. Februar Ifi, UiO INF5110 V2010 Hovedstoffet i kap 4: Parsering ovenfra-ned ned ( top down ) 16. Februar 2010 Stein Krogdahl Ifi, UiO Oppgaver som gjennomgås i dag: - Spørsmålene på foil 35 og 36 fra 9/2 - Finn First og

Detaljer

INF / Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO

INF / Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO INF5110 12/2-2013 Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO Dagens temaer: Noen foiler igjen fra forrige gang SLR(1), LR(1)- og LALR(1)-grammatikker NB: Oppgaver til kap 4 og 5 er lagt ut på undervisningsplanen

Detaljer

Datatyper og typesjekking

Datatyper og typesjekking Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører

Detaljer

Kap. 5, Del 3: INF5110, fra 1/3-2011

Kap. 5, Del 3: INF5110, fra 1/3-2011 Kap. 5, Del 3: LR(1)- og LALR(1)-grammatikker INF5110, fra 1/3-2011 Bakerst: Oppgaver til kap 5 (svar kommer til gjennomgåelsen) gåe Nytt 2/3: Nå også oppgave 2 fra eksamen 2006 Stein Krogdahl, Ifi, UiO

Detaljer

Obligatorisk Oppgave 1

Obligatorisk Oppgave 1 Obligatorisk Oppgave 1 INF5110 - Kompilatorteknikk Våren 2016 Frist: 20. mars 23:59 Hensikten med Oppgaven Tanken bak denne oppgaven er at man skal få litt praktisk erfaring med følgende: Bruke skannings-

Detaljer

Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF5110 V2009

Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF5110 V2009 Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF5110 V2009 Stein Krogdahl, Ifi, UiO Torsdag 26/2: Første time Kap. 5 (avslutning?) Andreas Svendsen kommer andre time, snakker om oblig 1 (spesielt

Detaljer

Obligatorisk Oppgave 1

Obligatorisk Oppgave 1 Obligatorisk Oppgave 1 INF5110/INF9110 - Kompilatorteknikk Våren 2013 Frist fredag 15. mars Hensikten med Oppgaven Tanken bak denne oppgaven er at man skal få litt praktisk erfaring med følgende: Bruke

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 2. juni 2010 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 5 sider (pluss

Detaljer

Spørsmål og svar rundt oblig 1 og verktøy

Spørsmål og svar rundt oblig 1 og verktøy Spørsmål og svar rundt oblig 1 og verktøy Sven-Jørgen Karlsen, gruppelærer i INF5110 våren 2006 03/16/06 1 Obligen i ett nøtteskall Del 1: 1) Lage en parser og skanner for Diss, med

Detaljer

Kap. 5 del 2: LR(1)- og LALR(1)-grammatikker INF5110 V2005. Stein Krogdahl, Ifi, UiO

Kap. 5 del 2: LR(1)- og LALR(1)-grammatikker INF5110 V2005. Stein Krogdahl, Ifi, UiO Kap. 5 del 2: LR(1)- og LALR(1)-grammatikker INF5110 V2005 Stein Krogdahl, Ifi, UiO 1 Bottom up parsering (nedenfra-og-opp) S A B B A LR-parsering og grammatikker: t 1 t 2 t 3 t 7 t 4 t 5 t 6 - LR(0) Det

Detaljer

Kap. 4, del I: Top Down Parsering Pluss oppgave til kapittel 3 INF5110 V2008

Kap. 4, del I: Top Down Parsering Pluss oppgave til kapittel 3 INF5110 V2008 Kap. 4, del I: Top Down Parsering Pluss oppgave til kapittel 3 INF5110 V2008 Stein Krogdahl Ifi, UiO NB: Av de foilene som ble delt ut på papir på forelesningen 5/2 så utgår nr 39 43. Foil 44 er tatt med

Detaljer

Velkommen til INF Kompilatorteknikk

Velkommen til INF Kompilatorteknikk Velkommen til INF5110 - Kompilatorteknikk Kursansvarlige: Stein Krogdahl [steink@ifi.uio.no] Birger Møller-Pedersen [birger@ifi.uio.no] Eivind Gard Lund (hjelpelærer) [eivindgl@student.matnat.uio.no] Kursområdet:

Detaljer

Kontekstfrie grammatikker og syntaksanalyse (parsering)

Kontekstfrie grammatikker og syntaksanalyse (parsering) Kontekstfrie grammatikker og syntaksanalyse (parsering) INF5110 - kap.3 i Louden + hjelpenotat (se hjemmesida) Arne Maus Ifi, UiO v2005 Hvor er vi nå - kap. 3 (+4,5)? program Symboltabell tekst tokens

Detaljer

Kap. 5, Del 2: INF / (og 2/3 og 3/3)

Kap. 5, Del 2: INF / (og 2/3 og 3/3) Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF5110 23/2-2010 (og 2/3 og 3/3) Løsningsforslag s til oppgaver til kap 4 ligger bakerst her Oblig 1 legges ut i løpet av uka Stein Krogdahl, Ifi,

Detaljer

Obligatorisk oppgave 1 INF Kompilatorteknikk Våren 2012 Frist mandag 19. mars

Obligatorisk oppgave 1 INF Kompilatorteknikk Våren 2012 Frist mandag 19. mars Obligatorisk oppgave 1 INF5110 - Kompilatorteknikk Våren 2012 Frist mandag 19. mars 1. Hensikten med oppgaven Tanken bak denne oppgaven er at man skal få litt praktisk erfaring med følgende: Bruke skannings-

Detaljer

Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF /2-2011

Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF /2-2011 Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF5110 22/2-2011 Stein Krogdahl, Ifi, UiO Oppgaver til kap 4: På slutten av dagens foiler ligger noen oppgaver med svarforslag. Disse vil bli forholdsvis

Detaljer

Velkommen til INF Kompilatorteknikk

Velkommen til INF Kompilatorteknikk Velkommen til INF5110 - Kompilatorteknikk Kursansvarlige: Stein Krogdahl [steink@ifi.uio.no] Birger Møller-Pedersen [birger@ifi.uio.no] Andreas Svendsen (hjelpelærer) [Andreas.Svendsen@sintef.no] Kursområdet:

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 Eksamensdag : Tirsdag 6. juni 2006 Tid for eksamen : 09.00-12.00 Oppgavesettet er på : 5 sider Vedlegg : Intet Tillatte

Detaljer

Hovedstoffet i kap 4:

Hovedstoffet i kap 4: INF5110, 15. februar 2011 Hovedstoffet i kap 4: Parsering ovenfra-ned ( top down ) Stein Krogdahl Ifi, UiO Forbedret endelig utgave, lagt ut 16/2 Oppgaver som gjennomgås i dag: -Spørsmålene på de to siste

Detaljer

Syntax/semantics INF 3110/ /8/2004 1

Syntax/semantics INF 3110/ /8/2004 1 Syntax/semantics Program program execution Paradigms Compiling/interpretation Syntax Classes of langauges Regular langauges Context-free langauges Scanning/Parsing Meta models INF 3/4-24 9/8/24 Program

Detaljer

Oversikt. INF5110 Obligatorisk Oppgave 1. Andreas Svendsen SINTEF

Oversikt. INF5110 Obligatorisk Oppgave 1. Andreas Svendsen SINTEF INF5110 Obligatorisk Oppgave 1 Andreas Svendsen SINTEF 19. Februar 2009 1 Oversikt Om meg Praktisk informasjon Oppgaven Språket (D-flat) Terminaler Metasymboler Grammatikken JFlex CUP Oppsummering Neste

Detaljer

Hjemmeeksamen 2 i INF3110/4110

Hjemmeeksamen 2 i INF3110/4110 Hjemmeeksamen 2 i INF3110/4110 Innleveringsfrist: onsdag 19. november kl. 1400 Innlevering Besvarelsen av oppgave 2,3,4 og 5 skal leveres skriftlig på papir i IFI-ekspedisjonen. Merk denne med navn, kurskode,

Detaljer

INF5110, 15/ Dagens temaer: Avslutning kap. 4 Begynne på kap. 5 Se på oppgave. Stein Krogdahl, Ifi UiO

INF5110, 15/ Dagens temaer: Avslutning kap. 4 Begynne på kap. 5 Se på oppgave. Stein Krogdahl, Ifi UiO INF5110, 15/2-2007 Dagens temaer: Avslutning kap. 4 Begynne på kap. 5 Se på oppgave Stein Krogdahl, Ifi UiO Avslutning kap. 4 1. Vi tar ikke med i pensum noe om trebygging ut fra LL(1)- parsering med stakk

Detaljer

Oppgaver til INF 5110, kapittel 4, med svarforslag Gjennomgått torsdag 14. febr Disse foilene er justert 15/2, kl. 11

Oppgaver til INF 5110, kapittel 4, med svarforslag Gjennomgått torsdag 14. febr Disse foilene er justert 15/2, kl. 11 Oppgaver til INF 5110, kapittel 4, med svarforslag Gjennomgått torsdag 14. febr. 2008. Disse foilene er justert 15/2, kl. 11 Oppgave 1 (Mye repetisjon): Gitt gram.: exp exp op exp (exp) num op + - * /

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 Eksamensdag : Tirsdag 5. juni 2007 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 6 sider (pluss vedlegg) Vedlegg

Detaljer

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering?

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering? Dagens tema Dagens tema Kildekode Hva er kompilering? Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Hvordan oppdage feil? Anta at vi lager dette lille

Detaljer

Velkommen til INF Kompilatorteknikk

Velkommen til INF Kompilatorteknikk Velkommen til INF5110 - Kompilatorteknikk Kursansvarlige: Stein Krogdahl [steink@ifi.uio.no] Birger Møller-Pedersen [birger@ifi.uio.no] Eyvind Wærstad Axelsen (oblig-ansvarlig) [eyvinda@ifi.uio.no] Kursområdet:

Detaljer

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

Kap. 5, del 1: Parsering nedenfra-opp (Bottom up parsing) INF5110. Stein Krogdahl Ifi, UiO Kap. 5, del 1: Parsering nedenfra-opp (Bottom up parsing) INF5110 NB: Disse foilene er litt justert og utvidet i forhold til de som er delt ut tidligere på en forelesning. Ta dem ut på nytt! Stein Krogdahl

Detaljer

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

Kap.4 del 2 Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO Kap.4 del 2 Top Down Parsering INF5110 v2005 Arne Maus Ifi, UiO LL(1) tabell for uttrykks-grammatikk Har fjernet venstrerekursjon: Har fjernet venstre-rekursjon: Alternativ def. av LL(1) grammatikker Sier

Detaljer

Velkommen til INF Kompilatorteknikk

Velkommen til INF Kompilatorteknikk Velkommen til INF5110 - Kompilatorteknikk Kursansvarlige: Stein Krogdahl [steink@ifi.uio.no] Birger Møller-Pedersen [birger@ifi.uio.no] Fredrik Sørensen (hjelpelærer) [fredrso@student.matnat.uio.no] Kursområdet:

Detaljer

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

Syntaksanalyse. Skanner (repetisjon) Parsering top-down bottom-up LL(1)-parsering Recursive descent Forutsetninger. IN 211 Programmeringsspråk Syntaksanalyse Skanner (repetisjon) Parsering top-down bottom-up LL(1)-parsering Recursive descent Forutsetninger Ark 1 av 26 Forelesning 15.10.2001 Syntaksanalyse En parser er et program som analyserer

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 5. juni 2013 Tid for eksamen : 14.30-18.30 Oppgavesettet er på : Vedlegg :

Detaljer

Semantisk Analyse del III

Semantisk Analyse del III Semantisk Analyse del III Typesjekking Kapittel 6.4 08.03.2013 1 Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem

Detaljer

Obligatorisk Innlevering 2

Obligatorisk Innlevering 2 Obligatorisk Innlevering 2 INF5110 - Kompilatorteknikk Våren 2017 Frist 07.05.2017 23:59 Dette er den andre av to oppgaver våren 2017. Den bygger videre på det som er gjort i den første innleveringen.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 4. juni 2008 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 7 sider Vedlegg

Detaljer

Kontekstfrie grammatikker og syntaksanalyse (parsering)

Kontekstfrie grammatikker og syntaksanalyse (parsering) Kontekstfrie grammatikker og syntaksanalyse (parsering) Kap. 3, 4 og 5 i Louden Kan også lese om dette i notat delvis brukt i INF 3/4110 Se kursets hjemmeside: Pensum/læringskrav INF 5110 6. februar 2007

Detaljer

INF3110 Programmeringsspråk

INF3110 Programmeringsspråk INF3 Programmeringsspråk Dagens tema Syntaks (Komp 47, kap 3 (og noe 4)) Repetisjon Regulære språk i klassisk BNF Regulære språk i utvidet BNF Regulære språk i jerbanediagrammer Regulære språk og automater

Detaljer

Skal bindes opp til en deklarasjon av samme navn

Skal bindes opp til en deklarasjon av samme navn Symboltabellen I Programmeringsspråk har Deklarasjoner, som definerer navn Konstant-deklarasjon Type-deklarasjon Variabel-deklarasjon Prosedyre-deklarasjon Klasse-deklarasjon Bruksforekomster av navn,

Detaljer

MED SVARFORSLAG UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

MED SVARFORSLAG UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet MED SVARFORSLAG UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 2. juni 2010 Tid for eksamen : 14.30-17.30 Oppgavesettet er

Detaljer

INF5110, tirsdag 5. februar, Dagens temaer: - Oppgaver til kap. 3 Svar ligger på slutten av foilene, men forsøk deg først selv!!

INF5110, tirsdag 5. februar, Dagens temaer: - Oppgaver til kap. 3 Svar ligger på slutten av foilene, men forsøk deg først selv!! INF5110, tirsdag 5. februar, 2013 Dagens temaer: - Oppgaver til kap. 3 Svar ligger på slutten av foilene, men forsøk deg først selv!! - Resten av kap. 4 Parsering ovenfra-ned (top-down) (Vi har med alle

Detaljer

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering?

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering? Dagens tema Dagens tema Kildekode Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette

Detaljer

Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering

Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Statiske metoder og variabler Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at

Detaljer

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

Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) INF / Stein Krogdahl Ifi, UiO Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) INF5110 8/2-2013 tein Krogdahl Ifi, UiO 1 Bottom up parsering (nedenfra-og-opp) Tokenklasser + ikketerminaler B B Tilstander Tabell for LR-parsering

Detaljer

Oppgaver til INF 5110, kapittel 4, med svarforslag Gjennomgås tirsdag 21. febr. 2012

Oppgaver til INF 5110, kapittel 4, med svarforslag Gjennomgås tirsdag 21. febr. 2012 Oppgaver til INF 5110, kapittel 4, med svarforslag Gjennomgås tirsdag 21. febr. 2012 Oppgave 1: Sjekk om grammatikken S ( S ) S ε er LL(1) Oppgave 2: Gitt gram.: exp exp + exp (exp) if exp then exp else

Detaljer

Velkommen til INF5110 Kompilatorteknikk

Velkommen til INF5110 Kompilatorteknikk Velkommen til INF5110 Kompilatorteknikk 15. januar 2013 Kursansvarlige: Stein Krogdahl [steink@ifi.uio.no] Ragnhild Kobro Runde [ragnhilk@ifi.uio.no] Henning Berg (oblig-ansvarlig) [hennb@ifi.uio.no] Kursområdet:

Detaljer

Velkommen til INF Kompilatorteknikk

Velkommen til INF Kompilatorteknikk Velkommen til INF5110 - Kompilatorteknikk Kursansvarlige: Arne Maus [arnem@ifi.uio.no] Birger Møller-Pedersen [birger@ifi.uio.no] Sven-Jørgen Karlsen ( gruppelærer ) [svenjok@student.matnat.uio.no] Stein

Detaljer

Kap. 5: Oppgaver m.m. (Noen lysark fra tidligere er gjentatt her) Stein Krogdahl, Ifi, UiO 8. Mars 2007

Kap. 5: Oppgaver m.m. (Noen lysark fra tidligere er gjentatt her) Stein Krogdahl, Ifi, UiO 8. Mars 2007 Kap. 5: Oppgaver m.m. (Noen lysark fra tidligere er gjentatt her) Stein Krogdahl, Ifi, UiO 8. Mars 2007 1 Typisk Yacc-produsert parseringstabell (merk påfyll av ekstra reduksjoner, som en plass-optimalisering

Detaljer

Velkommen til INF Kompilatorteknikk

Velkommen til INF Kompilatorteknikk Velkommen til INF5110 - Kompilatorteknikk Kursansvarlige: Stein Krogdahl [steink@ifi.uio.no] Birger Møller-Pedersen [birger@ifi.uio.no] Magnus Haugom Christensen [magnushc@ifi.uio.no] Kursområdet: www.uio.no/studier/emner/matnat/ifi/inf5110/v12

Detaljer

Kap. 8 del 1 kodegenerering INF5110 Vår2007

Kap. 8 del 1 kodegenerering INF5110 Vår2007 Kap. 8 del 1 kodegenerering INF5110 Vår2007 Stein Krogdahl, Ifi UiO Forelesninger framover: Tirsdag 8. mai: Vanlig forelesning Torsdag 10. mai: Ikke forelesning Tirsdag 15. mai: Vanlig forelesning (siste?)

Detaljer

Repetisjon. 1 binærtall. INF3110 Programmeringsspråk. Sist så vi ulike notasjoner for syntaks: Jernbanediagrammer. BNF-grammatikker.

Repetisjon. 1 binærtall. INF3110 Programmeringsspråk. Sist så vi ulike notasjoner for syntaks: Jernbanediagrammer. BNF-grammatikker. INF3 Programmeringsspråk INF3 Programmeringsspråk Dagens tema Syntaks (Komp 47, kap 3 (og noe 4)) Repetisjon Regulære språk i klassisk NF Regulære språk i utvidet NF Regulære språk i jerbanediagrammer

Detaljer

Pensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO

Pensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO Pensumoversikt - kodegenerering Kap. 8 del 1 kodegenerering INF5110 v2006 Arne Maus, Ifi UiO 8.1 Bruk av mellomkode 8.2 Basale teknikker for kodegenerering 8.3 Kode for referanser til datastrukturer (ikke

Detaljer

INF Oblig 2 semantikksjekk og kodegenerering

INF Oblig 2 semantikksjekk og kodegenerering INF5110 - Oblig 2 semantikksjekk og kodegenerering Magnus Haugom Christensen Instituttet for Informatikk Universitetet i Oslo 27. Mars - 2012 Oversikt Informasjon Oppgaven Semantikksjekk Kodegenerering

Detaljer

Dagens tema: Sjekking

Dagens tema: Sjekking Dagens tema Dagens tema: Sjekking Navnebinding (obligatorisk oppgave 3) Biblioteket Logging Riktig bruk av navn (frivillig) Typesjekking (frivillig) Hele prosjektet Strukturen til kompilatoren vår f.pas

Detaljer

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015 Beskrivelse av programmeringsspråket Compila15 INF5110 - Kompilatorteknikk Våren 2015 Her beskrives syntaksen og den statiske semantikken (hva som skal sjekkes av kompilatoren) til språket Compila15. Den

Detaljer

INF5110. Oblig 2 presentasjon

INF5110. Oblig 2 presentasjon INF5110 Oblig 2 presentasjon Informasjon Oppgaven Semantikksjekk Kodegenerering Bytecode-biblioteket Ant-targets Oppsummering Oversikt Informasjon Oblig 2 tilgjengelig på kurssiden Patch med testfiler

Detaljer

Skal bindes opp til en deklarasjon av samme navn

Skal bindes opp til en deklarasjon av samme navn Symboltabellen Programmeringsspråk har Deklarasjoner, som definerer navn Konstant-deklarasjon Type-deklarasjon Variabel-deklarasjon Prosedyre-deklarasjon Klasse-deklarasjon Bruksforekomster av navn, f.eks.

Detaljer

Hva er kompilering? Dagens tema. En kompilator En kompilator leser Minila koden og lager Flok koden.

Hva er kompilering? Dagens tema. En kompilator En kompilator leser Minila koden og lager Flok koden. Dagens tema Dagens tema Kildekode Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering? Hvordan analysere et program? Hvordan programmere dette i Java? Hvordan

Detaljer

Oversikt Kompilering Syntaksanalyse Java Feilsjekking Oppsummering

Oversikt Kompilering Syntaksanalyse Java Feilsjekking Oppsummering Dagens tema Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at vi lager dette lille

Detaljer

Eivind Gard Lund. 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen

Eivind Gard Lund. 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen Eivind Gard Lund 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen Informasjon Semantikksjekk Kodegenerering Oblig 2 tilgjengelig på kurssiden Bygger på deres oblig 1 kode. Det er lagt ut

Detaljer

Oversikt. Praktisk. Litt om meg. Obligatorisk oppgave 1 - Kort om oppgaven og verktøyene. Fredrik Sørensen OMS-gruppen, IfI.

Oversikt. Praktisk. Litt om meg. Obligatorisk oppgave 1 - Kort om oppgaven og verktøyene. Fredrik Sørensen OMS-gruppen, IfI. Oversikt Obligatorisk oppgave 1 - Kort om oppgaven og verktøyene Fredrik Sørensen OMS-gruppen, IfI Litt om meg Praktisk Oppgaven Verktøyene Ant JFlex CUP Utfordringer Torsdag Litt om meg Fredrik Sørensen

Detaljer

Med rettelser til oppgave 5.18, gjort 3/3

Med rettelser til oppgave 5.18, gjort 3/3 Med rettelser til oppgave 5.18, gjort 3/3 INF5110, 29/2-2012 Her er også alt fra 28/2 Kap. 5, Del 3: Litt om LR(1)- og LALR(1)-grammatikker Bakerst: - Noen oppgaver til kap 5 med svar - Lysarkene fra 28/2

Detaljer

INF5110 Kap. 5: Parsering nedenfra-og-opp (Bottom-up parsing) 21/ Stein Krogdahl Ifi, UiO. Angående Oblig 1:

INF5110 Kap. 5: Parsering nedenfra-og-opp (Bottom-up parsing) 21/ Stein Krogdahl Ifi, UiO. Angående Oblig 1: INF5110 Kap. 5: Parsering nedenfra-og-opp (Bottom-up parsing) Del 1 21/2-2014 Stein Krogdahl Ifi, UiO ngående Oblig 1: Blir lagt ut tirsdag/onsdag neste uke Oblig-ansvarlig Henning Berg orienterer 28/2

Detaljer

Velkommen til INF Kompilatorteknikk

Velkommen til INF Kompilatorteknikk Velkommen til INF5110 - Kompilatorteknikk Kursansvarlige: Arne Maus [arnem@ifi.uio.no] Birger Møller-Pedersen [birger@ifi.uio.no] Arild Fines (gruppelærer) [arildfi@ifi.uio.no] Stein Krogdahl (støtteperson)

Detaljer

INF oktober Stein Krogdahl. Kap 23.5: Trær og strategier for spill med to spillere

INF oktober Stein Krogdahl. Kap 23.5: Trær og strategier for spill med to spillere INF 4130 1. oktober 2009 Stein Krogdahl Dagens program: Første time: Kap 23.5: Trær og strategier for spill med to spillere Andre time, gjesteforelesning: Rune Djurhuus: Om sjakkspillende programmer (Ikke

Detaljer

Dagens tema: 12 gode råd for en kompilatorskriver

Dagens tema: 12 gode råd for en kompilatorskriver Dagens tema: 12 gode råd for en kompilatorskriver Hvordan sjekke navn? Testutskrifter 12 gode råd Hva skal gjøres med navn? Sjekking av navn En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme

Detaljer

INF5110 Obligatorisk Oppgave 2 del 2. Andreas Svendsen SINTEF. 23. April Oversikt

INF5110 Obligatorisk Oppgave 2 del 2. Andreas Svendsen SINTEF. 23. April Oversikt INF5110 Obligatorisk Oppgave 2 del 2 Andreas Svendsen SINTEF 23. April 2009 Oversikt Tilbakeblikk på oppgaven Eksempel på sjekk av semantikk Eksempel på kodegenerering Nødvendige instruksjoner for IF-noden

Detaljer

Dagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn?

Dagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn? Dagens tema: 12 gode råd for en kompilatorskriver Hva skal gjøres med navn? Sjekking av navn Hvordan sjekke navn? Testutskrifter 12 gode råd En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme

Detaljer

6. oktober Dagens program: Første time: Andre time, gjesteforelesning: Uavgjørbarhet. Stein Krogdahl. (Ikke pensum, egne foiler legges ut)

6. oktober Dagens program: Første time: Andre time, gjesteforelesning: Uavgjørbarhet. Stein Krogdahl. (Ikke pensum, egne foiler legges ut) Dagens program: Første time: INF 4130 6. oktober 2011 Stein Krogdahl Kap 23.5: Spilltrær og strategier for spill med to spillere Andre time, gjesteforelesning: Rune Djurhuus: Om sjakkspillende programmer

Detaljer