I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E.1 Syntaksbeskrivelse Udtryk og Java-programmer.

Slides:



Advertisements
Lignende præsentationer
Velkommen til Softwarekonstruktion
Advertisements

Begreber og Redskaber 1 BRP.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
Objektorienteret programmering
Delphi og C++ Builder C++ Referencer og pointere.
Programmering af dynamiske websider pages/tutorials/introducing-aspnet- web-pages-2/intro-to-web-pages- programming.
Illustration fra Bogen om kræft figur 5.1.
Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation.
Buttom-up parsning: Hvor er vi Mellem- kode Kald til Runtimesys. Mellemk.- optimering Kode- generering Kode- optimering Leksikalsk- analyse Syntax- analyse.
18. Strategisk analyse af interne forhold
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
Begreber og Redskaber 1. Emner i kurset Om sprog og sprogbeskrivelse Repræsentation af tal i maskinen –Heltal, negative tal, kommatal, logiske værdier.
FEN KbP/seminar 1: Specifikationer/Notationen Q 1 Kontraktbaseret programmering: Seminar 1 Om specifikationer Algoritmenotationen Q.
Begreber og Redskaber 1. Rettelse til sidst Sidst vrøvlede jeg lidt om algoritmer: Ordet stammer fra Abu Ja’far Mohammed ibn Musa al- Khowarizm der i.
Illustration fra Bogen om kræft figur 6.1.
Illustration fra Bogen om kræft figur 7.1. Figur 7.1. Kapitel om Telomere og telomerase.
Illustration fra Bogen om kræft figur 3.1.a Figur 3.1. Første del. Kapitel om Kræft i Danmark.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
Begreber og Redskaber 1 BRP.
Begreber og Redskaber 1. Plan for kurset Formål –Give et begrebsmæssigt grundlag for programudvikling, samt overblik over udvalg af redskaber og metoder.
GP3, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 3 Vi begynder Slides ligger på hjemmesiden. Du er velkommen til.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering9B.1 Fletning.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmering1.1 Turtlemaskinen Arkitektur, instruktionssæt og eksempler.
DAIMIIntroducerende Objektorienteret Programmering1 Polymorfi og nedarvning Motivation for arv og “mange former”
Rekursion 2.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursion 2.2 Introduktion Vi har tidligere set eksempler på rekursive.
 1999, Henrik B. ChristensenIntroducerende objektorienteret programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
 Jens Bennedsen 2001Multimedie programmering10A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
 Jens Bennedsen, 2003Introducerende objektorienteret programmering Exceptions.
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
(let ((title ’(Scheme Macros)) title) Syntaktiske transformationer og en masse parenteser.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmeringAlgebra.1 Algebraiske begreber Tal, sandhedsværdier og figurer.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering2C.1 Syntaksbeskrivelse Syntaksdiagrammer og EBNF-notation.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
I o p o DAIMI, AU, Marts 1999Introducerende objektorienteret programmering5B.1 Et lille banksystem Modellering ved hjælp af UML.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering7A.1 Rekursion.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
I o p o DAIMI, AU, December 1999Introducerende objektorienteret programmering14A.1 Del, løs og kombinér.
DAIMIIntroducerende Objektorienteret Programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmering2B.1 Syntaksbeskrivelse Syntaksdiagrammer og EBNF-notation.
Positionstalsystemer Decimale og binære tal
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering6C.1 OOP – Hvorfor nu det? Funktionsorienteret versus objektorienteret systemudvikling.
I o p o DAIMI, AU, December 1999Introducerende objektorienteret programmering14B.1 Sortering.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.1 Rekursive skildpadder Supertrekanter....
DAIMIIntroducerende objektorienteret programmering1 Et lille banksystem Modellering beskrevet ved et UML klassediagram.
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
I o p o DAIMI, AU, November 1999Introducerende objektorienteret programmering9D.1 Del, løs og kombinér.
Syntaksbeskrivelse Syntaksdiagrammer og EBNF-notation.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5B.1 Sweep-algoritmer Programmering med invarianter og uden kaniner.
DAIMIIntroducerende objektorienteret programmering4D.1 Betingelsessætninger if.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
DAIMIIntroducerende objektorienteret programmering2A.1 Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
DAIMIIntroducerende objektorienteret programmering2C.1 Algebraiske begreber Tal, sandhedsværdier og figurer.
Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges.
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering7B.1 Søgning.
Illustration fra Bogen om kræft figur 8.1.
Forelæsning Uge 2 – Torsdag Java syntax og style guide Sætninger –Simple sætninger (assignment, interne og eksterne metodekald) –Sammensatte sætninger.
Forelæsning Uge 2 – Torsdag
Illustration fra Bogen om kræft figur 9.1.
Illustration fra Bogen om kræft figur 10.1.
Præsentationens transcript:

i o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E.1 Syntaksbeskrivelse Udtryk og Java-programmer

i o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E.2 Emner  Udtryk  Figurer (pointe med ‘inden i’)  Rekursion i syntaksbeskrivelser  Java-syntaks (erklæringer)  Syntaksdiagrammer  EBNF-notation  Bogens notation

i o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E.3  ( E: expression op: operator T: tal )  E ::= E op E | “(“ E “)” | T  op ::= “+” | “-” | “*” | “/”  T ::= “0” | “1” | “2” | “3” | “4” | “5” | “6” | “7” | “8” | “9” Regneudtryk og parsetræ R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17

i o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E * 9 E  E op E  E op E op E  T op E op E  3 op E op E  3 + E op E  3 + T op E  op E  * E  * T  * 9 Regneudtryk og parsetræ E EEop EE * +TT 37 T R1 R3 R11 R4 R3 R15 R16 R3 R17 9

i o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E.5 Figuroperatorer  : inde i   : til venstre for   : oven på  T inde i C til venstre for F  T  C  F   F TC Syntaks?

i o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E.6  E ::= E op E | “(“ E “)” | F  op ::= “  ” | “  ” | “  ”  F ::= “T” | “F” | “C” Figurudtryk R1 R2 R3 R4 R5 R6 R7 R8 R9

i o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E.7 T  C  F E  E op E  E op E op E  F op E op E  T op E op E  T  E op E  T  F op E  T  C op E  T  C  E  T  C  F Figurudtryk og parsetræ E EEop EE   FF TC F R1 R3 R7 R5 R3 R9 R4 R3 F R8

i o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E.8  E ::= E op E | “(“ E “)” | E “  ” F | F  op ::= “  ” | “  ” | “  ”  F ::= “T” | “F” | “C” Hvad betyder T  (C  F) ?  T  (C  F) giver ikke mening!  Skal det være syntaktisk forkert, eller syntaktisk korrekt og “bare” semantisk forkert?

i o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E.9 Java-syntaks  int x, y;  int x = 10;  Turtle t, s;  Turtle t=new Turtle();  Turtle t, s=new Turtle(), u; Erklæring af variabler kan ske på mange måder:

i o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E.10 EBNF-definition variable-declaration ::= identifier declaration-part { “,” declaration-part } “;” declaration-part ::= identifier [ initialization-part ] initialization-part ::= “=“ expression expression ::=...

i o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E.11 Test  int x, y;  int x = 10;  Date d = new Date();  Turtle t, s = new Turtle(), u;  int x = new Turtle();  Turtle t = new Date(), s = 10; Er følgende syntaktisk korrekt?