3.2 Translation of Object-Oriented Language Constructs
|
|
- Annika Graf
- vor 6 Jahren
- Abrufe
Transkript
1 Content of Lecture Compilers and Language Processing Tools Summer Term 2011 Prof. Dr. Arnd Poetzsch-Heffter Software Technology Group TU Kaiserslautern c Prof. Dr. Arnd Poetzsch-Heffter 1 1. Introduction 2. Syntax and Type Analysis 2.1 Lexical Analysis 2.2 Context-Free Syntax Analysis 2.3 Context-Dependent Analysis 3. Translation to Target Language 3.1 Translation of Imperative Language Constructs Selected Aspects of Compilers 4.1 Intermediate Languages 4.2 Optimization 4.3 Data Flow Analysis 4.4 Register Allocation 4.5 Code Generation 5. Garbage Collection 6. XML Processing (DOM, SAX, XSLT) c Prof. Dr. Arnd Poetzsch-Heffter 2 Section Outline 3.2 Translation of Object-Oriented Language Constructs c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 3 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language Concepts of Object-Oriented Programming Languages c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 5 Example: Object-Oriented Language Concepts Beispiel: (objektorientierte Sprachkonzepte) class Person { String name; Person( String n, int gd ) { name = n; gebdatum = gd; public void drucken() { System.out.println("Name:"+ this.name); System.out.println("Geb:"+ this.gebdatum); boolean hat_geburtstag ( int datum ) { return (this.gebdatum%10000) == (datum%10000); class Student extends Person { int matrikelnr; int semester; c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 7 Student(String n,int gd,int mnr,int sem) { super( n, gd ); matrikelnr = mnr; Beispiel: (objektorientierte Sprachkonzepte) We consider a class-based language and use Java as an example. class Person { Important String Concepts: name; Classes int and gebdatum; Object Creation /* in der Form JJJJMMTT */ Encapsulation Person( String n, int gd ) { Subtyping name and = n; Inheritance Dynamic gebdatum Method = Binding gd; public void drucken() { System.out.println("Name:"+ this.name); System.out.println("Geb:"+ this.gebdatum); boolean hat_geburtstag ( int datum ) { return (this.gebdatum%10000) == Concepts of Object-Oriented (datum%10000); Programming Languages c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 6 Example: Object-Oriented Language Concepts (2) class Student extends Person { int matrikelnr; int semester; Student(String n,int gd,int mnr,int sem) { super( n, gd ); matrikelnr = mnr; semester = sem; public void drucken() { super.drucken(); System.out.println( "Mnr:"+ matrikelnr); System.out.println( "Sem:" + semester); A. Poetzsch-Heffter, TU Kaiserslautern 254 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 8
2 Example: Object-Oriented Language Concepts (3) class Test { public static void main( String[] argv ) { int i; Person[] pf = new Person[3]; pf[0] = new Person( "Meyer", ); pf[1] = new Student("M\"uller", ,758475,5); pf[2] = new Student("Planck", , ,47); for( i = 0; i<3; i = i+1 ) { pf[i].drucken(); Das Beispiel zeigt Klassen, Objekterzeugung, The Vererbung example demonstrates (mit Subtyping classes, und object Spezialisierung) creation, inheritance sowie (with subtyping and specialization) and dynamic method binding. dynamisches Binden von Methoden. c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language Umsetzung mit prozeduralen Sprachen Anhand des obigen Beispiels erläutern wir die Translation grundlegenden Schemes: Übersetzungsschemata: Klassen, Classes, Klassentypen class types record! Verbundtypen, types, pointer types Zeigertypen Object creation Allocation of dynamic variables/objects Objekterzeugung! Allokation dyn. Variablen/Objekte Methods, constructors procedures Methoden, Dynamic binding Konstruktoren Use of procedure! Prozeduren pointers with selection of record components dyn. Bindung! Verwendung von Prozedurzeigern We illustrate these schemes at the above example. The considered mit Selektion von Verbundkomponenten target language is C. Als Übersetzung Zielsprache verwenden der Typen wir und hier Methoden: C. Basisdatentypen von Java! Basisdatentypen von z.b. int A. Poetzsch-Heffter, nach TU int Kaiserslautern 255 boolean nach int ( typedef int boolean; ) c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 11 Implementation Referenztypen von of Example Java! Zeigertypen in C von C z.b. String nach String* Person nach Person* wobei String und Person in C geeignete Verbundtypen Fields sind. arewir realized betrachten by record die types: Implementierung von Person: typedef struct sperson Person; struct sperson { String* name; void (*drucken)( Person* ); boolean (*hat_geburtstag)( Person*, int ); ; Methoden werden als Prozeduren realisiert: void Person_drucken( Person* this ) { printf("name:%s\n", this->name ); printf("geb:%d\n",this->gebdatum); c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 13 Implementation boolean Person_hat_geburtstag of Example in C (3) (Person* this,int datum){ return (this->gebdatum%10000)==(datum%10000); Constructors are realized as procedures: Konstruktoren werden als Prozeduren realisiert: A. Poetzsch-Heffter, TU Kaiserslautern 256 Person* PersonK( String* n, int gd ) { Person* this = (Person*) malloc( sizeof(person) ); this->name = n; this->gebdatum = gd; this->drucken = Person_drucken; this->hat_geburtstag = Person_hat_geburtstag; Übersetzung von Vererbung/Spezialisierung: Bzgl. der Verbundkomponenten wird Vererbung im Wesentlichen durch Duplikation realisiert: c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 15 typedef struct sstudent Student; struct sstudent { String* name; c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 10 Translation of Types and Methods Basis Übersetzung data types of der Java Typen basis und data Methoden: types of C, for example: Basisdatentypen int int von Java! Basisdatentypen von boolean int z.b. int nach int (typedef int boolean;) boolean nach int Reference types of Java pointer types of C, for example: ( typedef int boolean; ) String String* Referenztypen Person Person* von Java! Zeigertypen von C where String z.b. andstring Person are nach record types String* C. Person nach Person* wobei String und Person in C geeignete Verbundtypen sind. Wir betrachten die Implementierung von Person: typedef struct sperson Person; struct sperson { String* name; c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 12 Implementation void (*drucken)( of Example Person* in C (2) ); boolean (*hat_geburtstag)( Person*, int ); ; Methods Methoden are realized werden by procedures: als Prozeduren realisiert: void Person_drucken( Person* this ) { printf("name:%s\n", this->name ); printf("geb:%d\n",this->gebdatum); boolean Person_hat_geburtstag Konstruktoren werden als Prozeduren (Person* this,int realisiert: datum){ return (this->gebdatum%10000)==(datum%10000); Person* PersonK( String* n, int gd ) { Person* this = (Person*) malloc( sizeof(person) ); A. Poetzsch-Heffter, TU Kaiserslautern 256 this->name = n; this->gebdatum = gd; this->drucken = Person_drucken; this->hat_geburtstag = Person_hat_geburtstag; c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 14 Translation of Inheritance and Specialization Übersetzung von Vererbung/Spezialisierung: Inheritance Bzgl. with der respect Verbundkomponenten to record components wird Vererbung is realized by duplication: im Wesentlichen durch Duplikation realisiert: typedef struct sstudent Student; struct sstudent { String* name; void (*drucken)( Student* ); boolean (*hat_geburtstag)( Student*, int ); int matrikelnr; int semester; ; Type conversions Zu beachten ist die notwendige Typanpassung beim impliziten it Argument for implicit in arguments der Unterklasse. of subclass are necessary. c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language A. Poetzsch-Heffter, TU Kaiserslautern 257
3 Translation of Inheritance and Specialization (2) Bzgl. der Methoden lässt sich Vererbung ohne InheritanceCodeduplikation with respect to umsetzen; methods die can Methoden be realized der without code duplication. Oberklasse Methods lassen of superclass sich nach can geeigneter be reused after appropriate type conversion. Typkonvertierung unverändert verwenden: Student* StudentK (String* n,int gd,int mnr,int sem ) { Student* this = (Student*) malloc(sizeof(student)); this->name = n; this->gebdatum = gd; this->matrikelnr = mnr; this->semester = sem; this->drucken = Student_drucken; this->hat_geburtstag = (boolean(*)(student*,int)) Person_hat_geburtstag; this->semester = sem; this->drucken = Student_drucken; this->hat_geburtstag = (boolean(*)(student*,int)) Person_hat_geburtstag; Translation of Inheritance and Specialization (3) Spezialisierung wird durch zusätzliche Attribute (s.o.) Specialization und neue is realized Prozeduren by additional realisiert, attributes die and ggf. procedures die that may call überschriebenen overridden methods: Methoden aufrufen: void Student_drucken( Student* this ) { Person_drucken( (Person*)this ); printf("mnr:%d\n", this->matrikelnr ); printf("sem:%d\n", this->semester ); A. Poetzsch-Heffter, TU Kaiserslautern 258 Spezialisierung wird durch zusätzliche Attribute (s.o.) und neue Prozeduren realisiert, die ggf. die überschriebenen Methoden aufrufen: c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 17 Translation of Object Creation & Method Invocation void Übersetzung Student_drucken( von Objekterzeugung Student* this und ) { Person_drucken( (Person*)this ); Methodenaufruf: printf("mnr:%d\n", this->matrikelnr ); printf("sem:%d\n", this->semester ); Object creation Objekterzeugung corresponds entspricht to call einem of the Konstruktoraufruf ; constructor. Method invocation Methodenaufruf is realized wird durch byselektion selection und and call of method belonging Aufruf to the der object zum Objekt gehörenden Methode realisiert. A. Poetzsch-Heffter, TU Kaiserslautern 258 void main( String* argv[] ) { int i; Person* pf[3]; pf[0] = PersonK( "Meyer", ); pf[1] = (Person*) StudentK("M\"uller", ,758475,5); pf[2] = (Person*) StudentK("Planck", , ,47); for( i = 0; i<3; i = i+1 ) { pf[i]->drucken( pf[i] ); c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 18 Translation of Object Creation & Method Invocation (2) Note the duplicate reference to the target object in a "method call". Dynamic binding is realized by usage of procedure pointers. Remarks: Record components are not "inherited" and have to be re-listed for each subclass. No usage of superclass constructor Explicit type conversion necessary Direct pointers to methods of an object use needlessly much memory. Dynamic binding only requires dereferencing which is almost as efficient as an ordinary procedure call. Zu beachten ist die doppelte Angabe des Zielobjekts beim Methodenaufruf. c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 19 Dynamische Bindung wird also durch Verwendung von Prozedurzeigern erreicht. c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language A. Poetzsch-Heffter, TU Kaiserslautern Classes declare: attributes (in Java: fields) constructors methods In the following, we consider a language that supports only single inheritance (cf. Java), i.e., each class (except Object) has exactly one superclass. c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 21 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 22 Object Layout Object Layout (2) Objects are handled as memory areas on the heap: Each object of class C gets a variable (object state) for each inherited and for each attribute declared in C. Additionally, it gets a variable for referring to information about the class and its methods. As object identity, often the start address of the memory area is used (or another appropriate address). Example: Beispiel: (Objektlayout) private int a2; Object Objektreferenz Reference class: a2: Klassen- Class and & Methoden- Information zu for Klasse Class A As for records, attribute instances/instance variables are addressed by a relative address (offset) with respect to the object reference. c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 23 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 24
4 Object Layout (3) Object Layout (4) The size of the instance variables depends on their type. In Java, int and float variables require 4 bytes, long and double variables require 8 bytes. private int a2;... class B extends A { int b;... Klassen- Class and & Methoden- Information zu for Klasse Class C class C extends B { int c; Object Objektreferenz Reference class: a2: b: c: c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 25 Object Layout (5) The ordering of attribute instances is important to allow for subtyping: Each subclass object can be placed in all positions where a superclass object is expected. Thus, the attribute instances of the superclass have to have the same relative addresses in all sub- and superclass objects. Remarks: Bemerkungen: In the above example, Im obigen we have Beispiel not haben considered wir Attributinstanzen attribute instances der of the class Object. Klasse Object vernachlässigt Private attribute instances Private Attributinstanzen of superclasses von Oberklassen have to bemüssen present in all instances of subclasses: auch in Instanzen von Unterklassen vorhanden sein: private int a2; int m() { return a2; class B extends A { int b; int n() { return m(); Zur Klassen- und Methodeninformation siehe unten. c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 26 Die Reihenfolge der Attributinstanzen ist wichtig, um Subtyping zu Translation ermöglichen: of Classes Jedes Unterklassen-Objekt muss überall dort eingesetzt werden können, wo ein Oberklassen- Objekt erwartet wird. Example: Access to Subclass Objects A avar = new B();... a.avar.a2... Deshalb müssen die Attributinstanzen der Oberklasse in Ober- und Unterklasse-Objekten die gleiche Relativadresse besitzen A. Poetzsch-Heffter, TU Kaiserslautern 263 The relative address of a2 has to be independent of the dynamic type of avar. The dynamic type of a reference-typed expression E in a state S is the type of the object that is obtained by evaluating E in the state S. c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 27 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 28 Alternative Object Layout Alternative Object Layout (2) In some cases, also an object descriptor is used. Here, the example of a C object: Objektreferenz Object Reference Deskriptor Descriptor class: Klassen- Class and & Methoden- Information zu for Klasse Class C a2: b: c: Remarks: Pros: all object descriptors have the same memory requirements memory block for instance variables can be more easily moved (simplifies for instance garbage collection) Cons: more memory per object additional dereferencing step for accessing instance variables c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 29 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 30 Class Information Example: Introspection in Java The content (and the extend) of the class information depends on the language. Three typical examples: Class information is not provided at runtime. Class information contains all information required for dynamic type conversion : A avar = new b(); B bvar = (B) avar; Class information is represented by an object that allows introspection (requesting class information at runtime) and reflection (modifying the program at runtime). Java supports introspection by using objects of the class Class. For each type in a Java program, there exists one object of the class Class. The class Class contains amongst others: the static method forname the instance method getname c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 31 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 32
5 Beispiel: (Introspektion in Java) Java unterstützt Introspektion mittels Objekten der Klasse Class. Für jeden Typ eines Java-Programms gibt es ein Objekt der Klasse Class. Die Klasse Class Translation of Object-Oriented besitzt Language unter Constructs anderem: die statische Methode forname die Instanzmethode getmethod Example: Introspection in Java (2) import java.lang.reflect.*; Realization of Methods public class Inspektor { public static void main(string[] ss) { try{ Class klasse = Class.forName( ss[0] ); Method[] methoden = klasse.getmethods(); for( int i = 0; i < methoden.length; i++ ){ Method m = methoden[i]; Class rettype = m.getreturntype(); String methname = m.getname(); Class[] partypes = m.getparametertypes(); System.out.print(retType.getName() t ett pe + " " + methname+"(" ); for( int j = 0; j < partypes.length; j++ ){ if( j > 0 ) System.out.print(", "); System.out.print( partypes[j].getname() ); System.out.println( ");" ); catch( ClassNotFoundException e ) { System.out.println("Klasse "+ ss[0]+" fehlt"); Method information allows accessing methods belonging to an object: It provides the data structure for realization of dynamic binding. In class-based languages, all objects of a class have the same methods; thus, method information of all objects of a class can be stored together. (more memory-efficient compared to realization by procedures) A. Poetzsch-Heffter, TU Kaiserslautern 266 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 33 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 34 Virtual Method Table Virtual Method Table (2) Classically, method information is stored in a virtual method/functions table. (For simplicity, class information is not shown) Alle all A-Objekte objects Es existiert int a2; also für jede Klasse teilen genau share sich mtab eine mtab Methodentabelle. int m() {... Der Zeiger auf die Methoden- tabelle int wird n( int vom i Konstruktor ) {... gesetzt. Die Methodentabelle enthält Zeiger auf die A::m Object Objektreferenz Reference Methodenimplementierungen. A::n mtab: Die Technik ermöglicht Subtyping, da die Relativ- adressen von Oberklasse-Methoden so gewählt a2: werden können, dass sie in Ober- und Unterklasse gleich sind. Die Technik ermöglicht Überschreiben durch Ausstausch des entsprechenden Eintrags (s. Beispiel) c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 35 Method Overriding Beispiel: (Überschreiben von Methoden) mtab: int a2; int m() {... int n( int i ){... a2: class B extends A { int b; mtab: int m() {... void p() {... a2: b: A::m A::n B::m A::n B::p For each class, there exists exactly one method table. The pointer to the method table is set by the constructor. The method table contains pointers to the method implementations. This technique allows for subtyping, as the relative address of the subclass methods can be chosen such that there are the same addresses in super- and subclasses. It further allows method overriding by changing the according method entry. c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 36 Method Overriding (2) Adressierung einer Methode jeweils indirekt über Methodentabelle und Relativadresse: A method is addressed indirectly by the method table and the relative address: A avar = new A();... avar.m()... // M[avar.mtab]+RA(m)! A::m... avar.n(7)... // M[avar.mtab]+RA(n)! A::n A avar = new B();... avar.m()... // M[avar.mtab]+RA(m)! B::m... avar.n(7)... // M[avar.mtab]+RA(n)! A::n A. Poetzsch-Heffter, TU Kaiserslautern 268 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 37 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 38 Method Overriding (3) Realization Wie bei den ofinstanzvariablen Constructors gewährleistet die richtige Reihenfolge der Einträge in der Methodentabelle, dass auf ein Unterklassen-Objekt wie auf ein Oberklassen-Objekt zugegriffen werden kann. As for instance variables, the correct ordering of the entries in the method table allows that a subclass object can be accessed in the same way as a superclass object. Overriding methods are selected automatically, if applicable. Constructors Dabei werden are realized automatisch by procedures. überschreibende Source language Methoden semantics typically ausgewählt, requires the sofern following vorhanden. for object of class C: Allocation of memory of the new C object Recursive calls of the superclass constructors Execution of the called constructor of C Potentially: class loading, initialisation of variables A. Poetzsch-Heffter, TU Kaiserslautern 269 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 39 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 40
6 Multiple Inheritance The translation technique considered so far can only be used for languages with single inheritance. In this section, we sketch the concept of multiple inheritance the problems associated with multiple inheritance Multiple inheritance exists, for instance, in C++ or Eiffel. With multiple inheritance, a class can inherit from several classes. c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 41 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 42 Multiple Inheritance (2) Example: Beispiel: (Mehrfachvererbung) In folgendem Klassendiagramm erbt E mehrfach: Difficulties of Multiple Inheritance B k1 k2 C k5 A k3 k4 D k2 k3 Does E inherit the attributes of A twice, i.e., does it contain two copies of each component? (only relevant for attributes) How are name conflicts resolved? (E inherits two components with name k2.) How can E objects be realized such that they can be used as A, B, C or D objects in the same way? E k6 Problematik: Soll E die Attribute von A doppelt erben, d.h. von jeder Komponente zwei Kopien besitzen? (nur relevant im Zusammenhang mit Attributen) c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 43 Difficulties of Multiple Inheritance (2) Wie sollen Namenskonflikte aufgelöst werden? ( E erbt zwei Komponenten mit Namen k2) Assuming, E inherits Mit welchen twicetechniken from A, können an object E-Objekte contains so realisiert the following Unter der Annahme, dass E von A doppelt erbt, components: besitzt werden, ein E-Objekt dass sie auch die als folgenden A-, B-, C- Komponenten: und D-Objekte auftreten können? A B C D E A. Poetzsch-Heffter, TU Kaiserslautern 271 B::k1 B::k2 A::k3 A::k4 C::k5 A::k3 A::k4 D::k2 D::k3 E::k6 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 44 Difficulties of Multiple Inheritance (3) With the above object layout, E can be used directly as a B object or as a C object, but not as an A or D object. Solutions: Implicit type conversion with modification of the reference into the memory area (Drawback: potentially, problem with object identity) Addressing with class-specific, global relative addresses (cf. Appel) (Drawback: non-modular, complete program has to be known) Mit obigem Komponentenlayout kann ein E-Objekt direkt als B- und C-Objekt Further verwendet Aspects of Object-Oriented werden, Languages nicht aber als A- oder D-Objekt. c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 45 Lösungsansätze: 1. Implizite Typkonvertierung mit Veränderung der Referenz in den Speicherbereich. (Nachteil: ggf. Problem bei Objektidentität) 2. Adressierung mit klassenspezifischen, global verwendbaren Relativadressen (s. Appel). (Nachteil: nicht modular, gesamtes Programm muss bekannt sein) A. Poetzsch-Heffter, TU Kaiserslautern 272 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 46 Static methods Nested classes Virtual classes Encapsulation aspects Dynamic Loading Reflection c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 47 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 48
7 geschachtelte Klassen virtuelle Klassen Kapselungsaspekte dynamisches Laden Reflexion Example: Local Classes Beispiel: (Lokale Klassen) class Outer { Outer w( int j ) { int i = 2; class Local extends Outer { Outer w( int jj ) { System.out.println("i == " +i); System.out.println("j == " +j); System.out.println("j == " + j ); return new Local(); A. Poetzsch-Heffter, TU Kaiserslautern 273 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 49 Literature Example: Local Classes (2) public class LocalClassTest { static public void main(string[] args){ Outer ov = new Outer(); ov.w( 5 ).w( 7 ); ov.w( 7 ).w( 9 ); Gibt es Fehler? Questions: Was ist die Ausgabe und warum? Are there errors? What is the output and why? Lesen Sie zu Abschnitt 3.2: c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 50 Wilhelm, Maurer: Abschnitt 5.2 und Anfang von 5.3 (S ) 195) Appel: Sections , S Recommended Reading: Wilhelm, Maurer: Sect. 5.2 and 5.3. (pp ) Appel: Sect , (pp ) A. Poetzsch-Heffter, TU Kaiserslautern 274 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 51 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 52 A Simple Compiler - The Structure Tools for Compiler Realization Input File (source code) token stream (abstract) syntax tree Scanner Parser Name & Type Analysis Translator Code Generator Output File (target code) attributed (abstract) syntax tree (SL) abstract syntax tree (TL) Scanner: JFlex Parser: ANTLR, JavaCup Abstract Syntax and Attribution for Name and Type Analysis and Translation/Code Generation: Katja c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 53 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 54 Scanner Specification - MiniJava in JFlex Parser Specification - MiniJava in JavaCUP DIGIT = [0-9] LETTER = [a-za-z] %% [ \t\n\r]* { "//" [^\r\n]* (\n \r \r\n) { "/*" [^*] ~"*/" { "class" { return symbol(tokentype.class); "void" { return symbol(tokentype.void); "static" { return symbol(tokentype.static); "int" { return symbol(tokentype.int); "boolean" { return symbol(tokentype.boolean); "return" { return symbol(tokentype.return); "if" { return symbol(tokentype.if); "else" { return symbol(tokentype.else); "while" { return symbol(tokentype.while); c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 55 Statement ::= Block:b {: RESULT = b; : IF:s ParExpression:e Statement:stm {: RESULT = If(sleft, sright, e, stm, Block(-1,-1)); : IF:s ParExpression:e Statement:stm ELSE Statement:estm {: RESULT = If(sleft, sright, e, stm, estm); : WHILE:s ParExpression:e Statement:body {: RESULT = While(sleft, sright, e, body); : RETURN:s Expression:e SEMI {: RESULT = Return(sleft, sright, e); : RETURN:s SEMI {: RESULT = VoidReturn(sleft, sright); : SEMI:s {: RESULT = Block(sleft, sright); : ExpressionStatement:e {: RESULT = e; : ; c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 56
8 Katja Specification for MiniJava Abstract Syntax Implementation of Name Analysis using Katja Statement = Block ( Integer line, Integer column, BlockStatements body ) If ( Integer line, Integer column, Expression cond, Statement thenstmt, Statement elsestmt ) While ( Integer line, Integer column, Expression cond, Statement body ) Return ( Integer line, Integer column, Expression retvalue ) VoidReturn ( Integer line, Integer column ) Assignment ( Integer line, Integer column, Expression left, Expression right ) Expression public static DeclarationPos lookupin final ScopePos scope, final IdentifierPos id) throws CantFind { DeclarationPos result; if (scope == null) throw new CantFind(id); // search in cache if we already made that lookup result = scope.switch(new ScopePos.Switch<DeclarationPos, NE>() { public DeclarationPos CaseBlockStatementsPos (final BlockStatementsPos term) throws NE { c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 57 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 58 Implementation of Name Analysis using Katja (2) Implementation of Name Analysis using Katja (3) public DeclarationPos CaseMethodDeclPos(final MethodDeclPos term) throws NE { for (FormalParameterPos param : term.params()) { if (nameequals(param.ident(), id)) return param; return null; // did not find declaration of id public DeclarationPos CaseClassBodyDeclsPos (final ClassBodyDeclsPos term) throws NE { public DeclarationPos CaseTypeDeclsPos(final TypeDeclsPos term) throws NE { for (TypeDeclPos typedeclpos : term) { if (nameequals(typedeclpos.ident(), id)) return (ClassDeclPos) typedeclpos; return null; // did not find declaration of id ); return result; c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 59 c Prof. Dr. Arnd Poetzsch-Heffter Translation to Target Language 60
2.2 Übersetzung objektorientierter Sprachkonstrukte
2.2 Übersetzung objektorientierter Sprachkonstrukte Vorgehen: Sprachmittel objektorientierter Programmiersprachen Übersetzung anhand eines Beispiels Übersetzung von Klassen bei Einfachvererbung Problematik
MehrJava Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation
Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/
MehrMagic Figures. We note that in the example magic square the numbers 1 9 are used. All three rows (columns) have equal sum, called the magic number.
Magic Figures Introduction: This lesson builds on ideas from Magic Squares. Students are introduced to a wider collection of Magic Figures and consider constraints on the Magic Number associated with such
MehrUniversität Karlsruhe (TH)
Vererbung Vererbung im Fall von Klassen Klassen unterstützen (nur) einfache Vererbung (engl. single inheritance ) Die Klasse object ist die allen gemeine Oberklasse (Hierarchie mit einer einzigen Wurzel)
MehrWeather forecast in Accra
Weather forecast in Accra Thursday Friday Saturday Sunday 30 C 31 C 29 C 28 C f = 9 5 c + 32 Temperature in Fahrenheit Temperature in Celsius 2 Converting Celsius to Fahrenheit f = 9 5 c + 32 tempc = 21
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrIT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1
IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft
MehrFinite Difference Method (FDM)
Finite Difference Method (FDM) home/lehre/vl-mhs-1-e/folien/vorlesung/2a_fdm/cover_sheet.tex page 1 of 15. p.1/15 Table of contents 1. Problem 2. Governing Equation 3. Finite Difference-Approximation 4.
MehrBeispiel: (Vererbung) Vererbung. Begriffsklärung: (Vererbung) Feststellungen: Vererben von Attributen: Hinzufügen von Attributen:
5.3.3 Vererbung Begriffsklärung: (Vererbung) Vererbung (engl. inheritance) im engeren Sinne bedeutet, dass eine Klasse Programmteile von einer anderen übernimmt. Die erbende Klasse heißt Subklasse, die
MehrAccelerating Information Technology Innovation
Accelerating Information Technology Innovation http://aiti.mit.edu Ghana Summer 2011 Lecture 05 Functions Weather forecast in Accra Thursday Friday Saturday Sunday 30 C 31 C 29 C 28 C f = 9 5 c + 32 Temperature
MehrOOSE 2 Vererbung und Polymorphie mit BlueJ & CRC Kartenmethode (Hörsaalübung)
OOSE 2 Vererbung und Polymorphie mit BlueJ & CRC Kartenmethode (Hörsaalübung) SS 2015 Birgit Demuth SS 2015 Softwaretechnologie / OOSE 2 BlueJ: Vererbung (1) Erweiterung von HelloLibrary (U02) SS 2015
MehrVGM. VGM information. HAMBURG SÜD VGM WEB PORTAL USER GUIDE June 2016
Overview The Hamburg Süd VGM Web portal is an application that enables you to submit VGM information directly to Hamburg Süd via our e-portal Web page. You can choose to enter VGM information directly,
MehrObjects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0
Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben
MehrVGM. VGM information. HAMBURG SÜD VGM WEB PORTAL - USER GUIDE June 2016
Overview The Hamburg Süd VGM-Portal is an application which enables to submit VGM information directly to Hamburg Süd via our e-portal web page. You can choose to insert VGM information directly, or download
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrIT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots. falls Zeit: Scheduling 8.11.
IT I: Heute Nachbetrachtung Wissensüberprüfungen Einführung Vererbung Roboter in becker.robots falls Zeit: Scheduling 8.11.2016 IT I - VO 5 1 Organisatorisches VO nächste Woche im Peter-Tunner-HS! Tutorium
MehrRessourcenmanagement in Netzwerken SS06 Vorl. 12,
Ressourcenmanagement in Netzwerken SS06 Vorl. 12, 30.6.06 Friedhelm Meyer auf der Heide Name hinzufügen 1 Prüfungstermine Dienstag, 18.7. Montag, 21. 8. und Freitag, 22.9. Bitte melden sie sich bis zum
MehrData Structures and Algorithm Design
- University of Applied Sciences - Data Structures and Algorithm Design - CSCI 340 - Friedhelm Seutter Institut für Angewandte Informatik Contents 1 Analyzing Algorithms and Problems 2 Data Abstraction
MehrInformatik - Übungsstunde
Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 08-25.04.2018 Lernziele const: Reference const: Pointer vector: iterator using Jonas Lauener (ETH Zürich) Informatik
MehrJ RG IMMENDORFF STANDORT F R KRITIK MALEREI UND INSPIRATION ERSCHEINT ZUR AUSSTELLUNG IM MUSEUM LU
J RG IMMENDORFF STANDORT F R KRITIK MALEREI UND INSPIRATION ERSCHEINT ZUR AUSSTELLUNG IM MUSEUM LU 8 Feb, 2016 JRISFRKMUIEZAIMLAPOM-PDF33-0 File 4,455 KB 96 Page If you want to possess a one-stop search
MehrInformatik - Übungsstunde
Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 12-23.05.2018 Lernziele Klassen Dynamic Memory Jonas Lauener (ETH Zürich) Informatik - Übung Woche 12 2 / 20 Structs
MehrIT I: Heute. Nachbetrachtung Wissensüberprüfung. Einführung Vererbung. Roboter in becker.robots. Filialenbelieferung 4.11.
IT I: Heute Nachbetrachtung Wissensüberprüfung Einführung Vererbung Roboter in becker.robots Filialenbelieferung 4.11.2014 IT I - VO 4 1 Organisatorisches Tutorium am Mi, 12.11. schon um 11 Uhr (bis 12:30).
MehrInfo B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
MehrSTRATEGISCHES BETEILIGUNGSCONTROLLING BEI KOMMUNALEN UNTERNEHMEN DER FFENTLICHE ZWECK ALS RICHTSCHNUR FR EIN ZIELGERICHTETE
BETEILIGUNGSCONTROLLING BEI KOMMUNALEN UNTERNEHMEN DER FFENTLICHE ZWECK ALS RICHTSCHNUR FR EIN ZIELGERICHTETE PDF-SBBKUDFZARFEZ41-APOM3 123 Page File Size 5,348 KB 3 Feb, 2002 TABLE OF CONTENT Introduction
MehrH.1 FORMI: An RMI Extension for Adaptive Applications H.1 FORMI: An RMI Extension for Adaptive Applications
Motivation The ed-object Approach Java RMI ed Objects in Java RMI Conclusions Universität Erlangen-Nürnberg Informatik 4, 2007 H-Formi-.fm 2007-12-14 13.11 H.1 1 Motivation Distributed object-oriented
MehrAlgorithms for graph visualization
Algorithms for graph visualization Project - Orthogonal Grid Layout with Small Area W INTER SEMESTER 2013/2014 Martin No llenburg KIT Universita t des Landes Baden-Wu rttemberg und nationales Forschungszentrum
MehrPONS DIE DREI??? FRAGEZEICHEN, ARCTIC ADVENTURE: ENGLISCH LERNEN MIT JUSTUS, PETER UND BOB
Read Online and Download Ebook PONS DIE DREI??? FRAGEZEICHEN, ARCTIC ADVENTURE: ENGLISCH LERNEN MIT JUSTUS, PETER UND BOB DOWNLOAD EBOOK : PONS DIE DREI??? FRAGEZEICHEN, ARCTIC ADVENTURE: Click link bellow
MehrLevel 1 German, 2014
90886 908860 1SUPERVISOR S Level 1 German, 2014 90886 Demonstrate understanding of a variety of German texts on areas of most immediate relevance 9.30 am Wednesday 26 November 2014 Credits: Five Achievement
MehrProgrammentwicklung ohne BlueJ
Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie
MehrMock Exam Behavioral Finance
Mock Exam Behavioral Finance For the following 4 questions you have 60 minutes. You may receive up to 60 points, i.e. on average you should spend about 1 minute per point. Please note: You may use a pocket
MehrPolymorphie. 15. Java Objektorientierung II
432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
MehrInformatik 1 Kurzprüfung 2 LÖSUNG
Informatik 1 Kurzprüfung 2 LÖSUNG Herbstsemester 2013 Dr. Feli Friedrich 4.12.2013 Name, Vorname:............................................................................ Legi-Nummer:..............................................................................
MehrIT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots IT I - VO 5 1
IT I: Heute Nachbetrachtung Wissensüberprüfungen Einführung Vererbung Roboter in becker.robots 8.11.2018 IT I - VO 5 1 Organisatorisches Wissensüberprüfung diese Woche wieder am Rechner Wer die Wissensüberprüfung
MehrPolymorphie. 15. Java Objektorientierung II
446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
MehrComputational Models
- University of Applied Sciences - Computational Models - CSCI 331 - Friedhelm Seutter Institut für Angewandte Informatik Part I Automata and Languages 0. Introduction, Alphabets, Strings, and Languages
MehrIT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots IT I - VO 5 1
IT I: Heute Nachbetrachtung Wissensüberprüfungen Einführung Vererbung Roboter in becker.robots 7.11.2017 IT I - VO 5 1 Organisatorisches Wissensüberprüfung diese Woche wieder am Rechner Wer die 5. Wissensüberprüfung
MehrAlgorithmen und Datenstrukturen 07
(7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik
MehrKapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
MehrSoftware Entwicklung 1. Subtyping revisited. Subtypbildung in Java: Klassen I. Subtyping und Vererbung I. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Subtyping revisited AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 40 Subtyping und Vererbung
MehrApplication Note. Import Jinx! Scenes into the DMX-Configurator
Application Note Import Jinx! Scenes into the DMX-Configurator Import Jinx! Scenen into the DMX-Configurator 2 The Freeware Jinx! is an user friendly, well understandable software and furthermore equipped
MehrObjekt-Orientierte Programmiersprachen
Objekt-Orientierte Programmiersprachen Martin Gasbichler, Holger Gast 8. Dezember 2005 Heute: Interfaces Vererbung Jede Klasse hat genau eine direkte Superklasse Sie übernimmt die Implementierung der Superklasse
MehrObjekt-Orientierte Programmiersprachen
Objekt-Orientierte Programmiersprachen Vererbung Heute: Interfaces Martin Gasbichler, Holger Gast 8. Dezember 2005 Jede Klasse hat genau eine direkte Superklasse Sie übernimmt die Implementierung der Superklasse
MehrMitglied der Leibniz-Gemeinschaft
Methods of research into dictionary use: online questionnaires Annette Klosa (Institut für Deutsche Sprache, Mannheim) 5. Arbeitstreffen Netzwerk Internetlexikografie, Leiden, 25./26. März 2013 Content
MehrÜbersetzen des Quelltexts in ausführbaren Maschinen-Code Translation of source code into executable machine code
Informatik II D-BAUG Self-Assessment, 2. März 2017 Lösung Name, Vorname:............................................................. Legi-Nummer:.............................................................
MehrFEM Isoparametric Concept
FEM Isoparametric Concept home/lehre/vl-mhs--e/folien/vorlesung/4_fem_isopara/cover_sheet.tex page of 25. p./25 Table of contents. Interpolation Functions for the Finite Elements 2. Finite Element Types
MehrInformatik für Mathematiker und Physiker Woche 7. David Sommer
Informatik für Mathematiker und Physiker Woche 7 David Sommer David Sommer 30. Oktober 2018 1 Heute: 1. Repetition Floats 2. References 3. Vectors 4. Characters David Sommer 30. Oktober 2018 2 Übungen
MehrOOSE_02 VERERBUNG UND POLYMORPHIE MIT BLUEJ CRC-KARTENMETHODE
OOSE_02 VERERBUNG UND POLYMORPHIE MIT BLUEJ CRC-KARTENMETHODE Vererbung und Polymorphie mit BlueJ [Barnes2012] OOSE_02 Birgit Demuth Folie 2von XYZ BlueJ: Vererbung (1) Erweiterung von HelloLibrary (U02)
MehrBayesian Networks. Syntax Semantics Parametrized Distributions Inference in Bayesian Networks. Exact Inference. Approximate Inference
Syntax Semantics Parametrized Distributions Inference in Exact Inference Approximate Inference enumeration variable elimination stochastic simulation Markov Chain Monte Carlo (MCMC) 1 Includes many slides
MehrWord-CRM-Upload-Button. User manual
Word-CRM-Upload-Button User manual Word-CRM-Upload for MS CRM 2011 Content 1. Preface... 3 2. Installation... 4 2.1. Requirements... 4 2.1.1. Clients... 4 2.2. Installation guidelines... 5 2.2.1. Client...
MehrMATHEMATIK - MODERNE - IDEOLOGIE. EINE KRITISCHE STUDIE ZUR LEGITIMITAT UND PRAXIS DER MODERNEN MATHEMATIK (THEORIE UND METHODE) FROM UVK
MATHEMATIK - MODERNE - IDEOLOGIE. EINE KRITISCHE STUDIE ZUR LEGITIMITAT UND PRAXIS DER MODERNEN MATHEMATIK (THEORIE UND METHODE) FROM UVK DOWNLOAD EBOOK : MATHEMATIK - MODERNE - IDEOLOGIE. EINE KRITISCHE
MehrNumber of Maximal Partial Clones
Number of Maximal Partial Clones KARSTEN SCHÖLZEL Universität Rostoc, Institut für Mathemati 26th May 2010 c 2010 UNIVERSITÄT ROSTOCK MATHEMATISCH-NATURWISSENSCHAFTLICHE FAKULTÄT, INSTITUT FÜR MATHEMATIK
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrDynamische Programmiersprachen. David Schneider david.schneider@hhu.de STUPS - 25.12.02.50
Dynamische Programmiersprachen David Schneider david.schneider@hhu.de STUPS - 25.12.02.50 Organisatorisches Aufbau: Vorlesung 2 SWS Übung Kurzreferat Projekt Prüfung Übung wöchentliches Aufgabenblatt in
MehrC++11. neu in C++11: range-based for. Objektorientierte Programmierung mit C++ Ersetzung durch: 1. Elementares C++ int array[] = { 1, 2, 3, 4, 5 };
neu in C++11: range-based for int array[] = { 1, 2, 3, 4, 5 ; for (int x : array) // value x *= 2; C++11 for (int& x : array) // reference x *= 2; Ersetzung durch: { auto && range = range-init; for ( auto
MehrÜbungsstunde: Informatik 1 D-MAVT
Übungsstunde: Informatik 1 D-MAVT Daniel Bogado Duffner Übungsslides unter: n.ethz.ch/~bodaniel Bei Fragen: bodaniel@student.ethz.ch Daniel Bogado Duffner 25.04.2018 1 Ablauf Self-Assessment Pointer Iterators
MehrData Structures. Christian Schumacher, Info1 D-MAVT Linked Lists Queues Stacks Exercise
Data Structures Christian Schumacher, chschuma@inf.ethz.ch Info1 D-MAVT 2013 Linked Lists Queues Stacks Exercise Slides: http://graphics.ethz.ch/~chschuma/info1_13/ Motivation Want to represent lists of
MehrFEBE Die Frontend-Backend-Lösung für Excel
FEBE Die Frontend--Lösung für FEBE Die Frontend--Lösung für FEBE.pptx 8.04.206 0:43 FEBE Die Frontend--Lösung für Nutzer A alle_aufträge neuer_auftrag Auftragsänderung Nutzer B alle_aufträge neuer_auftrag
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Klassenattribute und -methoden Bieniusa Software Entwicklung 1 2/ 23 Beispiel: Klassenattribute I class Uebungsgruppe
MehrD-BAUG Informatik I. Exercise session: week 1 HS 2018
1 D-BAUG Informatik I Exercise session: week 1 HS 2018 Java Tutorials 2 Questions? expert.ethz.ch 3 Common questions and issues. expert.ethz.ch 4 Need help with expert? Mixed expressions Type Conversions
MehrInformation Flow. Basics. Overview. Bell-LaPadula Model embodies information flow policy. Variables x, y assigned compartments x, y as well as values
Information Flow Overview Basics and background Compiler-based mechanisms Execution-based mechanisms 1 Basics Bell-LaPadula Model embodies information flow policy Given compartments A, B, info can flow
MehrInhalt. Vererbung. The DoME example. DoME objects. DoME object model. DoME classes. Vererbung Subtyping Substitution Polymorphe Variablen
Inhalt Vererbung Vererbung Subtyping Substitution Polymorphe Variablen 4.0 The DoME example DoME objects "Database of Multimedia Entertainment" stores details about CDs and DVDs CD: title, artist, # tracks,
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrDPM_flowcharts.doc Page F-1 of 9 Rüdiger Siol :28
Contents F TOOLS TO SUPPORT THE DOCUMENTATION... F-2 F.1 GRAPHIC SYMBOLS AND THEIR APPLICATION (DIN 66 001)... F-2 F.1.1 Flow of control... F-3 F.1.2 Terminators and connectors... F-4 F.1.3 Lines, arrows
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 11: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
MehrÜbung Informatik I - Programmierung - Blatt 8
RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK II RWTH Aachen D-52056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.
Mehr4. Vererbung Die Klasse Object. Die Klasse Object
4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige
MehrExercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1
Exercise (Part II) Notes: The exercise is based on Microsoft Dynamics CRM Online. For all screenshots: Copyright Microsoft Corporation. The sign ## is you personal number to be used in all exercises. All
MehrLevel 2 German, 2015
91126 911260 2SUPERVISOR S Level 2 German, 2015 91126 Demonstrate understanding of a variety of written and / or visual German text(s) on familiar matters 2.00 p.m. Friday 4 December 2015 Credits: Five
MehrAufgabe 2a. ios-praktikum Alexander Neitz
Aufgabe 2a ios-praktikum 2016 Alexander Neitz 2016-04-27 1 Aufgabe 2 Swift und Objective-C sind zueinander kompatibel, sodass Projekte aus Source-Code beider Sprachen bestehen können. Ziel dieser Aufgabe
MehrJava Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
MehrEVANGELISCHES GESANGBUCH: AUSGABE FUR DIE EVANGELISCH-LUTHERISCHE LANDESKIRCHE SACHSEN. BLAU (GERMAN EDITION) FROM EVANGELISCHE VERLAGSAN
EVANGELISCHES GESANGBUCH: AUSGABE FUR DIE EVANGELISCH-LUTHERISCHE LANDESKIRCHE SACHSEN. BLAU (GERMAN EDITION) FROM EVANGELISCHE VERLAGSAN DOWNLOAD EBOOK : EVANGELISCHES GESANGBUCH: AUSGABE FUR DIE EVANGELISCH-LUTHERISCHE
MehrPraxis der Programmierung
Template-Funktionen und -Klassen Einführung in Java Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Template-Funktionen 2 Minimumfunktion und offene Typen Aufruf
MehrOrder Ansicht Inhalt
Order Ansicht Inhalt Order Ansicht... 1 Inhalt... 1 Scope... 2 Orderansicht... 3 Orderelemente... 4 P1_CHANG_CH1... 6 Function: fc_ins_order... 7 Plug In... 8 Quelle:... 8 Anleitung:... 8 Plug In Installation:...
Mehr12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell
Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 12. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, Kapselung,
MehrDHBW Stuttgart, Informatik, Advanced SW-Engineering Aug Programmierung
Inhalt Aufbau des Source Codes Dokumentation des Source Codes (Layout) Qualitätskriterien berücksichtigen: Verständlichkeit Namenskonventionen Wartbarkeit: Programmierrichtlinien für erlaubte Konstrukte,
MehrONLINE LICENCE GENERATOR
Index Introduction... 2 Change language of the User Interface... 3 Menubar... 4 Sold Software... 5 Explanations of the choices:... 5 Call of a licence:... 7 Last query step... 9 Call multiple licenses:...
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Subtyping revisited Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 40 Subtyping und Vererbung
MehrInformatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017
1 Informatik II Übung 6 Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 Heutiges Programm 2 1 Klassen - Technisch 2 Prediscussion
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
MehrTIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems
Mitglied der Zürcher Fachhochschule TIn 1: Lecture 4 Data transfer Feedback Laboratories Question: What is the IP? Why do we NEED an IP? Lecture 3: Lernziele Moving data, the why s and wherefores Moving
MehrAbstrakte C-Maschine und Stack
Abstrakte C-Maschine und Stack Julian Tobergte Proseminar C- Grundlagen und Konzepte, 2013 2013-06-21 1 / 25 Gliederung 1 Abstrakte Maschine 2 Stack 3 in C 4 Optional 5 Zusammenfassung 6 Quellen 2 / 25
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrHaslingden High School MFL Faculty Y8 German Block A Homework In der Stadt
Haslingden High School MFL Faculty Y8 German Block A Homework In der Stadt Name: Form: Subject Teacher: Date Given: Date to Hand in: Grades: Reading Writing WWW: KS3 Target : Effort : House Points: IOTI
MehrLevel 1 German, 2016
90886 908860 1SUPERVISOR S Level 1 German, 2016 90886 Demonstrate understanding of a variety of German texts on areas of most immediate relevance 2.00 p.m. Wednesday 23 November 2016 Credits: Five Achievement
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de
MehrIntroduction FEM, 1D-Example
Introduction FEM, D-Example /home/lehre/vl-mhs-/inhalt/cover_sheet.tex. p./22 Table of contents D Example - Finite Element Method. D Setup Geometry 2. Governing equation 3. General Derivation of Finite
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrAufgabe 1.1. Wählen Sie jene Variablendeklarationen mit Initialisierungen aus, die in Java hinsichtlich der Typen korrekt sind:
Test 1 in Programmkonstruktion 59 / 100 Punkte 1. Multiple-Choice-Aufgaben 20 / 30 Punkte Bitte wählen Sie alle zutreffenden Antwortmöglichkeiten aus. Es können beliebig viele Antwortmöglichkeiten zutreffen,
MehrWas heißt Denken?: Vorlesung Wintersemester 1951/52. [Was bedeutet das alles?] (Reclams Universal-Bibliothek) (German Edition)
Was heißt Denken?: Vorlesung Wintersemester 1951/52. [Was bedeutet das alles?] (Reclams Universal-Bibliothek) (German Edition) Martin Heidegger Click here if your download doesn"t start automatically Was
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrC++11. exportieren ihre Aufzählungsbezeichner in den umgebenden Bereich (name clashes) schwach typisiert (z.b. keine forward Deklaration möglich)
C - enums mit Problemen: konvertierbar nach int C++11 exportieren ihre Aufzählungsbezeichner in den umgebenden Bereich (name clashes) schwach typisiert (z.b. keine forward Deklaration möglich) enum classes
MehrObjektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer
Java Kurs Objektorientierung II & die Java Klassenbibliothek Kristian Bergmann und Arthur Lochstampfer Vergleich class Apfel { String farbe; int gewicht; String geerntetin; class Erdbeere { String farbe;
MehrInfo B VL 14: Java Collections/Reflections
Info B VL 14: Java Collections/Reflections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 14: Java Collections/Reflections
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 3 Schnittstellen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
MehrTube Analyzer LogViewer 2.3
Tube Analyzer LogViewer 2.3 User Manual Stand: 25.9.2015 Seite 1 von 11 Name Company Date Designed by WKS 28.02.2013 1 st Checker 2 nd Checker Version history Version Author Changes Date 1.0 Created 19.06.2015
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Virtuelle Methodentabellen Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 9. Juli 2015 Struktur der Objektorientierung Ein wenig Java: public
MehrVererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
Mehr