Domain Specific Languages in der Praxis! Inhalt. Laborsprache Businessprache Regelsprache Transaktionsaufzeichnungsprache Translators

Größe: px
Ab Seite anzeigen:

Download "Domain Specific Languages in der Praxis! Inhalt. Laborsprache Businessprache Regelsprache Transaktionsaufzeichnungsprache Translators"

Transkript

1 Domain Specific Languages in der Praxis! Andres Koch, Object Engineering dipl. El. Ing. HTL, M. Math, Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 1 Inhalt Vorstellung Sprachen und deren Background Was ist eine DSL Bestandteile zur DSL-Übersetzung Parsertypen (bottom up, top down) Parser-Generatoren und -Arbeitsweise DSL-Design-Vorgehen Praxisbeispiele Laborsprache Businessprache Regelsprache Transaktionsaufzeichnungsprache Translators Zusammenfassung, Fragen und Diskussion Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 2

2 Software Engineering nach Mass Seit 1995 Spezialist für Modernisierung, Integration und Ablösung von Alt-Software und Alt-Systemen Tätig in verschiedenen Branchen (Telco, Finanz, Versicherungen, Industrie) und vernetzt mit Partnern. Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 3 Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 4

3 Sprachen und deren Background Sprachen mächtiger als jedes GUI-basierte Tool Unzählige Kombinationen von Elementen möglich Dem Menschen eher vertraut (Sprache in Schrift), der Entwickler-Guilde sowieso Maschinell verarbeitbar Generierbar Sprachen bilden virtuelle Maschinen oberhalb des Betriebssystems (vgl. JVM) Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 5 Was ist eine DSL Eine domänenspezifische Sprache (engl. domain-specific language, DSL) ist eine formale Sprache, die speziell für ein bestimmtes Problemfeld (die Domäne) entworfen und implementiert wird. Beim Entwurf einer DSL wird man bemüht sein, einen hohen Grad an Problemspezifität zu erreichen: die Sprache soll alle Probleme der Domäne darstellen können und nichts darstellen können, was außerhalb der Domäne liegt. Dadurch ist sie durch Domänenspezialisten ohne besonderes Zusatzwissen bedienbar [Ref. wikipedia.org] Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 6

4 Beispiele Business-Kalkulationssprache, als Excel-Ersatz: Summe Budget pro Spalte in % von Summe VJBudget pro Spalte Experimentdefinitions-Sprache für Laborversuche Ansteuerung von Messinstrumenten, Sensoren, Heizungen u.a. In einem sequentiell- und parallel-laufenden Teil Regelsprache als Ersatz für Legacy-Sprache Sprache für die Plausibilisierung von Eingaben, da C++ zum Zeitpunkt nicht für die Regelprogrammierer geeignet gewesen wäre. Aufgezeichnete Transaktionssprache Sprache, die von einem Service bei echten Transaktionen aufgezeichnet und später geändert und zu Testzwecken (Regression) wiedergegeben werden kann. Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 7 Bestandteile zur DSL- Übersetzung (traditionell) DSL Lexer Parser Symboltabelle Codegenerator Code Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 8

5 Bestandteile zur DSL-Übersetzung DSL-Source DSL-Parser AST Symbol Table Generators Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 9 Parsertypen (bottom up, top down) Kontextfreie Sprachen typisch in der IT Klassen von Parser: Top down Syntax-Analyse LL(k) Bottom-up: LR, SLR, LALR(1) (z.b yacc) Top-Down-Vorgehen ist typisch für handgeschriebene Parser Bottom-up-Vorgehen ist typisch für generierte Parser Bei DSLs kann man kontextfreie Sprachen so entwerfen, dass sie keine Mehrdeutigkeiten haben. LL(1) top down 1 look ahead LR(1) bottom up 1 look ahead Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 10

6 Grammatik einer DSL Term Nonterminals Logexpr ::= Factor:v1 {: RESULT = v1; :} Term:v1 ADDOP Factor:v2 {: RESULT = v1.add(v2); :} Term:v1 SUBOP Factor:v2 {: RESULT = v1.sub(v2); :} ; ::= Term:v1 {: RESULT = v1; :} Logexpr:v1 EQUOP Term:v2 {: RESULT = v1.eq(v2); :}... Terminals Codegeneration (gehört nicht zum Parser) Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 11 Interpreter vs. Translator Interpreter können auf die optimale Verarbeitung einer DSL abgestimmt werden. Bei Interpretern verwendet man in der Regel einen Zwischencode (z.b. Byte-Code) der optimal durch eine Stackmaschine verarbeitet werden kann. Translators sind dort gefragt, wo bereits eine Laufzeit- Umgebung vorhanden ist (z.b. JVM). Translators sind auch zur Umwandlung von Sprachdialekten geeignet. Translator vs Interpreter, ist eine Design-Entscheid, der aufgrund der Anforderungen zu fällen ist. Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 12

7 Parser-Generatoren und Arbeitsweise Parsergeneratoren generieren aus der Grammatik-Definition (typ. EBNF) den Code für den Parser. Sowohl Top-Down-Parser wie auch Bottom-Up-Parser Top-Down-Parser sind Programme, welche wie von Hand geschriebene Parser aussehen: If (nexttolken() == IF_TOK) { parseif(); }... Bottom-up Parser generieren State-Event-Tabellen für eine Stackmaschine. Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 13 Parser-Generatoren und Arbeitsweise (bottom-up) short yytable[] = { 37, 174, 67, 38, 130, 39, 67, 67, 67, 67, 67, 3, 67, 6, 120, 190, 146, 275, 86, 6, 59, 277, 129, 118, 67, 79, 80, 123, 101, 1, 284, 69, 7, 257, 4, 69, 69, 69, 69, 69, 102, 69, 87, 88, 89, 90, 91, 92, 157, 162, 143, 144, 163, 69, 37, 101, 68, 38, 67, 39, 68, 68, 68, 68, 68, 175, 68, 235, 176, 10, 206, 134, 135, 84, 224, 85, 258, 11, 68, 93, 94, 83, 131, 132, 133, 187, 81, 69, 12, 158, 54, 82, 56, 59, 60, 146, 244, 245, 246, 247, 248, 249, 159, 61, 62, 63, 64, 65, 37, 95, 167, 38, 68, 39, 168, 153, 66, 100, 170, 96, 172, 98, 205, 18, 255, 137, 138, 139, 140, 141, 142, 67, 68, 69, 70, 71, 72, 73, 74, 278, 75,... usw... Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 14

8 Parser-Generatoren und Arbeitsweise (top-down) if ( ((LA41_0>=NOT_OP && LA41_0<=NOT_OP2) (LA41_0>=PLUS_OP && LA41_0<=MINUS_OP) LA41_0==IDENT LA41_0==SINGLE_QUOTED_STRING (LA41_0>=DECIM AL_CONSTANT && LA41_0<=DOUBLE_QUOTED_STRING) LA41_0==73) ) { alt41=1; } switch (alt41) { case 1 : // Q:\\proj\\OE\\PLI2J/grammar/PLI2J.g:0:0: expression { pushfollow(follow_expression_in_attachparameter2852); expression258=expression(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addchild(root_0, expression258.gettree()); } } break; Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 15 Populäre Parser-Generatoren Oldies: yacc, lex (Unix) C, C++ (bottom-up) Bison (Linux) C, C++ (gleiche Grammatik wie yacc) Newbies: JavaCup (bottom-up) Java JavaCC (Java Compiler Compiler) Java Super-Newbies: ANTLR (antlr.org) Top-down, mit DFAs für Look-ahead Lexer integriert Tree-Syntax String-Templates Java und andere Parser-Sprachen Eclipse Plugin Xtext 1.0 (eclipse.org/xtext) Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 16

9 Design-Vorgehen Genauen Zweck bestimmen (Input, Output) Grammatik entwerfen und verifizieren Infrastruktur (Parser-Gen, Lexer, Symbol-Table) Grammatik übersetzen und code-freien Parser mit obiger Infrastruktur erstellen. Grammatik mit vielen Beispielen verifizieren (in min. Infrastruktur). Rest des Übersetzers/Interpreters implementieren/testen: Codegenerator AST-Visitors/Generatoren User-Interface Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 17 Praxisbeispiele Laborsprache Businesssprache Regelsprache Transaktionsaufzeichnungsprache Sprach-Translator Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 18

10 Laborsprache Laborsystem für Prozess-Experimente im Kleinen Bestehende Hardware (Messinstrumente, Heizungen, Sensoren, Ventile, Rührwerke etc.) Gefordert: Laborsprache für den Laboranten, der den Prozess programmieren kann. Paralell laufender Teil (Loop, Thread) Sequentieller-Teil, der den Prozessablauf bestimmt Realisierung: yacc C QNX (von yacc generierter C-Code darauf portiert) Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 19 Businesssprache PC-Software-Pallette benötigte eine Kalkulation-Sprache, welche individuelle Bedürfnisse abdecken konnte Sprache wurde neu entworfen Vorbild APL (A Programming Language) aber les- und schreibbar. Einfache Tabellen-Verarbeitung Deutsche Syntax, intuitiv formulierbar Gescheitert am mangelnden Intellekt des Benutzers, denn auch wenn Sprache einfach formuliert werden kann, benötigt es Analyse. Realisierung: yacc C, sowohl MSDOS + UNIX, Interpreter Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 20

11 Businesssprache Beispiel Dollar.Kurs=1.32 Offerte.VS1= erz 5 3 aus OffV1(;2)= OffV1(;3)= OffV1:titel= "VS1 License Pricing" OffV1(2;) = OffV1(1;) * DolK OffV1(3;) = OffV1(2;) + 6.5% OffV1(4;) = OffV1(2;) * 25% * 70% OffV1(5;) = OffV1(2;) * 25% * 30% OffV1:oben="k$-Preis Lief" "ksfr." "ksfr.+mwst" "Prov. DU" "Prov. KSE" OffV1:links = "Company Lic" "58-Package" "add. Unit" VS1.Preis.per.Unit = OffV1(3;) / spiegel KSE.Add.Marge = 10% VS1.Preis.Liste = Erz 5 3 aus VS1PL(;2) = VS1PL(;3) = VS1PL:links= "1-10" "11-50" "51-100" VS1PL:oben="K-$-EndUser" "$-Dist" "sfr-eu" "sfr-eu+mwst" "EU-KSE" VS1PL(3;) = VS1PL(1;) * DolK VS1PL(4;) = VS1PL(1;) * DolK + 6.5% VS1PL(5;) = VS1PL(1;) * DolK + KSEAM + 6.5% Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 21 Regelsprache Regelsprache als Ersatz für Legacy-Sprache Sprache für die Plausibilisierung von Eingaben C++ wäre zum Zeitpunkt nicht für die Regelprogrammierer geeignet gewesen. Letzte zwei Programmierer, welche die alte Software verstanden haben, haben umgeschrieben. Start mit Grundsprach-Set, während Umschreibphase wurde nach Bedarf erweitert. Compiler (yacc-basiert) generiert Byte-Code Byte-Code-Interpreter zur Laufzeit in Service integriert Spätere Generierung von Java-Regelklassen Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 22

12 Regelsprache Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 23 Regelsprache Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 24

13 Regelsprache Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 25 Regelsprache (Entwicklungsumgebung) Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 26

14 Transaktions- Aufzeichnungsprache Aufzeichnungsformat für Regressions-Tests Client-Transaktionen werden direkt vom Service aufgezeichnet und in lesbarer Form zurückgeliefert Interpreter kann die Aufzeichnung entweder abspielen, oder man kann sie vor der Ausführung bearbeiten und mit externen Daten ergänzen Realisation: JavaCup Interpreter (in Java) Logging Data-Feeding Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 27 Transaktions- Aufzeichnungsprache (Bsp) start("test"); start("goiz8"); logln("efkzxx00="+a2100.efkzxx00); A2100.EFKZXX00="01"; A2100.ERNXXX00 = " "; A2100.EIZXXX00 = "41"; ** ;20:37:14 commit; stop("goiz8"); ** ;20:37:21 ** logln("a2111.enrfmt00=" + A2111.ENRFMT00); logln("a2116.enrfmt00=" + A2116.ERNXXX00); #NR=1+#NR; $TIME=stop("TEST"); #Sum=0 + $TIME + #Sum; #Avg=(0+#Sum)/(#NR); reportln("time of Run#"+#NR+"="+ $TIME +" ms Avg=" + #Avg); close; Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 28

15 Sprach-Translator PL/1-Source Manual or Automatic Adjustment PLI2JParser AST Repository Crossreference Code statistics References Java Code (EJB) Java Code DB-Access Additional Products Generators Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 29 Sprach-Translator nicht wirklich eine DSL Portierung alter Programmiersprachen auf neue Plattformen PL/1 Umfangreiche Sprache Parser-Generatoren kommen an den Anschlag Generierter Code: Lexer: Parser: Zeilen Grammatik Zeilen Code-Generierung über AST Realisation ANTLR (Top-Down) Java Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 30

16 Fazit - DSL Sprachen sind oft mächtiger als andere Mechanismen DSL muss nicht so umfangreich wie eine Programmiersprache sein. Erstellung eines Parsers mit Parser-Generatoren heute ein Kinderspiel Design gehört dazu und darf nicht vernachlässigt werden Einsatzgebiete sind sehr zahlreich Viel Spass beim Experimentieren! Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 31 Domain Specific Languages in der Praxis Fragen? Copyright 2010 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 32

Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten

Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten Aufgabenbeschreibung 29. Juli 2011 1 Einleitung und Motivation Der Parser-Generator Antlr [Par07] bietet die Möglichkeit, die Auswahl

Mehr

30. Parser-Generatoren

30. Parser-Generatoren 30. Parser-Generatoren Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden http://st.inf.tu-dresden.de Version 11-0.1,

Mehr

DSLs mit Xtext entwerfen. 17.08.2012, A. Arnold

DSLs mit Xtext entwerfen. 17.08.2012, A. Arnold DSLs mit Xtext entwerfen 17.08.2012, A. Arnold Copyright 2012 anderscore GmbH Inhalt 1. Was sind DSLs? 2. Xtext Konzepte 3. Einführung ins Sprachdesign 4. Hands On! 3 4 8 20 2 Was sind DSLs? Domain Specific

Mehr

Definitionen/Vorarbeit zum Thema Java

Definitionen/Vorarbeit zum Thema Java Definitionen/Vorarbeit zum Thema Java Programmiersprachen: System von Wörtern und Symbolen, die zur Formulierung von Programmen für die elektronische Datenverarbeitung verwendet werden. Arten: z.b. Javascript

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 14 Parsen, Suchen und Sortieren 19./26.01.2015 Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION

Mehr

Praktikum Softwareanalyse und -transformation

Praktikum Softwareanalyse und -transformation Praktikum Softwareanalyse und -transformation Thilo Mende Universität Bremen Fachbereich 3 Mathematik und Informatik Arbeitsgruppe Softwaretechnik http://www.informatik.uni-bremen/st Sommersemester 2009

Mehr

Definition von LR(k)-Grammatiken

Definition von LR(k)-Grammatiken Definition von LR(k)-Grammatiken Ziel: Ein Lookahead von k soll ausreichen um entscheiden zu können, welche Regel angewendet werden muss. Definition: FIRST k (w 1 w n ):= w 1 w k, falls n k, w 1 w n, sonst.

Mehr

Graphische Entwicklungsumgebung für eine Echtzeitprogrammiersprache

Graphische Entwicklungsumgebung für eine Echtzeitprogrammiersprache Graphische Entwicklungsumgebung für eine Echtzeitprogrammiersprache Masterarbeit Vorgetragen von: Studiengang: Erstprüfer: Zweitprüfer: Andreas Enns MSc Elektro- und Informationstechnik Prof. Dr.-Ing.

Mehr

Wer ich bin Christoph Knauf

Wer ich bin Christoph Knauf Wer ich bin Christoph Knauf xing.com/profile/christoph_knauf2 @C_Knauf christoph.knauf@itemis.de Wer ist itemis? Wer ist itemis? Gegründet 2003 Wer ist itemis? Gegründet 2003 Gründergeführt Wer ist itemis?

Mehr

Definition von domänenspezifischen Sprachen mit Xtext: Einführung

Definition von domänenspezifischen Sprachen mit Xtext: Einführung Definition von domänenspezifischen Sprachen mit Xtext: Einführung 28. November 2012 Taentzer Modellgetriebene Softwareentwicklung 246 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen

Mehr

Einführung. (Compiler) Prof. Dr. Oliver Braun. Letzte Änderung: :49. Einführung 1/26

Einführung. (Compiler) Prof. Dr. Oliver Braun. Letzte Änderung: :49. Einführung 1/26 Einführung (Compiler) Prof. Dr. Oliver Braun Letzte Änderung: 10.05.2017 15:49 Einführung 1/26 Ein Compiler ist ein Computerprogramm das ein Programm geschrieben in einer Sprache in ein Programm übersetzt

Mehr

Codegenerierung mit Xtend. 21. Januar 2015

Codegenerierung mit Xtend. 21. Januar 2015 Codegenerierung mit Xtend 21. Januar 2015 Überblick Xtend bietet einen Template-basierten Ansatz zur Codegenerierung Xtend enthält eine spezielle Template-Sprache. Das Modell kann beliebig benutzt werden,

Mehr

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder Java: Kapitel 1 Überblick Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Was ist Java? Die Java-Technologie umfasst die Programmiersprache Java sowie die Java-Plattform

Mehr

Userinterfaces für Computer Theorem Prover, Machbarkeits-Studie im ISAC-Projekt

Userinterfaces für Computer Theorem Prover, Machbarkeits-Studie im ISAC-Projekt Userinterfaces für Computer Theorem Prover, Machbarkeits-Studie im ISAC-Projekt Bachelorarbeit Telematik Institut für Software Technologie Technische Universität Graz 21.06.2011 Outline 1 Ausgangssituation:

Mehr

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Software 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

Mehr

Testen von sicherheitskritischer Embedded Software mit frei verfügbaren Tools. - ein Erfahrungsbericht

Testen von sicherheitskritischer Embedded Software mit frei verfügbaren Tools. - ein Erfahrungsbericht Testen von sicherheitskritischer Embedded Software mit frei verfügbaren Tools - ein Erfahrungsbericht Martin Mühlemann CSA Engineering AG, CH-4500 Solothurn Ausgangslage Embedded-Firmware testen für ein

Mehr

Der Parsergenerator BTRACC2

Der Parsergenerator BTRACC2 Der Parsergenerator BTRACC2 Uwe Erdmenger pro et con Innovative Informatikanwendungen GmbH 11. Workshop Software-Reengineering 04.-06. 06. Mai 2009, Bad Honnef Eigenschaften von Legacy-Quellcode Sprachen

Mehr

Compiler. Einführung. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung:

Compiler. Einführung. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung: Compiler Einführung Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 15:49 Inhaltsverzeichnis Ein Compiler................................... 2 Ein Compiler...................................

Mehr

Compiler: Einführung

Compiler: Einführung Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 15:49 Inhaltsverzeichnis Ein Compiler................................... 2 Ein Compiler...................................

Mehr

Speech Recognition Grammar Compilation in Grammatikal Framework. von Michael Heber

Speech Recognition Grammar Compilation in Grammatikal Framework. von Michael Heber Speech Recognition Grammar Compilation in Grammatikal Framework von Michael Heber Agenda 1. Einführung 2. Grammatical Framework (GF) 3. Kontextfreie Grammatiken und Finite-State Modelle 4. Quellen 2 1.

Mehr

Übung 5. Implementierung einer Datenbank. Prof. Dr. Andreas Schmietendorf 1. Übung 5

Übung 5. Implementierung einer Datenbank. Prof. Dr. Andreas Schmietendorf 1. Übung 5 Implementierung einer Datenbank Prof. Dr. Andreas Schmietendorf 1 Aufgabenbeschreibung Prof. Dr. Andreas Schmietendorf 2 Zielstellung Nachdem innerhalb der Übung 4 das konzeptionelle Modell einer späteren

Mehr

Rainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR

Rainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR Rainer Stropek cubido Baumschule Expression Trees in C#, CLR und DLR Inhalt Als Anwendungsentwickler kommt man selten mit Expression Trees in Berührung. Sie sind ein Implementierungsdetail von LINQ. Ihre

Mehr

Rapid Java wie mit Forms

Rapid Java wie mit Forms DOAG Konferenz 2011 Rapid Java wie mit Forms Java aktuell: XDEV 3 ist die erste professionelle Java IDE für Rapid Application Development. Viele RAD-Funktionen und die Arbeitsweise damit erinnern sehr

Mehr

Software Entwicklung 1

Software 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

Mehr

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann Vorgetragen von Sanaz Mostowfi Anna Polovets Mandy Neumann Gliederung Was ist DSL? Welche Arten von DSL gibt es? Vor und Nachteile Werkzeuge zur Erstellung von DSLs XText Definition: DSL (Domain Specific

Mehr

MDSD Einführung und Überblick

MDSD Einführung und Überblick Model Driven Software Development MDSD Einführung und Überblick Referent: Carsten Schädel Seite 2 / 33 Ziele Grundgedanke Glossar der wichtigsten Begriffe Seite 3 / 33 Glossar Seite 4 / 33 mögliche Definitionen:

Mehr

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013 Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick 7. Februar 2013 Überblick Zusammenfassung: Generell: Konzepte der Softwaretechnik im Kontext der modellgetriebenen Entwicklung Diskussion

Mehr

(Building) Flexible Functional Programming Interfaces. Von Amos Treiber

(Building) Flexible Functional Programming Interfaces. Von Amos Treiber (Building) Flexible Functional Programming Interfaces Von Amos Treiber Gliederung Funktionale Programmierung Einführung Aspekte Vergleich: Funktional vs Imperativ Bending the language towards the problem

Mehr

Compilerbau für die Common Language Run-Time

Compilerbau für die Common Language Run-Time Compilerbau für die Common Language Run-Time Syntax und Semantik von Programmiersprachen 2 Compilerbau Sprachbeschreibung vs. Implementierung Beschreibung: formale oder informale (engl.) Lexik, Syntax,

Mehr

Earley Parser. Flutura Mestani

Earley Parser. Flutura Mestani Earley Parser Flutura Mestani Informatik Seminar Algorithmen zu kontextfreien Grammatiken Wintersemester 2015/2016 Prof. Martin Hofmann, Dr. Hans Leiß Flutura Mestani 25.11.2015 Seminar Algorithmen zu

Mehr

Guile Die Erweiterungssprache des GNU-Projekts

Guile Die Erweiterungssprache des GNU-Projekts Guile Die Erweiterungssprache des GNU-Projekts Matthias Köppe Otto-von-Guericke-Universität Magdeburg Magdeburger Linux User Group e. V. 19. Mai 2001 Überblick Guile als Erweiterungssprache Guile als Scheme-Implementierung

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen Syntax von Programmiersprachen SEP 209 Programmiersprachen Sprache = Menge von Wörtern, typischerweise unendlich Programmiersprache: Wörter repräsentieren Programme Programm kann auf einem Computer evtl.

Mehr

Lexikalische Programmanalyse der Scanner

Lexikalische 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

Mehr

Compilerbau Syntaxanalyse 68. LR(1)-Syntaxanalyse

Compilerbau Syntaxanalyse 68. LR(1)-Syntaxanalyse Compilerbau Syntaxanalyse 68 LR(1)-Syntaxanalyse Bei der LL(1)-Syntaxanalyse wird allein aufgrund des nächsten Tokens die zu verwendende Produktion ermittelt. Bei der LR(1)-Syntaxanalyse braucht diese

Mehr

Anforderungen gezielter umsetzen, Optimieren, Transparenz schaffen

Anforderungen gezielter umsetzen, Optimieren, Transparenz schaffen Application Lifecycle Management in Eclipse Anforderungen gezielter umsetzen, Optimieren, Transparenz schaffen Christoph Bräuchle, MKS GmbH Interessen (klassisch) Budget: werden Aufwände eingehalten, ergeben

Mehr

Ergänzungen zur Theoretischen Informatik. Compilerbau mit ANTLR. Literatur Das Standardwerk zum Compilerbau ist [1].

Ergänzungen zur Theoretischen Informatik. Compilerbau mit ANTLR. Literatur Das Standardwerk zum Compilerbau ist [1]. Themen Compilerbau mit ANTLR. Literatur Das Standardwerk zum Compilerbau ist [1]. [1] Aho, Alfred V. ; Lam, Monica S. ; Sethi, Ravi: Compiler. Prinzipien, Techniken und Tools. Pearson, 2008. ISBN 3827370973

Mehr

Inhalt Kapitel 11: Formale Syntax und Semantik

Inhalt Kapitel 11: Formale Syntax und Semantik Inhalt Kapitel 11: Formale Syntax und Semantik 1 Abstrakte und konkrete Syntax 2 Lexikalische Analyse 3 Formale Sprachen, Grammatiken, BNF 4 Syntaxanalyse konkret 266 Abstrakte und konkrete Syntax Abstrakte

Mehr

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr.

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr. Language Workbench Vortrag von:! Aktuelle Themen der Softwaretechnologie Arthur Rehm Steven Cardoso Betreut von: Prof. Dr. Reichenbach [1] !2 Index Kontext Domain Specific Language (DSL) Language Workbench

Mehr

5. Syntaxanalyse und der Parser-Generator yacc. 5.5 Aufsteigende Analyse. Absteigende Analyse versus aufsteigende Analyse. 5.5 Aufsteigende Analyse

5. Syntaxanalyse und der Parser-Generator yacc. 5.5 Aufsteigende Analyse. Absteigende Analyse versus aufsteigende Analyse. 5.5 Aufsteigende Analyse 5. Syntaxanalyse und der Parser-Generator yacc 5.1 Einleitung 5.2 Kontextfreie Grammatiken 5.3 Grundlagen von yacc 5.4 Absteigende Analyse Übersetzergenerierung Syntaxanalyse und yacc (2) Jan Bredereke,

Mehr

Continuous Delivery mit Orcas

Continuous Delivery mit Orcas Deployment von Oracle- Datenbanken in agilen Projekten Dr. Olaf Jessensky Senior Consultant OPITZ CONSULTING Deutschland GmbH DOAG Regionaltreffen Südbayern, München, 03.12.2015 OPITZ CONSULTING Deutschland

Mehr

Interpreter - Gliederung

Interpreter - 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

Mehr

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse Dr. Lothar Wendehals Softwarearchitekt Axel Terfloth Leiter Forschung und Entwicklung Software Engineering 2009 4. März 2009, Kaiserslautern

Mehr

Sourcecode generieren? Ja, aber wie?

Sourcecode generieren? Ja, aber wie? Sourcecode generieren? Ja, aber wie? Vor der Aufgabe Sourcecode zu generieren steht man zum Beispiel immer dann, wenn Variationen eines bestehenden Sourcecode erstellt werden müssen. Abhängig davon, wie

Mehr

Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman. Compiler. informatik. Prinzipien, Techniken und Werkzeuge. 2., aktualisierte Auflage

Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman. Compiler. informatik. Prinzipien, Techniken und Werkzeuge. 2., aktualisierte Auflage Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman it informatik Compiler Prinzipien, Techniken und Werkzeuge 2., aktualisierte Auflage Inhaltsverzeichnis Vorwort... XXIX Zur deutschen Ausgabe...XXXIII

Mehr

Comparing Software Factories and Software Product Lines

Comparing Software Factories and Software Product Lines Comparing Software Factories and Software Product Lines Martin Kleine kleine.martin@gmx.de Betreuer: Andreas Wuebbeke Agenda Motivation Zentrale Konzepte Software Produktlinien Software Factories Vergleich

Mehr

FitNesse. Testen von Software. Lehrstuhl Datenstrukturen und Softwarezuverlässigkeit WS 15/16. Jonas Ahlers

FitNesse. Testen von Software. Lehrstuhl Datenstrukturen und Softwarezuverlässigkeit WS 15/16. Jonas Ahlers FitNesse Testen von Software Lehrstuhl Datenstrukturen und Softwarezuverlässigkeit WS 15/16 Jonas Ahlers 05.02.2016 Gliederung 1. Überblick 2. Grundfunktionen 3. Ausführungsumgebung 4. Workflow 5. Beispiel

Mehr

MDRE die nächste Generation des Requirements Engineerings

MDRE die nächste Generation des Requirements Engineerings MDRE die nächste Generation des Requirements Engineerings Tom Krauß, GEBIT Solutions GmbH Copyright 2007 GEBIT Solutions Agenda Requirements Engineering heute eine Bestandsaufnahme Modell-Driven Requirements

Mehr

Einführung in die Modelltransformation mit Xtend

Einführung in die Modelltransformation mit Xtend Einführung in die Modelltransformation mit Xtend 12. Dezember 2012 Taentzer Modellgetriebene Softwareentwicklung 297 Überblick Xtend: Eine statisch getypte Sprache, die zur Modellzu-Text-Transformation

Mehr

Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung Jens Trompeter (Hrsg.), Georg Pietrek (Hrsg.), Juan Carlos Flores Beitran, Boris Holzer, Thorsten Kamann, Michael Kloss, Steffen A. Mork, Benedikt Niehues, Karsten Thoms Modellgetriebene Softwareentwicklung

Mehr

Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators

Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators München, 21. Nowember 2007 Nicola Marangoni & Jörg Westermayer Nicola.Marangoni@SHS-VIVEON.com Joerg.Westermayer@SHS-VIVEON.com

Mehr

Automatisierte Entwickler VMs works on my machine zählt nicht mehr ;-)

Automatisierte Entwickler VMs works on my machine zählt nicht mehr ;-) Automatisierte Entwickler VMs works on my machine zählt nicht mehr ;-) Folie 1 About Seit 10 Jahren bei Zühlke Software Architekt und Infrastructure-as-Code Enthusiast In verschiedensten Projekten unterwegs......und

Mehr

Tool-Chain. Übung. Eclipse, SVN, Ant, Cobertura, Metrics Labor "Software Engineering Experiment" Sebastian Meyer und Kai Stapel

Tool-Chain. Übung. Eclipse, SVN, Ant, Cobertura, Metrics Labor Software Engineering Experiment Sebastian Meyer und Kai Stapel Tool-Chain Übung Eclipse, SVN, Ant, Cobertura, Metrics Labor "Software Engineering Experiment" 2009 Sebastian Meyer und Kai Stapel 05.05.2009 Überblick SVN Grundlagen SVN in Eclipse Ant in Eclipse Cobertura

Mehr

Compilerbau für die Common Language Run-Time

Compilerbau für die Common Language Run-Time Compilerbau für die Common Language Run-Time Syntaxanalyse 2 Grammatikgetriebener Compilerbau Grammatik Teil der Sprachdefinition Grammatik liefert Liste der Tokenklassen Grammatik hilft bei Strukturierung

Mehr

Generatives Programmieren

Generatives Programmieren Generatives Programmieren Seminar Produktlinien WS03/04 Tammo van Lessen 08.01.2004 Outline Einleitung Generatoren Generatives Programmieren Fazit Einleitung Industrielle Entwicklung 1826 Austauschbare

Mehr

Einführung in die Programmiertechnik

Einführung in die Programmiertechnik Einführung in die Programmiertechnik Formale Beschreibung von Programmiersprachen Lexikalische Regeln Definition von Wörtern (Lexem, Token) Gruppierung von Zeichen Lexikalische Kategorien: Klassen ähnlicher

Mehr

Syntaxanalyse Ausgangspunkt und Ziel

Syntaxanalyse Ausgangspunkt und Ziel Syntaxanalyse Ausgangspunkt und Ziel Ausgangspunkt: Kontextfreie Grammatik Im Normalfall BNF, manchmal EBNF BNF = Backus-Naur-Form = Produktionsregeln EBNF = erweiterte BNF (+ reguläre Ausdrücke) Prüfung

Mehr

Stratego/XT und ASF+SDF Meta-Environment. Paul Weder Seminar Transformationen Datum:

Stratego/XT und ASF+SDF Meta-Environment. Paul Weder Seminar Transformationen Datum: Stratego/XT und ASF+SDF Meta-Environment Paul Weder Seminar Transformationen Datum: 20.01.2006 Gliederung Allgemeines ASF+SDF Meta-Environment Stratego/XT Zusammenfassung/Vergleich SDF (Syntax Definition

Mehr

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Remote Method Invocation Teil 3 RMI over IIOP el0100 copyright Abt. Technische Informatik,

Mehr

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9 Kapitel 4 Einführung in den Scannergenerator Flex Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9 Generatoren für die lexikalische Analyse Scannergeneratoren werden eingesetzt um die

Mehr

Java Scripting. Java Erweiterungen mittels Groovy- oder JavaScript Sprachen. Prof. Dr. Nikolaus Wulff

Java Scripting. Java Erweiterungen mittels Groovy- oder JavaScript Sprachen. Prof. Dr. Nikolaus Wulff Java Scripting Java Erweiterungen mittels Groovy- oder JavaScript Sprachen Prof. Dr. Nikolaus Wulff Vorüberlegungen Müssen Anwendungen dynamisch um Funktionalität durch den Benutzer erweitert werden empfiehlt

Mehr

JavaCC Rainer Schmidberger

JavaCC Rainer Schmidberger JavaCC Rainer Schmidberger Universität Stuttgart Institut für Softwaretechnologie, Abt. Software Engineering rainer.schmidberger@informatik.uni-stuttgart.de Übersicht JavaCC ist ein in Java implementierter

Mehr

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 02 Java was, wann, warum, wieso Java, eine objektorientierte Programmiersprache Java ist eine objektorientierte Programmiersprache und als solche ein eingetragenes Warenzeichen der Firma Sun Microsystems.

Mehr

Deterministische PDAs

Deterministische PDAs Deterministische PDAs Erinnerung: Ein PDA ist deterministisch, wenn q Q, a Σ, Z Γ: δ(q,a,z) + δ(q,ε,z) 1. Definition: Eine Sprache heißt deterministisch kontextfrei, wenn es für sie einen DPDA gibt. Ziel:

Mehr

Opentext Business Intelligence. edocs DM. Brava! Exceed TurboX Remotedesktop. Roadshow April, 2018 Helmut Reimann

Opentext Business Intelligence. edocs DM. Brava! Exceed TurboX Remotedesktop. Roadshow April, 2018 Helmut Reimann Opentext Business Intelligence edocs DM Brava! Exceed TurboX Remotedesktop Roadshow April, 2018 Helmut Reimann Agenda Was ist Opentext Business Intelligence? Das OTBI Produkt Paket Erzeugen von Datenmodellen

Mehr

Symphony und das Hierarchische Reflexion Modell

Symphony und das Hierarchische Reflexion Modell Symphony und das Hierarchische Reflexion Modell Rainer Koschke und Universität Stuttgart Institut für Softwaretechnologie Abt. Programmiersprachen und Compilerbau WSR 2004 Symphony Designebene data flow

Mehr

Übersetzergenerierung mit lex und yacc

Übersetzergenerierung mit lex und yacc Übersetzergenerierung mit lex und yacc 0. Überblick und Organisatorisches Jan Bredereke WiSe 2006/07, Universität Bremen otivation Übersetzer: Grundlegende Werkzeuge welche Fehler kann er finden? Konstrukt

Mehr

Software-Engineering im Sommersemester 2014

Software-Engineering im Sommersemester 2014 Methodische Grundlagen des Software-Engineering SS 2014 Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2014 Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl

Mehr

SIG Development. 100%ige Generierung von Formsmasken mit Designer 6i. Gabriele Friedel. Dr. Peter Koch

SIG Development. 100%ige Generierung von Formsmasken mit Designer 6i. Gabriele Friedel. Dr. Peter Koch SIG Development 100%ige Generierung von Formsmasken mit Designer 6i Dr. Peter Koch Gabriele Friedel Nordrheinische Ärzteversorgung Tersteegenstr. 9 40474 Düsseldorf 21. Februar 2008 1 Agenda Vorstellung

Mehr

Lex und Yacc Lt. Worf, scannen Sie das Schiff! 300dpi, Sir?

Lex 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

Mehr

Software-Notationen. K. Bürtlmair. Masterstudiengang ITS //2010/11 Fachhochschule Salzburg. 3. Oktober 2013

Software-Notationen. K. Bürtlmair. Masterstudiengang ITS //2010/11 Fachhochschule Salzburg. 3. Oktober 2013 Software-Notationen K. Bürtlmair Masterstudiengang ITS //2010/11 Fachhochschule Salzburg 3. Oktober 2013 K. Bürtlmair, Masterstudiengang ITS //2010/11 Fachhochschule Salzburg Software-Notationen 1/27 Textuelle

Mehr

Von der Grammatik zum AST

Von der Grammatik zum AST Von der Grammatik zum AST Welche Eigenschaften soll ein Parser haben? Wann ist eine Grammatik eindeutig? Wie sollte eine Grammatik aussehen? Theoretischer Hin tergrund: FIRST, FOLLOW Einschränkungen von

Mehr

Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion

Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion Historie Die ersten Compiler entstanden in den 50ern.

Mehr

Integration von Model-Driven Development und formaler Verfikation in den Softwareentwicklungsprozess

Integration von Model-Driven Development und formaler Verfikation in den Softwareentwicklungsprozess Integration von Model-Driven Development und formaler Verfikation in den Softwareentwicklungsprozess Eine Fallstudie mit einem 3D-Tracking-System Dipl.-Inform. Christian Ammann Fachhochschule Osnabrück

Mehr

Einführung Compilergenerierung Bewertung Referenzen. SableCC. Benjamin Daeumlich

Einführung Compilergenerierung Bewertung Referenzen. SableCC. Benjamin Daeumlich 06.07.2006 Gliederung 1 2 3 4 . Autor und Name Features Autor Autor und Name Features Autor: Étienne Gagnon : Teil seiner Masterarbeit an der McGill-Universität Montreal vom März 1998 Name Autor und Name

Mehr

Ein kleiner Blick auf die generische Programmierung

Ein kleiner Blick auf die generische Programmierung TgZero Technik.Blosbasis.net June 3, 2013 1 Inhaltsverzeichnis 1 Vorwort 3 2 Ein kleines Beispiel 3 3 Templates 3 4 Verschiedene Datentypen 4 5 Variadic Templates 5 6 Unterschied zwischen den Programmiersprachen

Mehr

So schreiben Sie ein Parser-Programm

So schreiben Sie ein Parser-Programm Universität des Saarlandes Fachrichtung Informatik Programming Systems Lab Prof. Gert Smolka Proseminar Programmiersysteme WS 03/04 Höhere Funktionale Programmierung: Parser-Kombinatoren Matthias Berg

Mehr

v i r t u a l 7 G m b H Consulting- und Softwarepartner Unternehmergeführt 1996 gegründet 85 Mitarbeiter 1 Team aus Spezialisten W E R W I R S I N D

v i r t u a l 7 G m b H Consulting- und Softwarepartner Unternehmergeführt 1996 gegründet 85 Mitarbeiter 1 Team aus Spezialisten W E R W I R S I N D v i r t u a l 7 G m b H Consulting- und Softwarepartner Unternehmergeführt 1996 gegründet 85 Mitarbeiter 1 Team aus Spezialisten W E R W I R S I N D K A R L S R U H E 50 Mitarbeiter Consulting Development

Mehr

Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt

Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt Sören Bühler buso1011 36811 Julia Haßlinger haju1013 37141 Anja Heinzberger hean1017 36622 Agenda Allgemeines Historie

Mehr

Transformations. Die API des Oracle Datamodeler. Dr. Gudrun Pabst. Trivadis GmbH Lehrer-Wirth-Straße München.

Transformations. Die API des Oracle Datamodeler. Dr. Gudrun Pabst. Trivadis GmbH Lehrer-Wirth-Straße München. Transformations Die API des Oracle Datamodeler Dr. Gudrun Pabst Trivadis GmbH Lehrer-Wirth-Straße 4 81829 München gudrun.pabst@trivadis.com BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG

Mehr

Build Management Tool

Build Management Tool Build Management Tool Build-Prozess? Source Code 3rd Party libraries Veröffentlichung Download all 3rd Party libs by hand Compile your sources: javac -sourcepath./src1;./src2 Byte Code -cp lib1.jar;lib2.jar

Mehr

Domainspezifische Sprachen

Domainspezifische Sprachen Domainspezifische Sprachen Eine Einführung und Vertiefung am Beispiel des Eclipse Xtext Framework Mirko Heinold Institut für Informatik Christian-Albrechts-Universität zu Kiel Arbeitsgruppe Kommunikationssysteme

Mehr

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen

Mehr

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken Kapitel 14 Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) 1 Wozu Objekt-relationales Mapping? - Problematik - Business-Schicht OO-Klassen Unvereinbarkeit der Paradigmen

Mehr

Parsing SystemVerilog 2012

Parsing SystemVerilog 2012 Parsing Julian Nagel Lehrstuhl für Rechnerarchitektur Universität Heidelberg 06.07.2016 1 2 3 Inhaltsverzeichnis 4 5 6 Viele Ideen dazu wie effektiv Hardware entwickelt werden kann, aber keine IDE welche

Mehr

Modellgetriebene Entwicklung einer Eclipse RAP-Anwendung unter Verwendung des Eclipse Modeling Frameworks

Modellgetriebene Entwicklung einer Eclipse RAP-Anwendung unter Verwendung des Eclipse Modeling Frameworks Modellgetriebene Entwicklung einer Eclipse RAP-Anwendung unter Verwendung des Eclipse Modeling Frameworks AKWI 2015 Luzern Marco Richter (marco.richter@mnd.thm.de) Melanie Vanderpuye (melanie.vanderpuye@zdh.thm.de)

Mehr

yacc - eine Einführung

yacc - eine Einführung yacc - eine Einführung Axel Kohnert 18th May 2005 Abstract yacc ist ein Unixprogramm, welches die Erstellung einer Programmiersprache unterstützt. Der Benutzer gibt die definierende Grammatik an, und das

Mehr

VU Software Paradigmen / SS 2014

VU Software Paradigmen / SS 2014 VU Software Paradigmen 716.060 / SS 2014 Ralph Ankele ralph.ankele@tugraz.at Termine Ausgabe: 19. März (heute) Fragestunde: 24. März Abgabe: 09. April(bis 16:00 Uhr) Einsichtsnahme: xx. April (16:00 Uhr)

Mehr

Software Engineering I

Software Engineering I Software I Übungsblatt 1 + 2 Claas Pinkernell Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/ Seite 2 Welche Werkzeuge? Programmiersprache Java Integrierte Entwicklungsumgebung Eclipse

Mehr

Einführung in das Graphical Modeling Framework. 13. November 2012

Einführung in das Graphical Modeling Framework. 13. November 2012 Einführung in das Graphical Modeling Framework 13. November 2012 100 Überblick Was ist der Unterschied zwischen abstrakter Syntax und konkreter Syntax? Welche Arten von graphischen Editoren gibt es? Freihandeditoren

Mehr

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen Tom Krauß Agenda Begriffsdefinition Verfahren Praktische Beispiele Vergleich und Bewertung Begriffsklärung

Mehr

Praktikum Funktionale Programmierung Organisation und Überblick

Praktikum Funktionale Programmierung Organisation und Überblick Praktikum Funktionale Programmierung Organisation und Überblick Dr. David Sabel Sommersemester 2013 Stand der Folien: SoSe 2013 Adressen Organisatorisches Software Projekt Adressen, Termine Studienleistung

Mehr

Aktueller Stand Entwicklung eines Parser- und Instrumentierungssystems für den strukturorientierten Programmtest

Aktueller Stand Entwicklung eines Parser- und Instrumentierungssystems für den strukturorientierten Programmtest Aktueller Stand Entwicklung eines Parser- und Instrumentierungssystems für den strukturorientierten Programmtest Ronny Treyße HU Berlin Aktueller Stand p.1/22 Gliederung Überblick über das Projekt Die

Mehr

8. April 2013 Vorlagenmanagement effizient umgesetzt

8. April 2013 Vorlagenmanagement effizient umgesetzt 8. April 2013 Vorlagenmanagement effizient umgesetzt Präsentiert von Martin Seifert, CEO Agenda Über officeatwork Vorlagenmanagement oder «EDC»? Die «EDC» Herausforderung officeatwork Konzepte officeatwork

Mehr

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java Software-Architektur basierend auf dem Plug-in-Konzept Aufteilung: Probleme mit normaler/alter Software Ziele des Software Engineerings Die

Mehr

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015 Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick 11. Februar 2015 Überblick Zusammenfassung: Generell: Konzepte der Softwaretechnik im Kontext der modellgetriebenen Entwicklung Diskussion

Mehr

Compilerbau (1 KU) SS 2011

Compilerbau (1 KU) SS 2011 Compilerbau (1 KU) 716.077 SS 2011 Univ.-Prof. Dr. Franz Wotawa, Birgit Hofer Institut für Softwaretechnologie 1 Übungsmodus Aufgabenblätter Inhalt dieser LV-Einheit it Programmieraufgabe Vorstellung Programmieraufgabe

Mehr

Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1

Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1 Faktor-IPS Modellgetriebene Softwareentwicklung mit Faktor-IPS Seite 1 Faktor-IPS Faktor-IPS ist ein Werkzeug zur modellgetriebenen Entwicklung versicherungsfachlicher Systeme Bestandssysteme Außendienstsysteme

Mehr

Definition von domänenspezifischen Sprachen mit Xtext: Der abstrakte Syntaxbaum in EMF

Definition von domänenspezifischen Sprachen mit Xtext: Der abstrakte Syntaxbaum in EMF Definition von domänenspezifischen Sprachen mit Xtext: Der abstrakte Syntaxbaum in EMF 29. November 2012 Taentzer Modellgetriebene Softwareentwicklung 263 Überblick Wie sieht der abstrakte Syntaxbaum für

Mehr

Notationen für Transformationsregeln

Notationen 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

Mehr

Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.

Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr. Programmieren II Dr. Klaus Höppner Hochschule Darmstadt SS 2008 1 / 22 2 / 22 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische Benutzeroberfläche (engl: Graphical User Interface,

Mehr