Obligatorisk Oppgave 1
|
|
|
- Kari Mortensen
- 9 år siden
- Visninger:
Transkript
1 Obligatorisk Oppgave 1 INF 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- og parseringsverktøy, i dette tilfellet JFlex og CUP. Omarbeide en grammatikk fra én form (utvidet BNF til en annen (BNF som passer verktøyet. Kunne kontrollere presedens og assosiativitet på to måter: 1. Ved å lage en entydig grammatikk som gir riktig presedens/assosiativitet 2. Gi en flertydig grammatikk og styre presedens og assosiativitet ved passelige kommandoer i CUP. Definere nodeklasser til et abstrakt syntaks-tre og bruke parserverktøyet til å bygge trær som representerer innleste programmer. I oblig 1 skal vi bygge opp det abstrakte syntakstreet og deretter skrive det ut med en entydig parentetisk form som angir presedens og assosiativitet. Verktøy Dere skal implementere kompilatoren i Java, ved hjelp av skannergeneratoren JFlex og parsergeneratoren CUP. Dere skal bruke bruke Ant til bygging av kildekoden slik at hele innleveringen kan bygges og testes med noen få kommandoer. Den utleverte kildekoden har et oppsett dere kan utvide. Oppgaven Oppgaven går ut på å lage et program, ved hjelp av JFlex og CUP, som skal sjekke at programmer i språket Compila16 er syntaktisk korrekte. Språket er definert i et eget notat. Merk at det i oblig 1 ikke er nødvendig å sjekke at programmer er semantisk korrekte. Man kan trygt ignorere alt som står i notatet om Compila16 vedrørende sjekking av semantikk og kjøretidsforhold. Det blir først relevant for oblig 2.
2 Syntakstre Under parseringen av språket skal det bygges opp et abstrakt syntakstre. Node-klasser må defineres for dette treet med en passelig subklasse-struktur. Treet bygges under parseringen ved hjelp av aksjonskode og returverdier fra produksjoner i en CUP-grammatikk. De fleste ikketerminaler i grammatikken trenger tilsvarende klasser i nodehierarkiet (de som trengs for å bygge opp abstakte synkstrær. Objektorienterte språk egner seg godt til bygging av abstrakte parseringstrær. Det gir naturlige forhold mellom hierarkiet av noder. For eksempel vil et if-statement typisk være en subklasse av et generelt statement, som igjen typisk vil være en subtype av en generell nodeklasse. Metoder i klassene kan da brukes ved traversering og bruk av treet. Legg merke til at bare det abstrakte syntaks-treet skal lages og skrives ut. For produksjoner av typen stmt -> if_stmt skal det altså ikke lages noen ny node. Utskrift av Syntakstre Når man har bygget opp et abstrakt syntaks-tre, skal dette skrives ut i prefiksform. Hver node i det abstrakte treet skal representeres med ett par parenteser, og hvert "barn" av denne noden skal inngå i mellom disse parentesene. Rett etter første parentes kommer navnet på noden (som angitt i grammatikken, fulgt av attributtene (barna til noden. Eksempelfiler: Compila.cmp - input til kompilatoren (eksempel gitt lenger ned. Compila.ast - output fra kompilatoren (eksempel gitt lenger ned. Formatering er valgfritt i utskriften, men det kreves en viss ryddighet og struktur. To Grammatikker Oppgaven skal løses med to forskjellige grammatikker: 1. Den første grammatikken for Compila16 skal ha en entydig syntaks uttrykt med BNF alene. Presedens og assosiativitet skal være innebygget i grammatikken. 2. Den andre skal være flertydig og skal ikke ha innebygget presedens og prioritet. Den resulterende grammatikken vil da trenge egne presedens- og assosiativitetsregler definert i CUP for å håndtere konfliktene som oppstår. Dette vil vanligvis gjøre grammatikken kortere. 2
3 Sammenlikne de to parserne Undersøk og karakteriser konfliktene i den opprinnelige grammatikken og forklar hvordan du løste dem. Undersøk også hvor mange tilstander CUP-automaten får for de to grammatikkene. Diskutér også om valg av grammatikk har noe å si for hvor greit det er å definere nodene og bygge syntakstreet. Merk: Det er tilstrekkelig å bygge og skrive ut syntakstreet fra én av grammatikkfilene. Den andre grammatikken trenger derfor ingen aksjonskode, bare CUP-grammatikk som kan generere et program som sjekker om et Compila16-program er syntaktisk riktig. Leksikalsk Analyse Leksikalsk analyse skal utføres med JFlex, som leverer ett og ett token til parseren ved kall på metoden next_token(. Hovedoppgavene til skanneren blir å gjenkjenne identifikatorer og konstanter, samt å hoppe over kommentarer, linjeskift og blanke tegn. Hvordan man benytter JFlex og CUP sammen er beskrevet under emnet Working together - JFlex and CUP i manualen til JFlex. Det vesentlige ved integrasjonen er interfacet java_cup.runtime.scanner som må implementeres av scanneren. JFlex implementerer dette interfacet automatisk når man bruker %cup-switchen i JFlex. Ved levering av et token fra skanneren vil det være av typen Symbol og metoden Symbol.value benyttes for å levere tekster eller andre objekter fra scanneren til parseren. Feilhåndtering Dersom det oppdages en syntaktisk feil i programmet skal man bare stoppe analysen av Compila16-programmet, og melde at det er funnet en feil. Det er ikke krav om noen spesielt intelligent feilmelding (men det er morsomt om man kan få til noe her. Frist Fristen for levering er satt til 20 mars kl. 23:59. (F.eks. vil 21. mars 00:01 regnes som ikke levert. Det er ikke mulighet til å få utsettelse av fristen for innlevering eller levere på nytt etter fristen. Ved sykdom må dispensasjon fås fra administrasjonen, samt at den foreløpige versjonen av innleveringen må leveres hvis sykdomsperioden overskrider fristen. Se forøvrig: Krav for å få bestått: - Klassen og tre av fire prosedyrer i testprogrammet (se seksjonen Testprogram parses 100% riktig. - Treet som blir skrevet ut for testprogrammet er korrekt, dvs. treet gjenspeiler en riktig parsing. Noe avvik fra formateringen av utskriften er greit. - Alle punktene under seksjonen Gjennomføring og Levering er tatt hensyn til. - Løsningen kompilerer og kjører på en UiO-maskin (test dette!. 3
4 Gjennomføring og Levering Man kan arbeide alene eller parvis. Man kan etter søknad jobbe i grupper av tre, men sannsynligheten for å bli valgt ut for en gjennomgang og presentasjon av innleveringen økes da betraktelig (en gruppe blir garantert valgt ut. Det som skal leveres er: En forside med navn og brukernavn til de som leverer besvarelsen. En kort rapport om gjennomføringen: forklaring av designet (syntakstre, osv og konfliktene i grammatikken og løsningene i de to grammatikkvariantene. Se beskrivelsen ovenfor. All kode som trengs for å bygge og kjøre parserne, herunder: JFlex-koden for skanneren CUP-koden for de to syntaksvariantene Java-klassene for syntakstreet Byggeskript: build.xml Instruksjoner for bygging og kjøring Utskrift fra kjøring med Compila.cmp som input Levering Besvarelsen sendes til: [email protected]. Husk å legg alle data i en egen mappe før pakking som.zip. Start tittel på epost med [INF ]. Spørsmål angående oppgaven kan sendes til samme epostadresse. Ressurser Det viktigste her er det som står i læreboka i kap 2.6 og 5.5 (men der refereres det til de tilsvarende verktøyene Lex og Yacc. JFlex- og Cup- dokumentasjon JFlex hovedsiden1 JFlex - User's Manual2: Det nyttigste er kapitlet Lexical Specifications. CUP hovedsiden3 CUP - User's Manual4: Det nyttigste er kapittel 2 Specification Syntax, men man får kanskje mest ut av eksemplene
5 Testprogram Fil: Compila.cmp program ComplexAddition class Complex var Real : float; var Imag : float; proc Swap(ref a : int, ref b : int var tmp : int; tmp := a; a := b; b := tmp; proc Add (a : Complex, b : Complex : Complex var retval : Complex; retval := new Complex; retval.real := a.real + b.real; retval.imag := a.imag + b.imag; return retval; proc Max (a : int, b : int : int if a > b then return a; return b; proc Main( proc Square (val : float : float return val # 2.0; var num : float; num := ; print_float( num ; print_str( " squared is " ; print_float( Square( num ; return; 5
6 Testutskrift av Abstrakt Syntakstre Fil: Compila.ast (PROGRAM (NAME ComplexAddition (CLASS_DECL (NAME Complex (VAR_DECL (TYPE float (NAME Real (VAR_DECL (TYPE float (NAME Imag (PROC_DECL (TYPE void (NAME Swap (PARAM_DECL ref (TYPE int (NAME a (PARAM_DECL ref (TYPE int (NAME b (VAR_DECL (TYPE int (NAME tmp (NAME tmp (NAME a (NAME a (NAME b (NAME b (NAME tmp (PROC_DECL (TYPE Complex (NAME Add (PARAM_DECL (TYPE Complex (NAME a (PARAM_DECL (TYPE Complex (NAME b (VAR_DECL (TYPE Complex (NAME retval (NAME retval (NEW (TYPE Complex (. (NAME retval (NAME Real (ARIT_OP + (. (NAME a (NAME Real (. (NAME b (NAME Real (. (NAME retval (NAME Imag (ARIT_OP + (. (NAME a (NAME Imag (. (NAME b (NAME Imag (RETURN_STMT (NAME retval (PROC_DECL (TYPE int (NAME Max (PARAM_DECL (TYPE int (NAME a (PARAM_DECL (TYPE int (NAME b (IF_STMT (REL_OP > (NAME a (NAME b ( (RETURN_STMT (NAME a 6
7 (RETURN_STMT (NAME b (PROC_DECL (TYPE void (NAME Main (PROC_DECL (TYPE float (NAME Square (PARAM_DECL (TYPE float (NAME val (RETURN_STMT (ARIT_OP # (NAME val (FLOAT_LITERAL 2.0 (VAR_DECL (TYPE float (NAME num (NAME num (FLOAT_LITERAL (CALL_STMT (NAME print_float (ACTUAL_PARAM (NAME num (CALL_STMT (NAME print_str (ACTUAL_PARAM (STRING_LITERAL " squared is " (CALL_STMT (NAME print_float (ACTUAL_PARAM (CALL_STMT (NAME Square (ACTUAL_PARAM (NAME num (RETURN_STMT 7
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
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-
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
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
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.
Beskrivelse av programmeringsspråket Simpila INF5110 - Kompilatorteknikk Våren 2012
Beskrivelse av programmeringsspråket Simpila INF5110 - Kompilatorteknikk Våren 2012 Her beskrives syntaksen og den statiske semantikken (hva som skal sjekkes av kompilatoren) til språket Simpila. Den dynamiske
Oblig 2 - Simpila. INF Kompilatorteknikk. Våren Typesjekking, sjekking av bruk av navn og blokkstrtuktur i språk.
Oblig 2 - Simpila INF5110 - Kompilatorteknikk Våren 2012 Dette er den andre av to oppgaver våren 2012. Den bygger videre på det som er gjort i oblig 1. 1 Hensikten med oppgaven Hensikten er å få enda mer
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
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
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,
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
Viktig. Rettet i koden. Oppgaven. Obligatorisk oppgave 2 - Kort om oppgaven og litt informasjon. Fredrik Sørensen OMS-gruppen, IfI
Viktig Obligatorisk oppgave 2 - Kort om oppgaven og litt informasjon Fredrik Sørensen OMS-gruppen, IfI Ny patch (patch_oblig2.zip) legges ut på kurssiden i dag. Oblig 1 vil bli rettet denne uken Sjekk
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
Viktig. Rettet i koden. Obligatorisk oppgave 2 Litt flere detaljer om semantikksjekk og kodegenerering. Semantikksjekk
Obligatorisk oppgave 2 Litt flere detaljer om semantikksjekk og kodegenerering Viktig Ny patch (patch_oblig2.zip) er lagt ut (15/4) Oblig 1 vil bli rettet denne uken Sjekk om det er registrert at den er
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
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
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
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
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
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)
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
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
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
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
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
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
Dagens tema: INF2100. Syntaksanalyse. Hva annet gjør en kompilator? Sjekking av navnebruk. Testutskrifter
Dagens tema: Syntaksanalyse Hva annet gjør en kompilator? Sjekking av navnebruk Testutskrifter Dag Langmyhr,Ifi,UiO: Forelesning 4. oktober 2005 Ark 1 av 20 Syntaksanalyse På skolen hadde vi grammatikkanalyse:
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
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
INF 2820 V2015: Obligatorisk innleveringsoppgave 3
INF 2820 V2015: Obligatorisk innleveringsoppgave 3 Besvarelsene skal leveres i devilry innen fredag 17.4 kl 18.00 Filene det vises til finner du i o /projects/nlp/inf2820/cfg Del 1 RD Parsing Oppgave 1:
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
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
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
Syntaksanalyse. Dagens tema: Språkdiagrammene Jernbanediagrammene er et ypperlig utgangspunkt for å analysere et program: INF2100 INF2100 INF2100
Syntaksanalyse På skolen hadde vi grammatikkanalyse: Dagens tema: Syntaksanalyse Hva annet gjør en kompilator? Sjekking av navnebruk Testutskrifter Fanger krabber så lenge de orker Syntaksanalyse er på
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
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
Velkommen til INF5110 Kompilatorteknikk
Velkommen til INF5110 Kompilatorteknikk 15. januar 2013 Kursansvarlige: Stein Krogdahl [[email protected]] Ragnhild Kobro Runde [[email protected]] Henning Berg (oblig-ansvarlig) [[email protected]] Kursområdet:
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,
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
Administrivia INF 3110/ INF /02/2005 1
Administrivia Arild Fines Studentassistent for INF5110 Tok INF5110 våren 2004 Ingen tradisjonelle gruppetimer Veiledning over epost og/eller ved treffetid [email protected] 03/02/2005 1 Lex/Flex
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
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.
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
INF Innleveringsoppgave 6
INF1010 - Innleveringsoppgave 6 Frist: Onsdag 16. mars, 10:00 Maks 6 poeng Om obligatorisk oppgave 4, 6 og 7 i INF1010, våren 2016: "Leger og resepter" Du skal jobbe med en problemstilling omkring leger
Hjemmeeksamen 1 i INF3110/4110
Hjemmeeksamen i INF30/40 Innleveringsfrist: fredag 24. oktober kl. 500 Innlevering Hele besvarelsen skal leveres skriftlig på papir i IFI-ekspedisjonen innen fredag 24. oktober kl. 500. Merk besvarelsen
Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays
Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson
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
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
Velkommen til INF Kompilatorteknikk
Velkommen til INF5110 - Kompilatorteknikk Kursansvarlige: Stein Krogdahl [[email protected]] Birger Møller-Pedersen [[email protected]] Eyvind Wærstad Axelsen (oblig-ansvarlig) [[email protected]] Kursområdet:
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
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
Obligatorisk oppgave 1 i INF 4130, høsten 2009
Obligatorisk oppgave 1 i INF 4130, høsten 2009 Leveringsfrist fredag 2. oktober Institutt for informatikk Krav til innleverte oppgaver ved Institutt for informatikk (Ifi) Ved alle pålagte innleveringer
Litt om Javas class-filer og byte-kode
Litt om Javas class-filer og byte-kode INF 5110, 11/5-2010, Stein Krogdahl (Dessverre litt få figurer) Disse formatene ble planlagt fra start som en del av hele Java-ideen Bt Byte-koden gir portabilitet
Bakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator?
Kursopplegg Velkommen til INF2100 Bakgrunnen Bakgrunnen for INF2100 Jeg er Dag Langmyhr ([email protected]). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får
NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse
NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 8/5-2012, Stein Krogdahl Byte-koden for Java og.nett (C#) http://en.wikipedia.org/wiki/java_bytecode_instruction_listings
Velkommen til INF2100 Jeg er Dag Langmyhr
Velkommen til Jeg er Dag Langmyhr ([email protected]). Bakgrunn for I INF1000 20 har dere lært å rammere, men bare små rammer (< 1000 linjer). Hensikten med er å gi mer rammeringstrening Dagens tema: Hva
INF Obligatorisk innlevering 7
INF1000 - Obligatorisk innlevering 7 Høsten 2016, IFI UiO Frist: 6. November 2016 kl 22:00 Tema denne uka: Et større objektorientert program. Administrasjon av eierskap og utlån av DVD-er I denne oppgaven
Obligatorisk oppgave 1 i INF 4130, høsten 2008
Obligatorisk oppgave 1 i INF 4130, høsten 2008 Leveringsfrist 3. oktober Institutt for informatikk Krav til innleverte oppgaver ved Institutt for informatikk (Ifi) Ved alle pålagte innleveringer av oppgaver
