Alp ii objektorientierte programmierung sommersemester 2006
Download
1 / 14

ALP II: Objektorientierte Programmierung Sommersemester 2006 - PowerPoint PPT Presentation


  • 77 Views
  • Uploaded on

ALP II: Objektorientierte Programmierung Sommersemester 2006. Elfriede Fehr, Mohammad Al Saad. WHILE-Anweisungen: x := 0; x := x + 1; x := x – 1; while x  y do <Anweisungen> end. Befehlssatz der Registermaschine: zero i succ i pred i je i, j, m goto m.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' ALP II: Objektorientierte Programmierung Sommersemester 2006' - hogan


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Alp ii objektorientierte programmierung sommersemester 2006

ALP II: Objektorientierte ProgrammierungSommersemester 2006

Elfriede Fehr, Mohammad Al Saad


WHILE-Anweisungen:

x := 0;

x := x + 1;

x := x – 1;

while x  y do

<Anweisungen>

end

Befehlssatz der Registermaschine:

zero i

succ i

pred i

je i, j, m

goto m

Teil I: Grundlagen der BerechenbarkeitDie Programmiersprache WHILE unddie universelle Registermaschine


Übersetzung von WHILE-Programmen in Registermaschinenprogramme:Erster Schritt: Erzeugen der Symboltabelle stBeispiel für eine Symboltabelle


Zweiter schritt anwendung des bersetzungsschemas
Zweiter Schritt: Anwendung des Übersetzungsschemas (Ü) Registermaschinenprogramme

Achtung:m ist die Adresse des ersten Befehls, der zur While-Schleife gehört und

k ist die Adresse des ersten Befehls, der nicht mehr zur While-Schleife gehört.


Beispiel fakult tsfunktion
Beispiel: Fakultätsfunktion Registermaschinenprogramme

Funktionales Programm (Haskell):

f 0 = 1

f x = x * f (x - 1)

Imperatives Programm (in der Sprache WHILE):

y := 1; h:= 0;

while x ≠ h do

y := x * y;

x := x - 1;

end


Bersetzung des while programms in ein registermaschinenprogramm
Übersetzung des WHILE-Programms in ein Registermaschinenprogramm


Bersetzung von while nach java
Übersetzung von WHILE nach Java Registermaschinenprogramm

Übersetzung von Java in Bytecode analog zur Übersetzung von WHLIE

in Registermaschinenprogramme. Illustration unter

http://www.artima.com/insidejvm/applets/EternalMath.html


Ein vollst ndiges java programm
Ein vollständiges Java-Programm Registermaschinenprogramm

public class Fak {

//Aufruf: Fak x , Ausgabe: Fakultät von x = Ergebnis

//Hauptprogramm

public static void main (String[] args) {

// Deklaration aller benötigter Variablen

int x, y, h;

// Eingabe von x

x = Integer.parseInt (args[0]);

// Berechne y := Fakultät von x

y = 1;

h = x;

while (h != 0) {

y = h * y;

h = h - 1;

}

// Ausgabe des kommentierten Ergebnisses

System.out.println("Fakultät von " + x + " = " + y);

}

}


Teil ii datentypen in java syntax

Type: Registermaschinenprogramm PrimitiveType ReferenceType

PrimitiveType:

NumericType

boolean

NumericType:

IntegralType

FloatingPointType

IntegralType: one of

byte short int long char

FloatingPointType: one of

float double

James Gosling et al.:

The Java Language Specification,

sun microsystems 2005

Datentyp: PrimitiverTyp VerweisTyp

PrimitiverTyp:

NumerischerTyp

boolean

NumerischerTyp:

GanzzahligerTyp

GleitkommaTyp

GanzzahligerTyp: einer von

byte short int long char

GleitkommaTyp: einer von

float double

Teil II: Datentypen in Java Syntax


Primitive datentypen
Primitive Datentypen Registermaschinenprogramm


Arithmetische operationen erkl rt auf allen numerischen typen
Arithmetische Operationen Registermaschinenprogrammerklärt auf allen numerischen Typen


Vergleichsoperationen erkl rt auf allen numerischen typen die beiden letzten auch auf boolean
Vergleichsoperationen Registermaschinenprogramm erklärt auf allen numerischen Typen, die beiden letzten auch auf boolean


Typanpassung
Typanpassung Registermaschinenprogramm

  • Implizit von engeren zu weiteren Typen

  • Explizit in beide Richtungen

    Definition der Relation „enger“ (  ):

    byte  short  int  long  float  double

    char  int

    Bemerkung: Die Relation  ist transitiv.

    Explizite Typanpassung des Wertes eines Ausdrucks A an einen Typ t durch Anwendung des einstelligen Operators (t) auf den Ausdruck A.

    Beispiele:

    byte b = 9; b = b + 1; ist illegal!

    byte b = 9; b = (byte) (b+1); ist legal.

    int x = 6, y = 10;

    double q = x / y; der Wert von q ist 0.0

    double q = (double)x / y; der Wert von q ist 0.6


Syntaxregeln f r bedingte anweisungen und schleifen
Syntaxregeln für Bedingte Anweisungen und Schleifen Registermaschinenprogramm

CondStmt: if (Exp) Stmt [ else Stmt ]

WhileStmt: while (Exp) Stmt

ForStmt: for ( [Init]; [Exp]; [Update]) Stmt


ad