Vorlesung Software-Reengineering
|
|
- Bertold Frank
- vor 7 Jahren
- Abrufe
Transkript
1 Vorlesung Software-Reengineering Prof. Dr. R. Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2005/06
2 Überblick I 1 Blatt 2
3 1 Blatt 2 A 2.1: Challenge 1 A 2.1: Grammatik A 2.1: Beispiel A 2.1: Rahmen A 2.1: Lösung 1 A 2.1: Challenge 2 A 2.1: Lösung 2 A 2.1: Challenge 3 A 2.1: Grammatik für case A 2.1: Beispiel A 2.1: Lösung 3 A 2.2: Aufgabe 2 A 2.3: Aufgabe 3 A 2.4: Aufgabe 4 A 2.5: Aufgabe 5 R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29 Blatt 2 Blatt 2
4 Challenge 1 Aufgabenstellung Aufgabe Übersetzung if-then-elsif-else in geschachteltes if-then-else-if-then-else. Hinweise beispielorientiert denken nicht nur elsif-klausel verändern nicht nur textuelle Änderungen vornehmen R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
5 Grammatikregeln für if define if statement if [expn] then [NL][IN] [sub scope] [EX] [repeat elsif clause] [opt else clause] end if end define define elsif clause elsif [expn] then [sub scope] end define [NL][IN] [EX] R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
6 Beispiel i f b1 then i f b1 then a1 ; a1 ; e l s i f b2 then e l s e a2 ; i f b2 then e l s i f b3 then a2 ; a3 ; e l s e e l s e i f b3 then a4 ; a3 ; end i f ; e l s e a4 ; end i f ; end i f ; end i f ; R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
7 Initialisierung include "Turing.Grm" function main replace [program] P [program] by P [convertelsifs] end function R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
8 Grammatikregeln für if if statement: if StartCondition [expn] then IfBody [sub scope] Clauses [repeat elsif clause] ElseClause [opt else clause] end if elsif clause: elsif [expn] then [sub scope] R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
9 Grammatikregeln für if if statement: if StartCondition [expn] then IfBody [sub scope] Clauses [repeat elsif clause] ElseClause [opt else clause] end if elsif clause: elsif [expn] then [sub scope] Muster: if StartCondition [expn] then IfBody [sub scope] elsif FirstSubCondition [expn] then FirstElsIfBody [sub scope] OtherClauses [repeat elsif clause] ElseClause [opt else clause] end if R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
10 Challenge 1 Transformationsregel rule convertelsifs replace [if statement] if StartCondition [expn] then IfBody [sub scope] elsif FirstSubCondition [expn] then FirstElsIfBody [sub scope] OtherClauses [repeat elsif clause] ElseClause [opt else clause] end if by if StartCondition then IfBody else if FirstSubCondition then FirstElsIfBody OtherClauses ElseClause end if end if end rule R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
11 Challenge 2 Aufgabenstellung Aufgabe Übersetzung geschachteltes if-then-else-if-then-else in if-then-elsif-else. (Inverse Transformation zu Challenge 1) Hinweise iterativ denken Konstruktor einsetzen Konkatenation [.] einsetzen R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
12 Grammatikregeln für if if statement: if OuterCond [expn] then OuterThen [sub scope] OuterElseIfs [repeat elsif clause] [opt else clause] end if elsif clause: elsif [expn] then [sub scope] else clause: else [sub scope] R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
13 Grammatikregeln für if if statement: if OuterCond [expn] then OuterThen [sub scope] OuterElseIfs [repeat elsif clause] else if InnerCond [expn] then InnerThen [sub scope] InnerElsIfs [repeat elsif clause] InnerElse [opt else clause] end if end if elsif clause: elsif [expn] then [sub scope] R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
14 rule constructelsifs replace [if statement] if OuterCond [expn] then OuterThen [sub scope] OuterElsIfs [repeat elsif clause] else if InnerCond [expn] then InnerThen [sub scope] InnerElsIfs [repeat elsif clause] InnerElse [opt else clause] end if end if construct NewElsIf [elsif clause] elsif InnerCond then InnerThen by if OuterCond then OuterThen OuterElsIfs [. NewElsIf] [. InnerElsIfs] InnerElse end if end rule R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
15 Challenge 3 Aufgabenstellung Aufgabe Übersetzung case-of-label in if-then-elsif-else. Hinweise etwas aus dem Nichts erschaffen Konstruktor einsetzen Subregel definieren Modifikator each einsetzen R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
16 Semantik von each rule expandconstants replace [repeat statement] Block [repeat statement] construct ConstDefs [repeat statement] Block [deletenonconstdefs] by Block [expandconstant each ConstDefs] end rule f o r each E i n ConstDefs l o o p Block [ expandconstant E ] end l o o p R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
17 Semantik von each rule expandconstant ConstantDefinition [statement] deconstruct ConstantDefinition const ConstName [id] = ConstValue [expression] ; replace [primary] ConstName by ( ConstValue ) end rule R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
18 Grammatikregeln für case define case statement case [expn] of [case alternative] [repeat case alternative] [opt last case alternative] end case end define [NL][IN] [EX] define case alternative label [expn] [repeat comma expn] : [NL][IN] [sub scope] [EX] end define define last case alternative label : [NL][IN] [sub scope] [EX] end define R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
19 Annahme Case-Ausdruck ist frei von Seiteneffekten. c a s e x o f i f x = 2 then l a b e l 2 : a1 ; a1 ; e l s i f ( x = 1) or x = 3 then l a b e l 1, 3 : a2 ; a2 ; e l s i f x = 4 then l a b e l 4 : i f m = 5 then c a s e m o f b1 ; l a b e l 5 : e l s i f m = 7 then b1 ; b2 ; l a b e l 7 : end i f ; b2 ; b3 ; end c a s e e l s e b3 ; a2 ; l a b e l : end i f ; a2 ; end c a s e R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
20 Grammatikregeln für if define if statement if [expn] then [NL][IN] [sub scope] [EX] [repeat elsif clause] [opt else clause] end if end define define elsif clause elsif [expn] then [sub scope] end define [NL][IN] [EX] R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
21 Challenge 3 Hauptregel I rule translatecases replace [statement] case CaseVar [primary] of label FirstLabel [expn] EquivalentLabels [repeat comma expn] : DoThis [sub scope] FurtherAlternatives [repeat case alternative] DefaultAlternative [opt last case alternative] end case construct BaseCondition [expn] CaseVar = FirstLabel construct ElsIfList [repeat elsif clause] construct ElseClause [opt else clause] R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
22 Challenge 3 Hauptregel II by if BaseCondition [commatoequals CaseVar each EquivalentLabels] then DoThis ElsIfList [translatesubsidiaryalternative CaseVar each FurtherAlternatives] ElseClause [translatedefaultalternative DefaultAlternative] end if end rule R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
23 Challenge 3 Letzte Alternative function translatedefaultalternative AlternativeText [opt last case alternative] replace [opt else clause] deconstruct AlternativeText label : AlternativeBody [sub scope] by else AlternativeBody end function R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
24 Challenge 3 Nachgeordnete Alternativen function translatesubsidiaryalternative CaseVar [primary] AlternativeText [case alternative] replace [repeat elsif clause] ExistingClauses [repeat elsif clause] deconstruct AlternativeText label FirstValue [expn] OtherValues [repeat comma expn] : AlternativeBody [sub scope] construct BaseCondition [expn] CaseVar = FirstValue construct NewElsIfClause [elsif clause] elsif BaseCondition [commatoequals CaseVar each OtherValues] then AlternativeBody by ExistingClauses [. NewElsIfClause] end function R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
25 Grammatikregeln für Ausdrücke define expn [primary] [opt operator expn] end define define operator expn [op] [expn] end define define primary ( [expn] ) [prefix op] [primary] [stringlit] [number] [reference] end define R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
26 Challenge 3 Mehrere Labels rule commatoequals LeftHandSide [primary] CommaLabel [comma expn] deconstruct CommaLabel, Label [expn] replace [expn] ExistingOrExpns [expn] construct NextCondition [expn] LeftHandSide = Label by ( ExistingOrExpns ) or NextCondition end rule R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
27 Aufgabe 2 1 #i f d e f CONDITION 2 t y p e d e f i n t t ; 3 t y p e d e f i n t u ; 4 #e l s e 5 i n t t ( i n t i ) { } ; 6 i n t u ; 7 #e n d i f 8 9 i n t x, y ; 0 1 i n t main ( ) { 2 t ( x ) ; 3 u y ; 4 } R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
28 Aufgabe 3: Abstrakte Syntax e x p r ::= s i m p l e e x p r [ r e l o p e x p r ]. r e l o p ::= = <> <= >= < >. s i m p l e e x p r ::= term [ addop s i m p l e e x p r ]. addop ::= + or. term ::= f a c t o r [ mulop term ]. mulop ::= / mod and. f a c t o r ::= num i d ( e x p r ) not f a c t o r. num ::= [ ] d i g i t { d i g i t ) [. d i g i t { d i g i t } ]. d i g i t ::= i d ::= l e t t e r { l e t t e r }. l e t t e r ::= a b c... z. a + ( b + c ) 5 10 mod 3 R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
29 Aufg. 4: Intra- und interprozeduraler Kontrollfluss + SSA 1 i n t sum, prod ; 2 i n t debug = 1 ; 3 4 v o i d f o o ( i n t v a l u e ) { 5 i f ( ( v a l u e > 0) && debug ) { 6 sum = sum + v a l u e ; 7 prod = prod v a l u e ; 8 f o o ( v a l u e 1 ) ; 9 } 0 } 1 2 i n t main ( ) { 3 sum = 0 ; 4 prod = 1 ; 5 f o o ( 1 0 ) ; 6 } R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
30 Kontrollabhängigkeit entry exit R. Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2005/ / 29
Vorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. R. Koschke 1 D. Simon 2 1 Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen 2 Institut für Software Technologie Fakultät
MehrKonzepte von Programmiersprachen
Konzepte von Programmiersprachen Kapitel 3: Ausdrücke Phillip Heidegger Universität Freiburg, Deutschland SS 2009 Phillip Heidegger (Univ. Freiburg) Konzepte von Programmiersprachen KvP 1 / 17 Inhalt Let
MehrTechnische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl
Name: Vorname: Matr. Nr.: Technische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl Zwischenklausur zu Einführung in die Informatik I Hinweis: In dieser Zwischenklausur
MehrKurze Wege Übungen. Prof. Dr. Rainer Koschke 1 Dipl.-Inform. Jochen Quante 1 Dipl.-Inform. Raimar Falke 1
Kurze Wege Übungen Prof. Dr. Rainer Koschke 1 Dipl.-Inform. Jochen Quante 1 Dipl.-Inform. Raimar Falke 1 1 Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen 22. März
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2007/08 Überblick I 1 1 Das tägliche Brot
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2007/08 Überblick I 1 Refactoring Refactorings
MehrSteuerungsstrukturen. Ablaufsteuerung der PL/SQL Ausführung. IF Anweisungen. Einfaches IF
Steuerungsstrukturen Ablaufsteuerung der PL/SQL Ausführung Der logische Ablauf der Ausführung kann mit If und Loop Strukturen verändert werden Bedingte Anweisungen: IF-THEN-END IF IF-THEN-ELSE-END IF IF-THEN-ELSIF-END
MehrVorlesung Programmieren
Vorlesung Programmieren 3. Kontrollstrukturen 09.11.2016 Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2011/12 Überblick I Refactoring Code-Transformationen:
MehrSemantik von Programmiersprachen Theorie und Anwendungen (Informatik III, Wintersemester 03/04)
Eidgenossische Technische Hochschule Zurich Ecole polytechnique federale de Zurich Politecnico federale di Zurigo Swiss Federal Institute of Technology Zurich Semantik von Programmiersprachen Theorie und
MehrVorlesung Programmieren
Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),
MehrEinführung Programmierpraktikum C Michael Zwick
Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 zwick@tum.de (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik
MehrGrundlagen der Programmierung in C++ Kontrollstrukturen
Block Keine Kontrollstruktur im eigentlichen Sinn Grundlagen der Programmierung in C++ Kontrollstrukturen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Dient
MehrEinführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
MehrSyntax der Sprache PASCAL
Syntax der Sprache PASCAL Buchstaben A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z Ziffern 0 1 2 3 4 5 6 7 8 9 Sonderzeichen und Wortsymbole +
MehrLex und Yacc Lt. Worf, scannen Sie das Schiff! 300dpi, Sir?
Lex und Yacc Lt. Worf, scannen Sie das Schiff! 300dpi, Sir? Hagen Paul Pfeifer hagen@jauu.net 29. April 2004 Lex und Yacc Überblick Einführung Lex und Yacc 1 Überblick Einführung Beispiele Lex und Yacc
MehrVerzweigungen. Prof. Dr. Markus Gross Informatik I für D-MAVT (FS 2014)
Verzweigungen Prof. Dr. Markus Gross Informatik I für D-MAVT (FS 2014) Ausdruck und Anweisungen Verkürzte Operatoren, Vergleichsoperatoren Die if Anweisung Die if else Anweisung Die switch Anweisung Logische
MehrProgrammieren I. Kapitel 5. Kontrollfluss
Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,
MehrDank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung
Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität
MehrInterpreter - Gliederung
Institut für Informatik Ludwig-Maximilian Universität Interpreter - Gliederung Programmiersprache Syntax Konkrete Syntax Abstrakter Syntax Baum (Abstrakte Syntax) Parser Syntaktische Struktur einer Sprache
MehrBegriffe (Wiederholung)
Begriffe (Wiederholung) Sprache Menge aller Sätze Alphabet terminales / nicht terminales terminales A. Zeichen aus denen die Sätze der Sprache bestehen nicht terminales A. Hilfszeichen zum Bilden von Regeln
MehrDie Programmiersprache C. 2. Strukturen, Felder und Funktionen
Die Programmiersprache C 2. Strukturen, Felder und Funktionen Vorlesung des Grundstudiums Prof. Johann-Christoph Freytag, Ph.D. Institut für Informatik, Humboldt-Universität zu Berlin WS 2007/08 Teil I:
MehrDie Programmiersprache C. 2. Strukturen, Felder und Funktionen
Die Programmiersprache C 2. Strukturen, Felder und Funktionen Vorlesung des Grundstudiums Prof. Johann-Christoph Freytag, Ph.D. Institut für Informatik, Humboldt-Universität zu Berlin WS 2005/06 Teil I:
Mehr1 Formale Sprachen, reguläre und kontextfreie Grammatiken
Praktische Informatik 1, WS 2001/02, reguläre Ausdrücke und kontextfreie Grammatiken 1 1 Formale Sprachen, reguläre und kontextfreie Grammatiken Ein Alphabet A ist eine endliche Menge von Zeichen. Die
MehrKOP / FBS - Programmierung
KOP / FBS - Programmierung Programmieren in Anweisungsliste Programmieren in strukturierten Text Programmieren in Kontaktplan Programmieren in Funktionsbausteinsprache KOP Programmierung (1) 2 1 Neues
MehrZweizusammenhang und starker Zusammenhang
.. Zeizusammenhang und starker Zusammenhang Carsten Gutenger Vorlesung Algorithmen und Datenstrukturen WS /. Januar Zeizusammenhang Betrachte ein Netzerk (Graph) Z.B. Computernetzerk, Flug- oder Schienennetzerk
Mehr. Lisp. Moritz Heidkamp 25. April 2011
.. Lisp Moritz Heidkamp moritz@twoticketsplease.de 25. April 2011 1 / 36 . Greenspun s Tenth Rule Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden,
MehrInformatik 1 ( ) D-MAVT F2010. Logik, Schleifen. Yves Brise Übungsstunde 4
Informatik 1 (251-0832-00) D-MAVT F2010 Logik, Schleifen Nachbesprechung Blatt 2 Aufgabe 3c): double(9/2) 4.0 double Zuerst wird die Operation ausgeführt und dann erst die Konversion! Allgemein: Dateiendungen:.c
MehrRuby - Objektorientiertes Scripting, aber richtig!
Ruby - Objektorientiertes Scripting, aber richtig! Andreas Krennmair krennmair@acm.org 2. November 2003 0-0 Ruby - Objektorientiertes Scripting, aber richtig! 0-1 Aga Ruby s Syntax Ruby s coole Konzepte
MehrÜbung 3: VHDL Darstellungen (Blockdiagramme)
Übung 3: VHDL Darstellungen (Blockdiagramme) Aufgabe 1 Multiplexer in VHDL. (a) Analysieren Sie den VHDL Code und zeichnen Sie den entsprechenden Schaltplan (mit Multiplexer). (b) Beschreiben Sie zwei
MehrEinführung in die Programmierung mit VBA
Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen
MehrUnterspezifikation in der Semantik Hole Semantics
in der Semantik Hole Semantics Laura Heinrich-Heine-Universität Düsseldorf Wintersemester 2011/2012 Idee (1) Reyle s approach was developed for DRT. Hole Semantics extends this to any logic. Distinction
MehrDie Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrInformatik-Seminar Thema: Monaden (Kapitel 10)
Informatik-Seminar 2003 - Thema: Monaden (Kapitel 10) Stefan Neumann 2. Dezember 2003 Inhalt Einleitung Einleitung Die IO()-Notation Operationen Einleitung Gegeben seien folgende Funktionen: inputint ::
Mehr3. Wahrheitswerte. Boolesche Funktionen; der Typ bool; logische und relationale Operatoren; Kurzschlussauswertung; Assertions und Konstanten
114 3. Wahrheitswerte Boolesche Funktionen; der Typ bool; logische und relationale Operatoren; Kurzschlussauswertung; Assertions und Konstanten Wo wollen wir hin? 115 int a; std::cin >> a; if (a % 2 ==
MehrVerfügbare arithmetische Operationen ( reelle Zahlen): +, -,, /, //, mod und ggf. weitere
Prolog-Arithmetik Verfügbare arithmetische Operationen ( reelle Zahlen): +, -,, /, //, mod und ggf. weitere Verfügbare arithmetische Vergleichsoperationen: >, =, =
MehrKapitel 5: Semantische Analyse
Kapitel 5: Semantische Analyse Prinzip Operationen der Übersetzung werden an die Grammatik gebunden -> Compiler-Generatoren Themen Attributierte Grammatik Mehrpass - Compiler - Generatoren Symboltabelle
MehrEXCEL VBA Cheat Sheet
Variable Declaration Dim As Array Declaration (Unidimensional) Dim () As Dim ( To ) As
MehrPraktische Informatik 3: Funktionale Programmierung Vorlesung 11 vom : Monaden als Berechnungsmuster
16:02:16 2017-01-17 1 [30] Praktische Informatik 3: Funktionale Programmierung Vorlesung 11 vom 10.01.2017: Monaden als Berechnungsmuster Christoph Lüth Universität Bremen Wintersemester 2016/17 Frohes
MehrFunktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion
Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert
MehrPL/pgSQL. VL Datenbanksysteme. Ingo Feinerer
PL/pgSQL VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Gliederung Einführung PL/pgSQL-Programmteile
MehrUrsprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 4. November 2015 Administratives Zur Abgabe von Übungsaufgaben Nein, wir
MehrNotationen für Transformationsregeln
Notationen für Transformationsregeln Seminar Transformationen Dennis Gerke 20.01.06 Fragestellung Wie werden die Transformationsregeln in den einzelnen Systemen angegeben? Welche theoretischen Grundlagen
MehrImperative Programmierung in Java. Algorithmen und Datenstrukturen II 1
Imperative Programmierung in Java Algorithmen und Datenstrukturen II 1 Mini-Java Ein Mini-Java Programm besteht aus genau einer Klasse. In dieser Klasse gibt es genau eine main-methode. Folgende Konstrukte
MehrProf. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
6. Kontrollfluss Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Die for Schleife!Inkrement und Dekrement Operatoren ++, --!Vergleichsoperatoren , >=, ==!Die while Schleife!Die do while Schleife!Mehrfachschleifen!enum
MehrFACHHOCHSCHULE MANNHEIM
für Java-Programmierer Der Präprozessor Prof. Dr. Wolfgang Schramm FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Präprozessor Ist dem Compiler vorgeschaltet ( Prä -). Spezielle Anweisungen
MehrKlasse Label. class Label { Code code; List<Integer> fixuplist; // code positions to patch int adr; // address of label in code
Klasse Label class Label { Code code; List fixuplist; // code positions to patch int adr; // address of label in code // inserts offset to label at current void put (); // defines label to be
MehrProgrammieren in Haskell
Universität Bielefeld AG Praktische Informatik October 12, 2014 Wir begnen mit eem Überblick über die Syntax von Namen versus Schlüsselwörter Namen bezeichnen Werte (aller Art) und sd frei wählbar Schlüsselwörter
MehrObjekt-relationales Datenbanksystem Oracle
Objekt-relationales Datenbanksystem Oracle 1 Benutzerdefinierte Datentypen 1.1 Unvollständige Typen create-incomplete-type OR 1.2 Kollektionstypen REPLACE TYPE type-name create-varray-type OR TYPE type-name
MehrGrundlagen der Programmierung in C++ Kontrollstrukturen
Grundlagen der Programmierung in C++ Kontrollstrukturen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Block Keine Kontrollstruktur im eigentlichen Sinn Dient
MehrPL/pgSQL. VU Datenbanksysteme. Reinhard Pichler
PL/pgSQL VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester 2015/16 Gliederung Einführung
MehrSemantik von Programmiersprachen SS 2017
Lehrstuhl für Programmierparadigmen Denis Lohner Sebastian Ullrich denis.lohner@kit.edu sebastian.ullrich@kit.edu Semantik von Programmiersprachen SS 2017 http://pp.ipd.kit.edu/lehre/ss2017/semantik Lösungen
Mehr1 Attributierte Grammatiken. 2 Zyklische AG. 3 Codeerzeugung mit AGs. Zusatzfolien Semantische Analyse Wintersemester 2008/09 1 / 28
1 Attributierte Grammatiken 2 Zyklische AG 3 Codeerzeugung mit AGs Zusatzfolien Semantische Analyse Wintersemester 2008/09 1 / 28 Beispiel: Taschenrechner mit Attributierter Grammatik Produktion Semantische
MehrEinige Teilgebiete der Informatik
Einige Teilgebiete der Informatik Theoretische Informatik Formale Sprachen, Automatentheorie, Komplexitätstheorie, Korrektheit und Berechenbarkeit, Algorithmik, Logik Praktische Informatik Betriebssysteme,
MehrLösungsvorschläge zum Übungsblatt 11: Übersetzung von Programmiersprachen (WS 05/06)
Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. M. Gawkowski Technische Universität Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungsvorschläge zum Übungsblatt 11: Übersetzung von Programmiersprachen
MehrObjektorientiertes Programmieren II
Objektorientiertes Programmieren II Symbolische Programmiersprache. Benjamin Roth Folien von Annemarie Friedrich Wintersemester 2017/2018 Centrum für Informations- und Sprachverarbeitung LMU München 1
MehrProf. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
10. Klassen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Objektorientierte Programmierung!Das Konzept der Klassen!Members!Objekte!Konstruktoren und Destruktoren!this-Pointer!Public und Private
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 11 (Parser II)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 11 (Parser II) Hinweis: Dieses
MehrTheoretische Informatik II. WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch. 1. Teilklausur Vorname:... Nachname:...
Theoretische Informatik II WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch 1. Teilklausur 11. 12. 2007 Persönliche Daten bitte gut leserlich ausfüllen! Vorname:... Nachname:... Matrikelnummer:...
MehrAlgorithmen auf Sequenzen
Algorithmen auf Sequenzen Vorlesung von Prof. Dr. Sven Rahmann im Sommersemester 2008 Kapitel 4 Reguläre Ausdrücke Webseite zur Vorlesung http://ls11-www.cs.tu-dortmund.de/people/rahmann/teaching/ss2008/algorithmenaufsequenzen
MehrFunktionale Programmierung Grundlegende Datentypen
Grundlegende Datentypen Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 06.11.2017 16:45 Inhaltsverzeichnis Typen........................................
MehrC/C++ Programmierung
1 C/C++ Programmierung Grundlagen: Der Präprozessor Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Der Präprozessor
MehrÜbung zur Vorlesung Automatisierte Logik und Programmierung I
Übung zur Vorlesung Automatisierte Logik und Programmierung I Prof. Chr. Kreitz Universität Potsdam, Theoretische Informatik Wintersemester 2008/09 Blatt 3 Abgabetermin: 26.11.08 nach der Übung Das dritte
MehrParsing regulärer Ausdrücke. Karin Haenelt
Karin Haenelt 25.4.2009 1 Inhalt kontextfreie Grammatik für reguläre Ausdrücke Grundlagen Parsebaum: konkrete Syntax Syntaxbaum: abstrakte Syntax Algorithmus: rkennung Konstruktion des Syntaxbaumes 2 Grammatik
MehrFunktionale Programmierung Mehr funktionale Muster
Mehr funktionale Muster Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 07.12.2017 06:56 Inhaltsverzeichnis Pattern Matching..................................
MehrThema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen
1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:
MehrÜbersetzerbau Cluj-Napoca, Rumänien 2007
Übersetzerbau Cluj-Napoca, Rumänien 2007 Markus Löberbauer Institut für Systemsoftware Johannes Kepler Universität, 4040 Linz, Österreich Loeberbauer@ssw.jku.at 2007-02-01 Zusammenfassung In dieser Übung
MehrEIGENSCHAFTEN VON SPRACHEN
Vorlesung und Übung Universität Paderborn Wintersemester 2016/2017 Dr. Peter Pfahler EIGENSCHAFTEN VON SPRACHEN EWS, WS 2016/17, Pfahler C-1 Einführung Sprachen in der Informatik werden für bestimmte Zwecke
MehrFachseminar. Semantische Analyse
Fachseminar Vortragender: Arton Berisha Thema : Semantische Analyse Kursleiter: Prof. Dr. Helmut Weber Agenda 1. Einleitung 1.1 Phasen eines Compilers 1.2 Symboltabelle 2. Semantische Analyse 2.1 Was ist
MehrThis image cannot currently be displayed. Java à Matlab. bereitgestellt von Dr. Lukas Faessler 12/4/17
This image cannot currently be displayed. Java à Matlab bereitgestellt von Dr. Lukas Faessler 12/4/17 Allgemeine Programmierkonzepte kommen in verschiedenen Programmiersprachen vor sind langlebig Sprachen
MehrA Classification of Partial Boolean Clones
A Classification of Partial Boolean Clones DIETLINDE LAU, KARSTEN SCHÖLZEL Universität Rostock, Institut für Mathematik 25th May 2010 c 2010 UNIVERSITÄT ROSTOCK MATHEMATISCH-NATURWISSENSCHAFTLICHE FAKULTÄT,
MehrBerechnungsschemata: Funktion als Parameter abstrahiert Operation im Schema, wird bei Aufruf des Schemas konkretisiert
6. Funktionen als Daten, Übersicht Orthogonales Typsystem: Funktionen sind beliebig mit anderen Typen kombinierbar Notation für Funktionswerte (Lambda-Ausdruck): fn (z,k) => z*k Datenstrukturen mit Funktionen
MehrFormale Sprachen, reguläre und kontextfreie Grammatiken
Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache
MehrKontrollstrukturen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-14-15/infoeinf WS14/15 Action required now 1. Smartphone: installiere die App "socrative student"
Mehr! Konzepte objektbasierter Programmierung! ! Konzepte imperativer Programmierung!
Grundlagen der Programmierung Dr. Christian Herzog Technische Universität München Wintersemester 2012/2013 Kapitel 6: " Objektbasierter und imperativer " Programmierstil Herzog Grundlagen der Programmierung,
Mehr3 Syntax von Programmiersprachen
3 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ) formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmiersprache Festlegung, wie Programme
MehrAbstract State Machines
Abstract State Machines Patrick Köhnen Seminar Systementwurf Übersicht 1. Historie und Praxis 1.1 Yuri Gurevic 1.2 ASMs in der Praxis 2. Was sind ASMs 2.1 Transitionssystem 2.2 Signatur 2.3 -Algebra 2.4
Mehr1 Grammar Engineering. 2 Abstrakte Syntax als abstrakte Algebra. 3 LL(1)-Parser. 4 LR Parser. 5 Fehlerbehandlung. 6 Earley Parser
1 Grammar Engineering 2 Abstrakte Syntax als abstrakte Algebra 3 LL(1)-Parser 4 LR Parser 5 Fehlerbehandlung 6 Earley Parser Zusatzfolien Syntaktische Analyse Wintersemester 2008/09 1 / 44 Grammar Engineering
Mehr2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:
2.4 Schleifen Schleifen beschreiben die Wiederholung einer Anweisung bzw. eines Blocks von Anweisungen (dem Schleifenrumpf) bis eine bestimmte Bedingung (die Abbruchbedingung) eintritt. Schleifen unterscheiden
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:.............................................................
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE3-Syntaxdiagramme (Stand 05.11.2010) Aufgabe 1: Entwickeln Sie Regeln zur Übersetzung von EBNF in Syntaxdiagramme. Aufgabe 2: Eine Zahl ist entweder
Mehr3.4 Struktur von Programmen
3.4 Struktur von Programmen Programme sind hierarchisch aus Komponenten aufgebaut. Für jede Komponente geben wir Regeln an, wie sie aus anderen Komponenten zusammengesetzt sein können. program ::= decl*
MehrWS 2011/2012. Georg Sauthoff 1. October 18, 2011
in in WS 2011/2012 Georg 1 AG Praktische Informatik October 18, 2011 1 gsauthof@techfak.uni-bielefeld.de Neue Übungsgruppen in neue Übungsgruppen neue Tutoren Sprechstunden in GZI-Arbeitsraum (V2-240)
MehrLexikalische Programmanalyse der Scanner
Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung
Mehr4.Grundsätzliche Programmentwicklungsmethoden
4.Grundsätzliche Programmentwicklungsmethoden 1.1 Grundlage strukturierter und objektorientierter Programmierung Begriff Software Engineering - umfaßt den gezielten Einsatz von Beschreibungsmitteln, Methoden
MehrInformatik I Übung, Woche 40
Giuseppe Accaputo 2. Oktober, 2014 Plan für heute 1. Fragen & Nachbesprechung Übung 2 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 3 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung
Mehryacc/ bison
yacc/ bison Onlinedocumentation: http://dinosaur.compilertools.net/yacc/index.html http://epaperpress.com/lexandyacc/ Yet another compiler compiler Klassisches Unix Werkzeug, bison ist die GNU- Version
MehrElectrical testing of Bosch common rail solenoid valve (MV) injectors
Applies to MV injector, generation: -CRI 1.0 / 2.0 / 2.1 / 2.2 -CRIN 1 / 2 / 3, with K oder AK plug Bosch 10-position order number Bosch-Bestellnummer CRI: 0 445 110 xxx Bosch-Bestellnummer CRIN: 0 445
MehrBedingte Ausdrücke: (a > b)? a : b (C) if a > b then a else b case x of 1 => f1(y) 2 => f2(y) => g(y) (ML)
Ausdrücke Infix-Notation Prefix-Notation Postfix-Notation a (b +c) a+bc a bc+ Operator-Assoziativität und -Preceedence: a +b c entwpricht a +(b c) (Pascal, C,... ) a =b
MehrVorlesung Software Reengineering
Vorlesung Software Reengineering Rainer Koschke Institut für Informatik, Universität Stuttgart Requirements Design Code reengineering forward engineer- forward engireverse engineer- reverse engineer- restructuring
Mehr4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan)
4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan) 4. Ablaufsteuerung 4-1 4.1 Anweisungen Ein Programm besteht
MehrLiteratur Reguläre Ausdrücke
Literatur Reguläre Ausdrücke [2-1] https://de.wikipedia.org/wiki/regul%c3%a4rer_ausdruck [2-2] http://openbook.rheinwerk-verlag.de/linux/linux_kap08_001.html http://openbook.rheinwerk-verlag.de/shell_programmierung/shell_013_0
MehrDiskrete Mathematik 1
Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May M. Ritzenhofen, M. Mansour Al Sawadi, A. Meurer Lösungsblatt zur Vorlesung Diskrete Mathematik 1 WS 008/09 Blatt
Mehr1.4. Funktionen. Objektorientierte Programmierung mit C++
mehrfache Deklarationen sind erlaubt für jede Funktion muss es (GENAU) eine Definition geben, ansonsten linker error [the one definition rule ODR] Deklarationen in *.h - Files, Definitionen in *.cpp -
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen, Bäume)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen,
MehrObjektorientierte Programmierung mit C++ (WS 2016/2017)
Institut für Numerische Mathematik Dr. Andreas F. Borchert und Dr. Michael C. Lehn 26. Januar 2017 Blatt 12 Objektorientierte Programmierung mit C++ (WS 2016/2017) Abgabe bis zum 2. Februar 2017, 16:00
MehrC- Kurs 04 Anweisungen
C- Kurs 04 Anweisungen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa@k.uni- leipzig.de Universität Leipzig Ins@tut für Informa@k Technische Informa@k Ausdrücke Institut für Informatik Anweisungen C-Programm
MehrSeminarvortrag zum Thema maschinelles Lernen I - Entscheidungsbäume. von Lars-Peter Meyer. im Seminar Methoden wissensbasierter Systeme
Seminarvortrag zum Thema maschinelles Lernen I - Entscheidungsbäume von Lars-Peter Meyer im Seminar Methoden wissensbasierter Systeme bei Prof. Brewka im WS 2007/08 Übersicht Überblick maschinelles Lernen
MehrINFORMATIK FÜR BIOLOGEN
Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie
Mehr