Modellering av kommuniserende systemer i Maude
|
|
- Stine Isaksen
- 7 år siden
- Visninger:
Transkript
1 Modellering av kommuniserende systemer i Maude Endelig: distribuerte systemer objekt-orientering kommunikasjon synkrone og asynkrone objekter INF3230/4230 Forelesning 11 p. 1/34
2 Siste nytt fra WRLA 04 Barcelona: Konferansen for omskrivingslogikk/maude Maude versjon 2.1 bedre feilmeldinger! fikset endel groms/bugs nyttig polymorfi: Kan for eksempel ha lister av hva-som-helst på en grei måte. Nytt attributt for konstuktører: poly debugger som virker! omnavning av sorter/operasjoner ved inklusjon av moduler divisjon mm. på rasjonale tall kan bruke tab (som i Unix) i Maudes kommandolinje. Versjon 2.1 er lagt opp (kommando: maude). Tidligere versjoner er tilgjengelige som maude1, maude2 og maude INF3230/4230 Forelesning 11 p. 2/34
3 Distribuerte objekter i Maude Tema i dag: objekter og meldinger OO-støtte: i (core) Maude og enda bedre i Full Maude klasser og regler søk problemer i Full Maude (men Full Maude 2.1 skal være bedre!) eksempel: personer eksempel: spisende filosofer INF3230/4230 Forelesning 11 p. 3/34
4 Klasser og objekter Klasse: verdier/attributter metoder Objekt: instans av en klasse navn/adresse/objektidentifikator INF3230/4230 Forelesning 11 p. 4/34
5 Objekter i Maude: Hovedidé Et objekt (i en tilstand) kan representeres av en term der < O : C att 1 : val 1,..., att n : val n > O er et objektnavn/objektreferanse/objektidentifikator C er klassen til objektet O att 1 til att n er attributtene til objektet (og klassen C) val 1 til val n er verdien til attributtene att 1 til att n i tilstanden Eksempel: < "Fisk" : Person age: 60, status: married > INF3230/4230 Forelesning 11 p. 5/34
6 Klassedeklarasjoner i (core) Maude Anta gitt en sort Oid av objektidentifikatorer Da kan en klasse C, som har instanser på formen < O : C att 1 : val 1,..., att n : val n > deklareres sort Oid Object. op <_: C att 1 :_,..., att n :_> : Oid s 1... s n -> Object [ctor]. der s i er sorten til attributt att i Eksempel: sort Oid Object. subsort String < Oid. op <_: Person age:_, status:_> : Oid Nat Status -> Object [ctor]. INF3230/4230 Forelesning 11 p. 6/34
7 Konfigurasjoner En tilstand i et distribuert system modelleres som en mengde eller multisett av objekter og meldinger som flyter rundt i multisettet ( suppen ): sorts Object Msg Configuration. subsort Object Msg < Configuration. op none : -> Configuration [ctor]. op : Configuration Configuration -> Configuration [ctor assoc comm id: none]. Eksempel: En term < "Fisk" : Person age: 60, status: married > < "Chomsky" : Person age: 74, status: married > er en term av sort Configuration INF3230/4230 Forelesning 11 p. 7/34
8 Metoder (1) Metoder modelleres av omskrivningsregler: var X : Oid. var N : Nat. var S : Status. rl [birthday] : < X : Person age: N, status: S > => < X : Person age: s N, status: S >. INF3230/4230 Forelesning 11 p. 8/34
9 Metoder (2) Ved assoc og comm og Kongruens har vi at < "Fisk" : Person age: 60, status: married > < "Chomsky" : Person age: 74, status: married > < "Villepin" : Person age: 55, status: married > omskrives til < "Fisk" : Person age: 60, status: married > < "Chomsky" : Person age: 75, status: married > < "Villepin" : Person age: 55, status: married > INF3230/4230 Forelesning 11 p. 9/34
10 Parallellitet Vi kan gjøre en parallell omskrivning, slik at < "Fisk" : Person age: 60, status: married > < "Chomsky" : Person age: 74, status: married > < "Villepin" : Person age: 55, status: married > kan også omskrives til < "Fisk" : Person age: 61, status: married > < "Chomsky" : Person age: 75, status: married > < "Villepin" : Person age: 56, status: married > i ett parallelt steg (Kongruens på de lokale aksjonene mht ) I et distribuert system kan et objekt tilsvare en komponent i det distribuerte systemet INF3230/4230 Forelesning 11 p. 10/34
11 Flere objekter i samme regel (1) rl [forlovelse] : < X : Person age: N, status: single > < X : Person age: N, status: single > => < X : Person age: N, status: engaged(x ) > < X : Person age: N, status: engaged(x) >. To objekter i suppen kommer sammen Kalles ofte synkron kommunikasjon (handshake) fordi deltagerne må møtes, og kan ikke gjøre noe annet i et slikt steg. INF3230/4230 Forelesning 11 p. 11/34
12 Eksempel: Flere objekter i samme regel (2) < "Imtiaz" : Person age: 30, status: single > < "Peter" : Person age: 29, status: single > < "Maiken" : Person age: 28, status: single > kan omskrives til < "Imtiaz" : Person age: 30, status: engaged("maiken") > < "Peter" : Person age: 29, status: single > < "Maiken" : Person age: 28, status: engaged("imtiaz") > siden en konfigurasjon er et multisett med assoc og comm INF3230/4230 Forelesning 11 p. 12/34
13 Meldinger (1) En tilstand er en suppe av objekter og meldinger meldinger blir sendt ut i suppen og kan senere bli lest derfra asynkron kommunikasjon Eksempel: ønske om separasjon: op separation : Oid -> Msg. rl [init-separation] : < X : Person age: N, status: married(x ) > => < X : Person age: N, status: separated(x ) > separate(x ). INF3230/4230 Forelesning 11 p. 13/34
14 Meldinger (2) Eksempel: < "JR" : Person age: 50, status: married("sue Ellen") > < "Bobby" : Person age: 47, status: married("pam") > < "Pam" : Person age: 40, status: married("bobby") > < "Sue Ellen" : Person age: 46, status: married("jr") > kan omskrives til < "JR" : Person age: 50, status: married("sue Ellen") > < "Bobby" : Person age: 47, status: married("pam") > < "Pam" : Person age: 40, status: married("bobby") > < "Sue Ellen" : Person age: 46, status: separated("jr") > separate("jr") Husk at konfigurasjonen (suppen) er assoc og comm! INF3230/4230 Forelesning 11 p. 14/34
15 Lese/konsumere melding: Meldinger (3) rl [sep2] : separate(x) < X : Person age: N, status: married(x ) > => < X : Person age: N, status: separated(x ) >. Meldingen eksisterer ikke etter transisjonen: tilstanden på forrige slide går derfor til < "JR" : Person age: 50, status: separated("sue Ellen") > < "Bobby" : Person age: 47, status: married("pam") > < "Pam" : Person age: 40, status: married("bobby") > < "Sue Ellen" : Person age: 46, status: separated("jr") > INF3230/4230 Forelesning 11 p. 15/34
16 Meldingsutveksling Ved alteret: ops marry? yes no : Oid -> Msg [ctor]. rl [ask] : < X : Person age: N, status: engaged(x ) > => < X : Person age: N, status: engaged(x ) > marry?(x ). rl [yes] : marry?(x) < X : Person age: N, status: engaged(x ) > => < X : Person age: N, status: married(x ) > yes(x ). rl [no] : marry?(x) < X : Person age: N, status: engaged(x ) > => < X : Person age: N, status: single > no(x ). Pluss regler for mottakelse av yes og no meldinger INF3230/4230 Forelesning 11 p. 16/34
17 Skape objekter Barn født til ektepar: crl [birth] : < X : Person age: N, status: married(x ) > => < X : Person age: N, status: married(x ) > < X + " jr." : Person age: 0, status: single > if N > 15 and N < 55 Eksempel: < "Zeus" : Person age: 800, status: married("hera") > < "Hera" : Person age: 20, status : married("zeus") > => < "Zeus" : Person age: 800, status: married("hera") > < "Hera" : Person age: 20, status : married("zeus") > < "Zeus jr." : Person age: 0, status: single > INF3230/4230 Forelesning 11 p. 17/34
18 Fjerne objekter rl [death] : < X : Person age: N, status: S > => none. Eksempel: < "Gilgamesh" : Person age: 50, status: married > < "Enkidu" : Person age: 30, status: single > => < "Gilgamesh" : Person age: 50, status: married > Objekter kan både skapes og forsvinne i samme regel etc. INF3230/4230 Forelesning 11 p. 18/34
19 Full Maude (1) Full Maude er en prototype på et OO interface i Maude Vi så at plain (core) Maude kan brukes til å modellere OO Full Maude gir syntaktisk støtte til å definere klasser subklasser meldinger mindre regler Likevel, dette er en prototype: noen feil/mangler dårlige feilmeldinger ikke alltid så hyggelig å bruke... men kan likevel benyttes for OO Full Maude 2.1 skal være mye bedre! INF3230/4230 Forelesning 11 p. 19/34
20 Full Maude (2) Full Maude startes ved å lese inn filen full-maude.maude enten ved å gi kommandoen maude full-maude.maude eller ved å ha en linje in full-maude.maude i din Maude-fil Alle Full Maude moduler og kommandoer omkranset av parenteser omod... endom for objekt-orienterte moduler (omod X is... endom) (rew...) (search...) men in fil.maude INF3230/4230 Forelesning 11 p. 20/34
21 Klasser i Full Maude Importerer modulen CONFIGURATION i alle omod er Klassedeklarasjon: class C att 1 : s 1,..., att n : s n. Eksempel: Klasse class Person age : Nat, status : Status. Eksempel: Term < "Peter" : Person age : 33, status : single > Merk blank før og etter kolon INF3230/4230 Forelesning 11 p. 21/34
22 Subklassedeklarasjon: Subklasser i Full Maude class B att 1 : s 1,..., att k : s k. subclass B < C. Subklassen B arver alle attributtene til superklassen C og alle reglene til C Kan ha ha multippel arv: subclass B < C D E. Merk: ingen regeloverkjøring for subklasser Meldinger kan deklareres med nøkkelordet msg : msg sep : Oid -> Msg. INF3230/4230 Forelesning 11 p. 22/34
23 Regelformen i Full Maude Attributter som ikke får ny verdi kan utelates fra høyresiden Attributter som ikke influerer på den nye tilstanden kan utelates i venstresiden Rekkefølgen på attributtene er vilkårlig crl [engage] : < X : Person age : N, status : single > < X : Person age : N, status : single > => < X : Person status : engaged(x ) > < X : Person status : engaged(x ) > if N > 15 and N > 15. rl [death] : < X : Person > => none. rl [birthday] : < X : Person age : N > => < X : Person age : s N >. INF3230/4230 Forelesning 11 p. 23/34
24 Søk i Full Maude Søk i Full Maude klarer ikke such that-betingelser! Etter spesifikasjon: gi kommandoen (show all.) til Full Maude cut-and-paste resultatet til (core) Maude og kjør søket der stygt! Søk uten betingelser går bra i Full Maude men man kan ikke skrive ut stien INF3230/4230 Forelesning 11 p. 24/34
25 Spisende filosofer Klassisk problem for å illustrere vranglås og vrangløp mellom konkurrerende prosesser 5 filosofer, 5 spisepinner, 1 bolle sleipe dumplings En filosof tenker, er sulten, spiser, tenker... i en evig løkke En filosof må ha sin egen og naboens spisepinne for å kunne spise Kan noen filosof sulte ihjel? Kan alle filosofer sulte ihjel? INF3230/4230 Forelesning 11 p. 25/34
26 En filosof er en term Modellering av filosofer < i : Philosopher state : s, noofsticks : j, noofeats : k > der i er filosof-nummeret, j er antallet pinner denne filosofen har nå, og k er antall ganger filosofen har spist: class Philosopher state : State, noofsticks : Nat, noofeats : Nat. subsort Nat < Oid. *** Object names are numbers! sort State. ops thinking hungry eating : -> State [ctor]. INF3230/4230 Forelesning 11 p. 26/34
27 Modellering av spisepinne En spisepinne kan f eks modelleres av en melding som deklareres på følgende måte: msg chopstick : Nat -> Msg. (Man kunne alternativt la et objekt modellere en spisepinne) INF3230/4230 Forelesning 11 p. 27/34
28 Initialtilstand Initialtilstanden er alltid den samme: op initstate : -> Configuration. eq initstate = chopstick(1) chopstick(2) chopstick(3) chopstick(4) chopstick(5) < 1 : Philosopher state : thinking, noofsticks : 0, noofeats : 0 > < 2 : Philosopher state : thinking, noofsticks : 0, noofeats : 0 > < 3 : Philosopher state : thinking, noofsticks : 0, noofeats : 0 > < 4 : Philosopher state : thinking, noofsticks : 0, noofeats : 0 > < 5 : Philosopher state : thinking, noofsticks : 0, noofeats : 0 >. INF3230/4230 Forelesning 11 p. 28/34
29 Regler (hungry) En tenkende filosof blir alltid sulten: vars I J K : Nat. rl [hungry] : < I : Philosopher state : thinking > => < I : Philosopher state : hungry >. INF3230/4230 Forelesning 11 p. 29/34
30 Regler (grabfirst) En sulten filosof plukker opp sin første pinne: crl [grabfirst] : chopstick(j) < I : Philosopher state : hungry, noofsticks : 0 > => < I : Philosopher state : hungry, noofsticks : 1 > if I can use stick J. op right : Nat -> Nat. *** The right chopstick index. eq right(i) = if I == 5 then 1 else I + 1 fi. op _can use stick_ : Nat Nat -> Bool. eq I can use stick J = (I == J) or (J == right(i)). INF3230/4230 Forelesning 11 p. 30/34
31 Regler (grabsecond) Plukke opp andre pinne og begynne å spise: crl [grabsecond] : chopstick(j) < I : Philosopher noofsticks : 1, noofeats : K > => < I : Philosopher state : eating, noofsticks : 2, noofeats : K + 1 > if I can use stick J. INF3230/4230 Forelesning 11 p. 31/34
32 Regler (stopeating) En mett filosof slutter spising: rl [stopeating] : < I : Philosopher state : eating > => < I : Philosopher state : thinking, noofsticks : 0 > chopstick(i) chopstick(right(i)). INF3230/4230 Forelesning 11 p. 32/34
33 Kan alle sulte? Maude> (search [1] initstate =>! C:Configuration.) Solution 1 C:Configuration <- < 1 : Philosopher noofeats : 0, noofsticks : 1, state : hungry > < 2 : Philosopher noofeats : 0, noofsticks : 1, state : hungry > < 3 : Philosopher noofeats : 0, noofsticks : 1, state : hungry > < 4 : Philosopher noofeats : 0, noofsticks : 1, state : hungry > < 5 : Philosopher noofeats : 0, noofsticks : 1, state : hungry > Det finnes tydeligvis en tilstand hvorfra ingen filosof kan spise videre. I denne tilstanden har enhver filosof rappet til seg én spisepinne og venter på en annen ledig pinne... INF3230/4230 Forelesning 11 p. 33/34
34 Variasjoner av forbedringer Ta begge pinnene på en gang Nøkler: 4 nøkler på bordet, en filosof må ha nøkkel (glass) før hun kan be om pinner, og legger fra seg nøkkelen sammen med pinnene. Dørvakt som ikke lar mer enn 4 filosofer være ved bordet samtidig ordning av pinnene...må ta minste pinne først.... INF3230/4230 Forelesning 11 p. 34/34
INF 3230/4230 Forelesning 9: Omskrivningslogikk
27.3.2006 INF 3230 9 1 INF 3230/4230 Forelesning 9: Omskrivningslogikk Peter Ølveczky/Ingrid Yu Kapittel 5 og 6 Omskrivningslogikk Parallelle steg Formatering 27.3.2006 INF 3230 9 2 Midterm eksamen Midterm
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230/4230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 7. juni 2007 Tid for eksamen: 9.00 12.00
DetaljerEn Maude-modell for sikker asynkron kommunikasjon i π-kalkylen
En Maude-modell for sikker asynkron kommunikasjon i π-kalkylen Henrik Dæhli og Joakim Hjertås 23. juni 2005 Plan Problemstilling Bakgrunn Maude sikkerhet π-kalkylen og varianter av denne en Maude-modell
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 4. juni 2010 Tid for eksamen: 9.00 12.00 Oppgavesettet
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF220 Formell modellering og eksekvering av kommuniserende systemer Eksamensdag: 5. juni 2003 Tid for eksamen: 9.00 15.00 Oppgavesettet
DetaljerINF 3230/4230 Forelesning 4: Assosiativitet og kommutativitet; operasjonell semantikk
13.2.2006 INF 3230 4 1 INF 3230/4230 Forelesning 4: Assosiativitet og kommutativitet; operasjonell semantikk Peter Ølveczky Forelest av Ingrid C. Yu Innhold: attributter i Maude (særlig assoc og comm)
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230/4230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 18. mars 2005 Tid for eksamen: 13.30 16.30
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230/4230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 8. juni 2006 Tid for eksamen: 9.00 12.00
DetaljerINF 3230: Videregående kurs i formell modellering
INF 3230: Videregående kurs i formell modellering Peter Ølveczky Universitetet i Oslo 9. mai 2012 Eksekverbar Formell Modellering Modellering: lage en modell av systemdesign før implementasjon Formell:
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230/4230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 24. mars 2006 Tid for eksamen: 13.30 16.30
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 4. april 2008 Tid for eksamen: 9.00 12.00 Oppgavesettet
DetaljerRepitisjonskurs. Arv, Subklasser og Grensesnitt
Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 13. juni 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet
Detaljerclass Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
DetaljerArv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
Detaljer(MVC - Model, View, Control)
INF1010 - våren 2008 Modell - Utsyn - Kontroll (MVC - Model, View, Control) Stein Gjessing Inst. for informatikk Et bankprogram Vi skal lage et program som håndterer kontoene i en bank. En konto eies av
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)
DetaljerINF1010 våren 2008 Uke 4, 22. januar Arv og subklasser
Emneoversikt subklasser INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser Stein Gjessing Institutt for informatikk Mange flere eksempler på fellesøvelsene og neste forelesning 1 Generalisering - spesialisering
DetaljerGUI 3 JavaFX. Mer interaksjon Hvordan gi input :l programmet. INF1010 Stein Michael Storleer
GUI 3 JavaFX Mer interaksjon Hvordan gi input :l programmet INF1010 Stein Michael Storleer Innhold 1. Ta opp tråden fra sist 2. Input med TextField 3. Anonyme klasser 4. Lytte på alle noder i et grid 5.
DetaljerUKE 13 Mer UML modellering. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski
UKE 13 Mer UML modellering Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski Hva skal vi i dag? Objektorientert design - kapittel 5 og 7 UML modellering Aktivitetsdiagrammer Klassediagram Ukesoppgaver
DetaljerProgrammeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket
Programmeringsspråk for nybegynnere Krav til språket Hva om vi laget vårt eget språk til INF1000? Programmeringsspråket må være så enkelt som mulig. (Programmering er vanskelig nok som det er.) Hvilke
DetaljerUniversitetet i Oslo Institutt for informatikk. Datatyper og eksempelstudier i Creol. Nabil Mounzir Safadi. Hovedfagsoppgave
Universitetet i Oslo Institutt for informatikk Datatyper og eksempelstudier i Creol Nabil Mounzir Safadi Hovedfagsoppgave 2. mai 2005 Forord Denne hovedfagsoppgaven er en del av en sivil ingeniør-grad
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 4231 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 12. juni 2014 Tid for eksamen: 9.00 13.00 Oppgavesettet
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.
DetaljerSpesifikasjon av Lag emne
Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objekter Hva skal systemet gjøre? UML: Bruksmønstermodeller (Use Cases) o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer
DetaljerDet finnes ingenting. som kan gjøres med interface. men som ikke kan gjøres uten
Interface, Abstract Class... i-120 : H-98 2a. Abstraksjon i JAVA: 1 Det finnes ingenting som kan gjøres med interface i-120 : H-98 2a. Abstraksjon i JAVA: 2 som kan gjøres med bruk av unntak i-120 : H-98
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 12. juni 2014 Tid for eksamen: 9.00 13.00 Oppgavesettet
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
DetaljerIN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python
IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python I disse oppgavene skal vi introdusere Python, og vise hvordan vi kan jobbe med tekst i Python. Vi skal se på hva et programmeringsspråk
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
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.
DetaljerAnsvarsdrevet OO: CRC og UML Sekvensdiagrammer
Fra krav til objekter Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer INF1050--1 Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Hva skal systemet gjøre? UML: Bruksmønstermodeller (Use
DetaljerInformasjon Prøveeksamen i IN1000 høsten 2018
Prøveeksamen IN1000-INF1001-H18 Informasjon Prøveeksamen i IN1000 høsten 2018 Tid Fra tirsdag 6.11 kl. 14:15 til tirsdag 13.11 kl. 12:00 (Normal eksamenstid er 4 timer) Oppgavene Oppgave 2b og 2c er flervalgsoppgaver.
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 8. juni 2012 Tid for eksamen: 9.00 13.00 Oppgavesettet
DetaljerStatisk 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
DetaljerINF 3232/4232 Forelesning 1: Introduksjon; signaturer; grunntermer
INF 3232/4232 Forelesning 1: Introduksjon; signaturer; grunntermer Peter Ölveczky Universitetet i Oslo 16. januar 2017 Peter Ölveczky (Universitetet i Oslo) Introduksjon++ 16. januar 2017 1 / 50 Dagens
DetaljerKonstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:
Konstruktører Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver Punkt p = new Punkt(3,4); class Punkt { skjer følgende: int x, y; 1. Det settes av plass i
DetaljerAnatomien 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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 16. juni 2016 Tid for eksamen: 14.30 18.30 Oppgavesettet
DetaljerGeneriske mekanismer i statisk typede programmeringsspråk
Generiske mekanismer i statisk typede programmeringsspråk Dette stoffet er Pensum, og det er bare beskrevet her Mye her er nok kjent stoff for mange INF5110 7. mai 2013 Stein Krogdahl 1 Hvordan kunne skrive
DetaljerTwidoSuite kommunikasjon
TwidoSuite kommunikasjon TwidoSuite kursunderlag: Kommunikasjon via Modbus seriell, Ethernet, Remote link, ASCII, CanOpen og AS-i. Macroer for kommunikasjon Modbus 2 Modbus port Bruk programmeringsporten
DetaljerPlan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer
Plan Tema: Ulike arkitekturer og avbildninger 1. asynkron arkitektur med felles variable 2. synkron arkitektur med felles variable 3. distribuert arkitektur med kanal-kommunikasjon 4. program-skjemaer
DetaljerEksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus
// class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen
DetaljerINF1010 Arv. Marit Nybakken marnybak@ifi.uio.no 2. februar 2004
INF1010 Arv Marit Nybakken marnybak@ifi.uio.no 2. februar 2004 Motivasjon Arv bruker vi så vi skal slippe å skrive oss i hjel. Når vi programmerer, prøver vi gjerne å modellere en del av verden ved hjelp
DetaljerStatisk 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
DetaljerINF1000: Forelesning 7
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en
Detaljer2012 2a. C rc; void main() { rc = new C (); rc.m2(); } } INF 3110/ INF /28/13 1
2012 2a Vi tenker oss i denne oppgaven at vi har et Java-lignende språk hvor metoder kan ha lokalt definerte metoder. Dessuten kan man deklarere variable og metoder også på ytterste programnivå. Dette
DetaljerAvgjørbarhet / Uavgjørbarhet
Avgjørbarhet / Uavgjørbarhet For å kunne snakke om avgjørbarhet/uavgjørbarhet trenger vi Turingmaskiner og for å snakke om Turingmaskiner trenger vi formelle språk, og strenger og alfabeter. Pluss litt
DetaljerJAVA Oppsummering for IS-102. Even Åby Larsen
JAVA Oppsummering for IS-102 Even Åby Larsen even.larsen@hia.no 26. april 2010 Innhold 1 Innledning 3 2 Hva er et Java program 4 2.1 Kjøring av java programmer................. 4 3 Grammatikk for Java
DetaljerINF Notater. Veronika Heimsbakk 10. juni 2012
INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N
DetaljerDagens 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
DetaljerForkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen
Forkurs INF1010 Dag 1 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Tuva Kristine Thoresen (tuvakt@ifi.uio.no) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output
DetaljerProgrammering i C++ Løsningsforslag Eksamen høsten 2005
Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det
DetaljerVranglås (Deadlocks) Fag: Operativsystemer
Vranglås (Deadlocks) Fag: Operativsystemer 1 Innhold: Vranglås Vranglås Eksempler: Svensk flagg, Veikryss, spisende filosofer Betingelser for vranglås Metoder for å håndtere vranglås Tilbake til systemer
DetaljerEKSAMENSOPPGAVE. INF-1400 Objektorientert Programmering. Dato: Tirsdag 23. mai Klokkeslett: Kl 17:00-21:00. Adm. bygget, Aud.
Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: INF-1400 Objektorientert Programmering Dato: Tirsdag 23. mai 2017 Klokkeslett: Kl 17:00-21:00 Sted: Tillatte hjelpemidler: Type innføringsark
DetaljerLynkurs i shellprogrammering under Linux
Lynkurs i shellprogrammering under Linux Interaktiv bruk av shell Shell/skall er en applikasjon som lar bruker taste inn tekstlige kommandoer til Linux en og en linje om gangen (leser linjer fra stdin).
DetaljerFra krav til objektdesign
Fra krav til objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer INF1050-ansvar-1 Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Hva skal systemet gjøre? UML: Bruksmønstermodeller
DetaljerOversikt over Real-Time Maude
31.1.2007 OMS-seminar 1 Oversikt over Real-Time Maude Peter Ølveczky Basert på joint work med José Meseguer (UIUC), Marco Caccamo (UIUC), Carolyn Talcott (SRI) og Stian Thorvaldsen (ex-uio) 31.1.2007 OMS-seminar
DetaljerINF1010 våren januar. Objektorientering i Java
INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort
DetaljerINF1000: Forelesning 7. Konstruktører Static
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter
DetaljerFra sekvensielt til parallelt
Fra sekvensielt til parallelt «Sanntidprogrammering etter 34 år» Øyvind Teig senior utviklingsingeniør Autronica Fire and Security, «a UTC company» Gjesteforelesning på Høgskolen i Sør-Trøndelag (HiST)
DetaljerEtter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering
Etter uke 6 skal du Kjenne til motivasjonen for objektorientert programmering Introduksjon til objektorientert programmering INF1001 Høst 2016 Forstå hva en klasse er, og forskjellen på klasse og objekt
Detaljer1. Profiler og variabler
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Profiler og variabler Stein Meisingseth 26.05.2014 Lærestoffet er utviklet for faget IDRI3005 PowerShell 1. Profiler og variabler Resymé:
DetaljerSpesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign
Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objektdesign Hva skal systemet gjøre? UML: Bruksmønstermodeller o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer
DetaljerLæringsmål for forelesningen
Læringsmål for forelesningen Objektorientering Håndtering av unntak (eng: exceptions) Java-programmering Håndtering av unntak Exception-objekter og klasser try, catch og finally throw og throws Eclipse
DetaljerFra sekvensielt til parallelt
Fra sekvensielt til parallelt «Sanntidprogrammering etter 33 år» Øyvind Teig senior utviklingsingeniør Autronica Fire and Security, «a UTC company» Gjesteforelesning på Høgskolen i Sør-Trøndelag (HiST)
DetaljerRåd nr 1: Start nå! Det tar typisk timer å programmere Del 1 om man ikke har gjort slikt før. Dagens tema:
Dagens tema: 12 gode råd når man rammerer en kompilator Råd nr 1: Start nå! Det tar typisk 10 50 timer å rammere Del 1 om man ikke har gjort slikt før. Hvor mange timer per dag blir det? Dag Langmyhr,Ifi,UiO:
Detaljerklassen Vin må få en ny variabel Vin neste alle personvariable (personpekere) i listeklassen må byttes til Vin
INF1010 forelesning Lenkelister II Dette skrivet inneholder en oversikt over det jeg planlegger å forelese på andre forlesning om lenkelister. Det inneholder stort sett programeksempler med kommentarer
DetaljerINF Repetisjon: Hvordan bygge treet og analysere? 8. september Typisk situasjon. De problematiske syntaks-diagrammene
Dagens tema: INF 2100 8. september 2004 Mer om strukturen i treet og hvordan bygge det Testing av at navn er deklarert og brukt riktig Arbeid i gruppene neste uke: Oppgaver relevant for dette stadiet i
DetaljerLenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.
Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen. "Taher" type: String : type: :... type: : inf1010student null michael@ifi.uio.no INF1010 26. januar 2012 (uke 4) 2 class Eks01 { public
DetaljerDeadlocks og mer om concurrencymekanismer
Deadlocks og mer om concurrencymekanismer Lars Vidar Magnusson September 30, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 1 / 17 Oversikt Deadlocks 1 Deadlocks
DetaljerGjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur
Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på
DetaljerForkurs i informatikk Python. Andreas Færøvig Olsen
Andreas Færøvig Olsen andrefol@ifi.uio.no Mål Hvorfor Python? Gi en mykere start på INF1100 Komme i gang med programmering 2 3 Hva er Python? Hva er programmering? 4 Hva er Python? Hva er programmering?
DetaljerINF120: Oblig 3. Yngve Mardal Moe
Yngve Mardal Moe Mar 28, 2019 Contents 1 Hva trenger dere for denne oppgaven 3 2 Hvordan skal dere arbeide med denne oppgaven 5 3 En søkeindeks 7 4 Å slå opp i en søkeindeks 9 5 Å utvide en søkeindeks
DetaljerINF2810: Funksjonell Programmering. Mengder og lokal tilstand
INF2810: Funksjonell Programmering Mengder og lokal tilstand Stephan Oepen & Erik Velldal Universitetet i Oslo Kvinnedagen, 2013 Forrige gang 2 Dagens dont 3 Del 1 Litt mer om hierarkisk data. Representasjon
DetaljerADT og OO programmering
ADT og OO programmering I. ADT I JAVA - INTERFACE I.1 grensesnitt skal dokumenteres Javadoc I.2 bruk av interface I.3 implementasjoner av interface II. OO II.1 Arv av type og implementasjon II.2 Abstrakte
DetaljerEn Maude-modell for sikker asynkron kommunikasjon i π-kalkylen. Masteroppgave. Henrik Dæhli Joakim Hjertås
UNIVERSITETET I OSLO Institutt for informatikk En Maude-modell for sikker asynkron kommunikasjon i π-kalkylen Masteroppgave Henrik Dæhli Joakim Hjertås Mai 2005 iii Sammendrag Vi kombinerer to varianter
DetaljerINF1010 våren 2014. Arv og subklasser - del 2
INF1010 våren 2014 Onsdag 19. februar Arv og subklasser - del 2 Stein Gjessing Institutt for informatikk Dagens tema Virtuelle metoder som er det samme som Polymorfi Mer om arv / interface Mer om pekertilordninger
DetaljerIN 147 Program og maskinvare
Dagens tema Mer om C Cs preprosessor Allokering av variable Separat kompilering Programmet make Pekere i C Operasjoner på pekere Pekere og vektorer Referanseparametre Pekere til «alt» og «ingenting» Dynamisk
DetaljerOblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000
Oblig2 - obligatorisk oppgave nr 2 (av 4) i INF1000 Leveringsfrist Oppgaven må leveres senest fredag 29 september kl 1600 Viktig: les slutten av oppgaven for detaljerte leveringskrav Formål Formålet med
DetaljerIN2000:&Kravhåndtering,&modellering,&design
IN2000:&Kravhåndtering,&modellering,&design 31&januar&2019 Yngve&Lindsjørn ynglin@ifi.uio.no IN2001&'>&Kravhåndtering og modellering 1 Gode&beskrivelser&av&krav er&viktig&for kontrakt&oppdragsgiver& leverandør
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:
DetaljerEks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk
Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på
Detaljer< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»
< T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" michael@ifi.uio.no INF1010 21. februar
DetaljerINF1010 våren Arv og subklasser del 1
INF1010 våren 2016 Torsdag 4. februar Arv og subklasser del 1 Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Når du har lært om subklasser kan du programmere med: Første uke: Spesialisering
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 4232 Logikk for systemanalyse Eksamensdag: 13. juni 2017 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider. Vedlegg:
DetaljerFeilmeldinger, brukerinput og kontrollflyt
Feilmeldinger, brukerinput og kontrollflyt Skjønne hvordan et program presist utføres og forberede seg på håndtering av feil INF1000, uke2 Ragnhild Kobro Runde Programmeringskrøll Programmet vil ikke kjøre
DetaljerJentetreff INF1000 Debugging i Java
Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren ingridgg@student.matnat.uio.no 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver
DetaljerGJENNOMGANG UKESOPPGAVER 6 MER OM OBJEKTORIENTERING OG UML
GJENNOMGANG UKESOPPGAVER 6 MER OM OBJEKTORIENTERING OG UML INF1050 V16 KRISTIN BRÆNDEN DAGENS TEMA Klassediagram Aktivitetsdiagram Tilstandsdiagram Sekvensdiagram 1 Ta utgangspunkt i følgende klasser:
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
DetaljerDagens 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
DetaljerForelesning IMT mars 2011
Forelesning IMT2243 17.mars 2011 Dagens : Kvalitetssikring i systemutviklingsprosjekter Konfigurasjonsstyring Teorigjennomgang Demonstrasjon av Subversion SVN v/jon Langseth Pensum : Sommerville kap. 24.1
DetaljerBEGYNNERKURS I SPSS. Anne Schad Bergsaker 17. november 2017
BEGYNNERKURS I SPSS Anne Schad Bergsaker 17. november 2017 FØR VI BEGYNNER... LÆRINGSMÅL 1. Kjenne til og kunne navigere mellom de ulike delene/ vinduene i SPSS, og vite forskjellen på dem 2. Kunne skrive
DetaljerLSCs Live Sequence Charts
LSCs Live Sequence Charts LSCs Live Sequence Charts / INF 5160 (Dbsem) 26. spril 2005 /Slide 1 Motivasjon Disposisjon - Message Sequence Charts (MSCs): Positive og negative sider - Fremtidsvisjon Basic
DetaljerLæringsmål for forelesningen
Læringsmål for forelesningen Objektorientering Abstrakte klasser og grensesnitt, redefinering av metoder Java-programmering Arv og bruk av abstrakte klasser Eclipse Undersøke instanser i Eclipse 1 Dagens
DetaljerAnatomien 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
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,
DetaljerMed Svarforslag UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet. 3 sider (side 6, 7 og 8, rives ut, fylles ut og leveres)
Eksamen i : Med Svarforslag UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 3. juni 2009 Tid for eksamen : 14.30-17.30 Oppgavesettet er
Detaljer