Språktyper og syntaksanalyseteknikker. Dagens temaer. Hvordan lage en deterministisk automat? Fra jernbanediagram til ID-automat
|
|
- Siv Bakke
- 7 år siden
- Visninger:
Transkript
1 Dagens temaer Språktyper og syntaksanalyseteknikker Regulære språk og automater (fortsatt fra forrige uke) Syntaksanalyse o Skanner o Parsering top-down bottom-up o LL()-parsering Reursive desent orutsetninger Regulære språk (type 3-språk) o En BN-grammatikk med ett metasymbol på venstresiden og kun grunnsymboler på høyresiden, eventuelt med et metasymbol til slutt o Kan analyseres med ikke-deterministiske og deterministiske automater Kontekstfrie språk (type 2-språk) o En BN-grammatikk med bare ett metasymbol på venstresiden o Nesten alle programmeringsspråk er av denne typen o Kan analyseres med parsere (syntakstolkere) Institutt for informatikk 2 september 22 IN2-Syntaksanalyse- Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-2 Hvordan lage en deterministisk automat? En deterministisk automat (D-automat) er lett å bruke, men ikke nødvendigvis så intuitiv å forstå eller lage ra et regulært uttrykk (evt via et jernbanediagram) er det imidlertid ganske lett å lage en ikke-deterministisk automat (ID-automat) Kan ha: omme kanter (såkalte -kanter) lere kanter fra samme node med samme symbol ra jernbanediagram til ID-automat a utgangspunkt i jernbanediagrammet: Hver pens blir til en node i ID-automaten 2 Linjene (med eventuelle symboler) blir merkede kanter mellom nodene Noen kanter får et tomt symbol () 3 Merk nodene hvor man skal begynne og slutte Deretter kan vi bruke en standard-algoritme for å gjøre om ID-automaten til en D-automat Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-3 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-4
2 IN2-Syntaksanalyse-5 Institutt for informatikk 2 september 22 Eksempel: IN2-Syntaksanalyse-6 Institutt for informatikk 2 september 22 ra ikke-deterministisk til deterministisk automat Ikkedeterministisk: Deterministisk: a, a, a, a, a, a,b, a, a,b, a, a,b, a, a,b, a, a,b, a, a,b, a, a,b, a, a,b, a, a,b, a, a,b, a, a,b,,d, a, a,b,,d, a, a,b,,d, a, a,b,,d, a, a,b,,d, a b d IN2-Syntaksanalyse-7 Institutt for informatikk 2 september 22 Ikke-determimistisk automat - IN2-Syntaksanalyse-8 Institutt for informatikk 2 september 22 Regulær grammatikk <uttrykk> - <startterm> <startterm> <startterm> <term> <term> <term> <term> -
3 Deterministisk automat Minimal deterministisk automat - - Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-9 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse- Implementasjon av en deterministisk automat En deterministisk automat kan lett representeres av en tabell som angir neste tilstand: t ilstand Slutt Ja Sjekkalgoritme Gitt en slik tabell t, finnes det en enkel og meget rask sjekkalgoritme: tilstand := ; while <flere tegn igjen> do begin := <neste tegn>; tilstand := t(tilstand,); end while; if slutt(tilstand) then <math funnet> else <ingen math>; Det er vanlig å innføre en tilstand for feil Ja Oppsummering: Hvordan lage raske sjekkprogrammer: Sett opp en ikke-deterministisk automat for det regulære uttrykket Lag en deterministisk automat ut fra den ikke-deterministiske automaten Sett opp tilstandstabellen t Bruk søkeløkken over til å sjekke input mot uttrykket Institutt for informatikk 2 september 22 IN2-Syntaksanalyse- Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-2
4 Kompilering? Interpretering? Ved å legge inn programsetninger for å generere kode eller kalle på rutiner får vi henholdsvis en kompilator eller en interpreter tilstand := ; while <flere tegn igjen> do begin := <neste tegn>; tilstand := t(tilstand,); // generering av kode (kompilering) eller // kall på rutiner (interpretering) end while; if slutt(tilstand) then <math funnet> else <ingen math>; Syntaksanalyse av kontekstfrie språk Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-3 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-4 Syntaksanalyse Parser: Et program som analyserer en tekst i henhold til en syntaks Alle kompilatorer og interpretere inneholder en parser Skanner: En «preprosessor» til en parser Skanner Det er vanlig at en parser har en preprosessor, kalt en skanner/leksikalsk analysator: fil Skanner tokens Parser Skanneren setter sammen tegn til symboler (ofte kalt leksikalske enheter eller tokens) Eksempel: BEGIN IDEN LPAR E RPAR END begin Outext ( Hallo ) end Et alternativt syn at skanneren konverterer fra tastaturets alfabet til språkets alfabet Skanneren kan konstrueres som en deterministisk automat Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-5 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-6
5 Skanneren forenkler parseren Uten skanner: if (a[x]== e && a[x+]== n && a[x+2]== d ) Med skanner: if (symbol == END) Streamokenizer Javas skanner Java har innebygget en fullt ferdig skanner: Streamokenizer Streamokenizer s; s = new Streamokenizer( new ilereader(new ile(filnavn)) ); Ved hver kall på snextoken( ) vil skanneren o fjerne kommentarer o hoppe over blanke or dokumentasjon: o finne neste symbol Symbolet plasseres i sttype, og kan være: o _WORD for navn (på variable, funksjoner, ) Navnet ligger i ssval o _NUMBER for tall (heltall eller flyt-tall) allets verdi ligger i snval o _EO når det ikke er flere symboler igjen o Hvis vi har et symbol (+, <=, ), ligger selve symbolet i sttype Streamokenizer kan konfigureres til ulike språk nextoken() kan gi IOExeption, så programmet må fange opp dette Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-7 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-8 En grammatikk for eksempelspråket L <program> <setningsliste> <setningsliste> <setning> + <setning> <tilordning> <inputsetning> <outputsetning> <tilordning> <variabel> = <variabel> <operator> <operand> <operator> + - <operand> <variabel> <nummer> <inputsetning>? <variabel> <outputsetning>! <variabel> <variabel> v <siffer> <siffer> <nummer> <siffer> + Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-9 Eksempel: Symbolene i et L-program import javaio*; lass Lsymbols { publi stati void main(string[] args)throws Exeption { Streamokenizer s; String t; s = new Streamokenizer( new ilereader(new ile(args[]))) snextoken(); while (sttype!= s_eo) { swith(sttype) { ase s_word: t = word + ssval; break; ase s_number: t = number +snval; break; default: t = symbol + (har)sttype; break; Systemoutprintln( Line +slineno()+ : +t); snextoken(); Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-2
6 Eksempel: Symbolene i et L-program (forts) Parsering: Parsering or L-programmet?v v = v + v!v Å sjekke at en setning (eller et program) er syntaktisk riktig, det vil si å konstruere det tilhørende syntakstreet (I praksis bryr vi oss gjerne ikke om å faktisk konstruere syntakstreet, vi nøyer oss med å vite at vi kunne laget et hvis vi hadde hatt behov for det) gir programmet utskriften Line : symbol? Line : word v Line : word v Line : symbol = Line : word v Line : symbol + Line : word v Line 2: symbol! Line 2: word v Generelt ønsker vi å kunne konstruere treet ved å lese setningen en gang, fra venstre mot høyre Eksempelgrammatikk <uttrykk> <uttrykk> + <term> <uttrykk> <term> <term> <term> * navn <term> navn Ut fra denne grammatikken skal vi se på parsering av setningen: navn * navn + navn Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-2 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-22 op-down parsering Bottom-up parsering Her konstrueres treet ovenfra og ned, det vil si at vi starter med startsymbolet i roten, og så forsøker å avlede den aktuelle setningen ut fra dette: Her konstruerer vi treet nedenfra og opp Vi starter da med å finne noe i setningen som tilsvarer høyresiden i en produksjon, og reduserer denne delsetningen til det tilhørende metasymbolet Målet er da å redusere seg tilbake til startsymbolet: <uttrykk> <uttrykk> + <term> <uttrykk> <term> <term> <term> * navn <term> navn URYKK <uttrykk> <uttrykk> + <term> <uttrykk> <term> <term> <term> * navn <term> navn URYKK navn * navn + navn navn * navn + navn Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-23 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-24
7 LL()-parsering LL()-parsering er en top-down strategi der vi foretar en venstreavledning fra startsymbolet Reursive desent o il hvert metasymbol svarer en metode o Metoden tar seg av det ene metasymbolet, men kan kalle andre metoder o Når metoden kalles, skal skanneren inneholde første symbol i den aktuelle produksjonen (for syntaktisk korrekt setning) o Når metoden er ferdig, skal skanneren inneholde første symbol etter den leste teksten Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-25 Syntaksanalyse av L Siden vi vil sjekke L-program tegn for tegn, kan vi bruke en meget enkel skanner: Hvert kall på read( ) legger et nytt tegn i import javaio*; lass Sanner { stati har symbol = ' '; stati boolean eof = false; stati ilereader fil; stati void read() { int ; try { do { = filread(); if ( < ) throw new IOExeption(); symbol = (har); while (CharaterisWhitespae(symbol)); ath (IOExeption e) { eof = true; symbol = ' '; Sanner(ileReader f) { fil = f; Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-26 import javaio*; lass Lparser { stati Sanner s; Parser for L ( av 6) publi stati void main(string[ ] args) { // Initialisering av skanneren: try { s = new Sanner( new ilereader(new ile(args[]))); sread(); ath (ilenotoundexeption e) { Systemoutprintln("Kan ikke lese " + args[]); Systemexit(); // "program" er startsymbolet i L-grammatikken program(); Reursive desent for L or et metasymbol med bare en mulig produksjon (skrevet i klassisk BN), er det lett å lage den tilhørende metoden: o or hvert grunnsymbol i høyresiden: Sjekk at symbolet i skanneren er lik dette grunnsymbolet o or hvert metasymbol i høyresiden: Kall metasymbolets metode Hjelpemetode o Vi bruker en hjelpemetode: lessymbol(har ) som sjekker om gjeldende symbol (i ssymbol) er lik, og leser inn neste symbol ved et kall på sread( ) Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-27 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-28
8 <program> <setningsliste> stati void program() { setningsliste(); Parser for L (2 av 6) if (!seof) { Systemoutprintln("ull etter programslutt!"); Systemexit(); <tilordning> <variabel> = <variabel> <operator> <operand> stati void tilordning() { variabel(); lessymbol('='); variabel(); operator(); operand(); Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-29 Parser for L (3 av 6) <inputsetning>? <variabel> stati void inputsetning() { lessymbol('?'); variabel(); <outputsetning>! <variabel> stati void outputsetning() { lessymbol('!'); variabel(); <variabel> v <siffer> stati void variabel() { lessymbol('v'); siffer(); Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-3 Alternative høyresider or et metasymbol med alternative høyresider må vi beregne startmengden til hver produksjon Startmengden er de grunnsymboler som kan stå først i en setning avledet fra høyresiden i denne produksjonen Hvis de ulike produksjonene til et metasymbol har disjunkte startmengder, kan vi sjekke klarsymbolet (det siste symbolet lest av skanneren) for å finne ut hvilken produksjon vi skal velge Vi trenger da en hjelpemetode til: sjekksymbol(har ) som sjekker om gjeldende symbol (i ssymbol) er lik (uten å lese inn nytt symbol) Parser for L (4 av 6) <setning> <tilordning> <inputsetning> <outputsetning> stati void setning() { if (sjekksymbol('v')) { tilordning(); else if (sjekksymbol('?')) { inputsetning(); else if (sjekksymbol('!')) { outputsetning(); <operator> + - stati void operator() { if (sjekksymbol('+')) { lessymbol('+'); else if (sjekksymbol('-')) { lessymbol('-'); Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-3 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-32
9 Parser for L (5 av 6) <operand> <variabel> <nummer> stati void operand() { if (sjekksymbol('v')) { variabel(); else { nummer(); <siffer> Med litt effektivisering får vi: stati void siffer() { if (ssymbol >= '' && ssymbol <= '9') { sread(); else { Systemoutprintln("orventet siffer, fikk " + ssymbol); Systemexit(); Parser for L (6 av 6) <setningsliste> <setning> + stati void setningsliste() { setning(); while (sjekksymbol('v') sjekksymbol('?') sjekksymbol('!')) { setning(); <nummer> <siffer>+ Også denne er litt effektivisert: stati void nummer() { siffer(); while (ssymbol >= '' && ssymbol <= '9') { siffer(); Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-33 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-34 Kompilering? Interpretering? LL()-grammatikker <inputsetning>? <variabel> stati void inputsetning() { lessymbol('?'); variabel(); Vi kan ikke lage en reursive desent -parser for alle grammatikker, de må (som vi har sett) oppfylle følgende krav: o Grammatikken må være kontekstfri, dvs kun ha ett metasymbol på venstre side // generering av kode (kompilering) eller // kall på rutiner (interpretering) o Under parseringen må vi vite hvilket alternativ vi skal velge; dvs at mengden av startsymboler (den utvidede startmengden) for hvert alternativ må være disjunkte En LL()-grammatikk er en grammatikk som oppfyller dette, og slik at vi hele tiden kan se på neste symbol (men ikke mer) for å bestemme hvilket alternativ som skal velges Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-35 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-36
10 Beregning av utvidede startmengder or å beregne de utvidede startmengdene må vi først ha beregnet tre andre mengder: Meta-til-tom-mengden Metasymboler som kan produsere den tomme setningen kompliserer ting litt, så vi beregner meta-til-tom-mengden først: Startmengden til et metasymbol: Mengden av de grunnsymbolene som kan stå først i en (del-)setning avledet fra dette metasymbolet Etterfølgermengden til et metasymbol: Mengden av de grunnsymboler som kan stå etter metasymbolet på et tidspunkt i avledningen Meta-til-tom-mengden: Mengden av de metasymboler som kan videreavledes til den tomme setning Initialisering: La meta-til-tom-mengden bestå av de metasymboler som har en tom høyreside 2 Dersom det finnes et metasymbol med en høyreside som bare består av metasymboler som er med i meta-til-tom-mengden, skal dette også inkluderes i mengden 3 Gjenta inntil meta-til-tom-mengden ikke øker mer Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-37 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-38 Startmengder Etterfølgermengder or enkelthets skyld sier vi at grunnsymboler har seg selv som startmengde Initialisering:La startmengden for hvert metasymbol være de grunnsymbolene som står først i en høyreside for dette metasymbolet o Se på en høyreside for et metasymbol M or hvert (grunn- eller meta-) symbol x i høyresiden som enten står først, eller bare har metasymboler fra meta-til-tom-mengden foran, øk startmengden til M med startmengden til x o Gjenta inntil ingen av startmengdene kan økes mer Initialisering: or hvert metasymbol, la etterfølgermengden være unionen av startmengdene til de (grunn- eller meta-) symbolene som i en eller annen høyreside står enten o o umiddelbart bak dette metasymbolet, eller bak slik at de mellomliggende symboler er metasymboler i meta-tiltom mengden 2 Hvis metasymbolet M i en høyreside til metasymbolet N enten står bakerst, eller det bak M bare står metasymboler i meta-til-tom-mengden: øk etterfølgermengden til M med etterfølgermengden til N 3 Gjenta til ingen av etterfølgermengdene kan økes mer Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-39 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-4
11 Eksempel ølgende eksempelgrammatikk er hentet fra eksamen 996, oppgave a: U' U A B + A ( U ) B * Beregn og angi meta-til-tom mengden, og start- og etterfølgermengden til hvert av metasymbolene'' Utvidede startmengder - endelig! or en gitt produksjon består denne mengden av alle symbolene i startmengden til de symbolene i høyresiden som enten står først eller bare har metasymboler i meta-til-tom-mengden foran seg Hvis høyresiden er tom eller bare består av meta-til-tom-mengden, inngår også symbolene i etterfølgermengden til produksjonens venstreside Metasymbol Meta-til-tom Start Etterfølger U U A B Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-4 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-42 Eksempel Vi ser igjen på grammatikken: U' U A B + A ( U ) B * Avgjør om dette er en LL()-grammatikk Begrunn svaret Hva hvis en grammatikk ikke er LL()? Vi skal se på to standard-teknikker for å skrive om en grammatikk til å bli LL() Ikke-disjunkte startmengder jerning av venstrerekursjon Produksjon U' U A B U + A ( U ) A B * B Utvidet startmengde Disjunkt? Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-43 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-44
12 Ikke-disjunkte startmengder Ofte vil to alternative startsider kunne begynne på samme måte (ha overlappende utvidede startmengder), men forskjellig avslutning, som i: <setning> <uttrykk> + <term> <uttrykk> * <term> Vi kan her innføre et nytt metasymbol som skal stå for den varierende delen: <setning> <uttrykk> <xsetning> <xsetning> + <term> * <term> jerning av venstrerekursjon <uttrykk> <uttrykk> + <term> <term> Strategi: Skriv om til utvidet BN: <uttrykk> <term> { + <term> * ør tilbake til klassisk BN, men nå med høyrerekursjon (og eventuelt ekstra metasymboler): <uttrykk> <term> <xterm> <xterm> + <term> <xterm> Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-45 Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-46 Andre grammatikker LL(n) LR() SLR Simple LR LALR Se kompendium 47 Ikke pensum! Institutt for informatikk 2 september 22 IN2-Syntaksanalyse-47
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
DetaljerINF3110 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
DetaljerRepetisjon. 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
DetaljerSyntax/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
DetaljerSyntax/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
DetaljerDagens 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.
DetaljerLitt 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
DetaljerDagens tema: Regulære språk og uttrykk
IN 2 Programmeringsspråk Dagens tema: Regulære språk og uttrykk Ulike typer språk (Kompendium 47: 23) Hvorfor er regulære uttrykk så interessante? Ulike representasjoner av regulære språk (Kompendium 47:
DetaljerHva er syntaks? En overskrift i en norsk avis: Dagens tema Grundig repetisjon og utdyping:
Hva er syntaks? En overskrift i en norsk avis: Fanger krabber så lenge de orker Dagens tema Grundig repetisjon og utdyping: Er det i C lov å skrive for (;;) { while () { Syntaks kontra semantikk for å
DetaljerDagens tema Grundig repetisjon og utdyping: Syntaks kontra semantikk
Dagens tema Grundig repetisjon og utdyping: Syntaks kontra semantikk Regulære uttrykk og automataer Ulike typer språk Ulike representasjoner av regulære språk Endelige tilstandsmaskiner (FSM-er) Deterministiske
DetaljerKap.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å
DetaljerKap. 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
DetaljerINF2100. Oppgaver uke 40 og
INF2100 Oppgaver uke 40 og 41 2014 For å få trening i å programmere en parser, skal vi aller først gjøre det for et veldig enkelt programmeringsspråk: E. Dette språket består av uttrykk med de fire vanligste
DetaljerHvor 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
DetaljerINF2100. Oppgaver 9. oktober 2012 C 100 X 10
INF2100 Oppgaver 9. oktober 2012 Oppgave 1 Vi skal se på et meget enkelt språk E som består av uttrykk med de fire vanligste regneartene +,, * og /; grammatikken 1 ser du i figur 1 på neste side. Tallkonstanter
DetaljerKap. 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,
DetaljerDagens 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
DetaljerINF2100. Oppgaver 23. og 24. september 2010
INF2100 Oppgaver 23. og 24. september 2010 Oppgave 1 Vi skal se på et meget enkelt språk E som består av uttrykk med + og ; grammatikken ser du i figur 1 på neste side. Tallkonstanter består av bare ett
DetaljerINF5110, 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
DetaljerINF5110 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.
DetaljerINF 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
DetaljerINF 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
DetaljerKontekstfrie 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
DetaljerINF5110, 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
DetaljerINF / 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
DetaljerKap. 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
DetaljerINF /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
DetaljerLøsningsforslag til eksamen i IN 211 høsten 2001
Løsningsforslag til eksamen i IN 211 høsten 21 Ragnhild Kobro Runde 6. desember 21 Oppgave 1: Kjøresystemer 1a: Statisk og dynamisk link SL a = 2 a = 5 b = 3 DL main Q R S 1b: Parameteroverføring 1. Verdioverføring:
DetaljerINF2100. Oppgaver 26. september til 1. oktober 2007
INF2100 Oppgaver 26. september til 1. oktober 2007 1 Språket Denne uken skal vi implementere en utvidelse av språket fra forrige ukes oppgave. Syntaksen er vist i figur 1 på neste side og betydning er
DetaljerKap. 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
DetaljerKap.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
DetaljerDagens 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
DetaljerDagens 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
DetaljerINF2100. Oppgaver 6. og 11. oktober 2011 C 100 X 10
INF2100 Oppgaver 6. og 11. oktober 2011 Oppgave 1 Vi skal se på et meget enkelt språk E som består av uttrykk med de fire vanligste regneartene +,, * og /; grammatikken 1 ser du i figur 1 på neste side.
DetaljerDagens 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
DetaljerINF5110 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
DetaljerOm oppgaveteksten på noe punkt er uklar eller upresis, kan du gjøre egne presiseringer. Formulér i så fall disse tydelig i oppgavebesvarelsen din.
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 211 Programmeringsspråk Eksamensdag: 6. desember 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 9 sider. Vedlegg: Ingen
DetaljerINF5110 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
DetaljerKap. 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
DetaljerKompilering 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
DetaljerKap. 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
DetaljerDagens 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
DetaljerKap.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
DetaljerKap. 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
DetaljerKap. 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
DetaljerKap. 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
DetaljerSkanning del I INF /01/15 1
Skanning del I INF 5110-2015 21/01/15 1 Skanning: innhold (begge forelesningene) Hva gjør en skanner? Input: Programteksten. Output: Ett og ett token fra programteksten (sekvensielt). Regulære uttrykk/definisjoner.
DetaljerDagens 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
DetaljerProgrammeringsspråket C
Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger
DetaljerTre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm
Mer om easyio Mer om forgreninger Løkker 7. september 2004 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 4 1 Tre måter å lese fra terminal Først:
DetaljerHjemmeeksamen 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,
DetaljerHva 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
DetaljerDel 3: Evaluere uttrykk
Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret
DetaljerUNIVERSITETET 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
DetaljerKort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon
Kort om meg INF1000 Uke 2 Variable, enkle datatyper og tilordning Fredrik Sørensen Kontor: Rom 4311-NR, Informatikkbygget Brukernavn/e-post: fredrso@ifi.uio.no Utdanning: Dataingeniør, 2000 Cand.Scient,
DetaljerOversikt 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
DetaljerKap. 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
DetaljerOppgaver 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 + - * /
DetaljerHovedstoffet 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
DetaljerSkanning del I. Kapittel 2 INF 3110/ INF
Skanning del I Kapittel 2 18.01.2013 1 Skanning: innhold (begge forelesningene) Hva gjør en skanner? Input: programteksten. Output: Ett og ett token fra programteksten (sekvensielt). Regulære uttrykk/definisjoner.
DetaljerTypisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord
Scanning-I Kap. 2 Hovedmål Gå ut fra en beskrivelse av de enkelte leksemer (tokens), og hvordan de skal deles opp i klasser Lage et program (funksjon, prosedyre, metode) som leverer ett og ett token, med
DetaljerDagens 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:
DetaljerScanning - I Kap. 2. Hva scanneren gjør
Scanning - I Kap. 2!! Hovedmål! Gå ut fra en beskrivelse av de enkelte tokens, og hvordan de skal deles opp i klasser! Lage et program (funksjon, prosedyre, metode) som leverer ett og ett token, med all
DetaljerTypisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord
Scanning - I Kap. 2 Hovedmål Gå ut fra en beskrivelse av de enkelte tokens, og hvordan de skal deles opp i klasser Lage et program (funksjon, prosedyre, metode) som leverer ett og ett token, med all nødvendig
DetaljerINF1000 (Uke 15) Eksamen V 04
INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a
DetaljerINF1000 (Uke 15) Eksamen V 04
INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a
DetaljerSyntaksanalyse. 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å
DetaljerINF1000 (Uke 5) Mer om løkker, arrayer og metoder
INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse
DetaljerKap. 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
DetaljerTOD063 Datastrukturer og algoritmer
TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage
DetaljerINF2820 Datalingvistikk V2012
INF2820 Datalingvistikk V2012 Jan Tore Lønning KONTEKSTFRIE GRAMMATIKKER OG PARSING 24. februar 2012 2 1 I dag Kontekstfrie grammatikker, avledninger og trær (delvis repetisjon) Parsing: ovenifra og ned
DetaljerINF2820 Datalingvistikk V2012. Jan Tore Lønning
INF2820 Datalingvistikk V2012 Jan Tore Lønning KONTEKSTFRIE GRAMMATIKKER OG PARSING 23. februar 2012 2 I dag Kontekstfrie grammatikker, avledninger og trær (delvis repetisjon) Parsing: ovenifra og ned
DetaljerProgrammering Høst 2017
Programmering Høst 2017 Tommy Abelsen Ingeniørfag - Data Innledning Dette er et dokument med litt informasjon og eksempler om kontrollstrukturer, samt oppgaver til forskjellige kontrollstrukturer. Spør
DetaljerDagens 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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF3110/4110 Programmeringsspråk Eksamensdag: 2. desember 2003 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 7 sider. Vedlegg:
DetaljerINF 1000 høsten 2011 Uke september
INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus 1 INF1000 undervisningen Forelesningene: Første
DetaljerObligatorisk oppgave 1 INF1020 h2005
Obligatorisk oppgave 1 INF1020 h2005 Frist: fredag 7. oktober Oppgaven skal løses individuelt, og må være godkjent for å kunne gå opp til eksamen. Før innlevering må retningslinjene Krav til innleverte
DetaljerINF1000 undervisningen INF 1000 høsten 2011 Uke september
INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 211 Programmeringsspråk Eksamensdag: 4. desember 2002 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 10 sider. Vedlegg: Tillatte
DetaljerINF5110, 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
DetaljerKontekstfrie 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
DetaljerBottom up parsering (nedenfra-og-opp) Kap. 5 del 1 Intro til parsering nedenfra-og-opp samt LR(0) og SLR(1) grammatikker INF5110 v2006
ottom up parsering (nedenfra-og-opp) Kap. 5 del 1 Intro til parsering nedenfra-og-opp samt LR(0) og LR(1) grammatikker INF5110 v2006 rne Maus, Ifi UiO t 1 t 2 t 3 t 7 t 4 t 5 t 6 LR-parsering og grammatikker
DetaljerINF 2820 V2016: Obligatorisk innleveringsoppgave 3
INF 2820 V2016: Obligatorisk innleveringsoppgave 3 Besvarelsene skal leveres i devilry innen torsdag 21.4 kl 18.00 Filene det vises til finner du i o /projects/nlp/inf2820/cfg Oppgave 1: Shift-reduce-effektivisering
DetaljerUNIVERSITETET 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
DetaljerINF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær:
TRÆR Vi skal i denne forelesningen se litt på ulike typer trær: Generelle trær (kap. 4.1) Binærtrær (kap. 4.2) Binære søketrær (kap. 4.3) Den siste typen trær vi skal behandle, B-trær (kap. 4.7) kommer
DetaljerHovedstoffet 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
DetaljerVelkommen 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:
DetaljerSemantisk 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)
Detaljer2/24/2012. Context-Free Grammars. I dag. Avledning. Eksempel: grammar1 PARSING. Jan Tore Lønning
INF2820 Datalingvistikk V2012 Jan Tore Lønning KONTEKSTFRIE GRAMMATIKKER OG PARSING 24. februar 2012 2 Context-Free Grammars Det mest sentrale verktøyet i datalingvistikk 24. februar 2012 3 2/24/2012 Speech
DetaljerIN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
DetaljerINF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen
INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og
DetaljerBeskrivelse 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
DetaljerForelesning inf Java 4
Forelesning inf1000 - Java 4 Tema: Løkker Arrayer Metoder Ole Christian Lingjærde, 12. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Repetisjon: arrayer Deklarere og opprette
DetaljerKap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) 16/ Stein Krogdahl Ifi, UiO
Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) INF5110 16/2-2011 tein Krogdahl Ifi, UiO 1 Bottom up parsering (nedenfra-og-opp) B B t 1 t 2 t 3 t 7 t 4 t 5 t 6 LR-parsering og grammatikker:
Detaljer2/22/2011. Høyre- og venstreavledninger. I dag. Chomsky-normalform (CNF) Chomsky-normalform (CNF) PARSING. Jan Tore Lønning & Stephan Oepen
INF2820 Datalingvistikk V2011 Jan Tore Lønning & Stephan Oepen KONTEKSTFRIE GRAMMATIKKER OG PARSING 22. februar 2011 2 Høyre- og venstreavledninger Til hvert tre svarer det mange avledninger. For kontekstfrie
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
Detaljeri=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4
Forelesning inf - Java 4 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I
DetaljerFiktiv eksamensbesvarelse IN 211 høsten 2001
Fiktiv eksamensbesvarelse IN 211 høsten 2001 Kandidat 1 6. desember 2001 Oppgave 1: Kjøresystemer 1a: Statisk og dynamisk link egne aktiveringsstakken før kallet på P 1b: Parameteroverføring 1. Verdioverføring:
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen : 09.00
DetaljerOversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program
Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning
Detaljer