Domainspezifische Sprachen
|
|
- Alexandra Jaeger
- vor 8 Jahren
- Abrufe
Transkript
1 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 1. März / 37 Mirko Heinold Domainspezifische Sprachen
2 Übersicht Domänenspezifische Sprachen 1 Domänenspezifische Sprachen Was ist eine DSL Arten von DSLs Entwurfsziele Vor- und Nachteile / 37 Mirko Heinold Domainspezifische Sprachen
3 Definition Domänenspezifische Sprachen Was ist eine DSL Arten von DSLs Entwurfsziele Vor- und Nachteile Domain Specific Language (noun) a computer programming language of limited expressiveness focused on a particular domain [Fowler, 2006] 3 / 37 Mirko Heinold Domainspezifische Sprachen
4 Was ist eine DSL Arten von DSLs Entwurfsziele Vor- und Nachteile Was ist eine Domänenspezifische Sprache (DSL) Eine Programmiersprache für eine Domäne Mit beschränkter Ausdrucksfähigkeit Nicht zwangsläufig Turing unvollständig Meist geringer Umfang Auf die Domäne und deren Problem und Eigenschaften zugeschnitten Lange Tradition beispielsweise in der Unix Welt 4 / 37 Mirko Heinold Domainspezifische Sprachen
5 Wo helfen uns DSLs Was ist eine DSL Arten von DSLs Entwurfsziele Vor- und Nachteile Beim Abstrahieren von Problemen einer Domäne Beispiel: Umschreibung von gültigen Konstrukten in Programmiersprachen Eine Gleitpunktkonstante besteht aus einen ganzzahligen Teil, einen Dezimalpunkt, einem Dezimalbruch, dem Zeichen e oder E, einem ganzzahligen Exponenten mit optionalen Vorzeichen und einem optionalen Typ-Suffix, nämlich einem der Buchstaben f, F, l oder L. Ganzzahligen Teil und Dezimalbruch sind Ziffernfolgen. Entweder der ganzzahlige Teil oder der Dezimalbruch kann fehlen (aber nicht beide); entweder der Dezimalpunkt oder der Exponent beginnend mit e kann fehlen (aber nicht beide). [Kernighan and Ritchie, 1990] 5 / 37 Mirko Heinold Domainspezifische Sprachen
6 EBNF als Beispiel einer DSL Was ist eine DSL Arten von DSLs Entwurfsziele Vor- und Nachteile Erweiterte Backus-Naur-Form (EBNF) ist eine Sprache für die Domäne der Darstellung von kontextfreien Grammatiken 1 float_lit = decimals "." [ decimals ] [ exponent ] 2 decimals exponent 3 "." decimals [ exponent ]. 4 5 decimals = decimal_digit { decimal_digit }. 6 7 exponent = ( "e" "E" ) [ "+" "-" ] decimals. 8 9 decimal_digit = "0"..."9". Beispiel: 6 / 37 Mirko Heinold Domainspezifische Sprachen
7 Was ist eine DSL Arten von DSLs Entwurfsziele Vor- und Nachteile Abgrenzung DSLs zu anderen Sprachen Weitere Beispiele für DSLs sind: SQL make HTML Reguläre Ausdrücke *.jpg Keine DSLs sind: General purpose Sprachen wie Java, C, Ruby, JavaScript... 7 / 37 Mirko Heinold Domainspezifische Sprachen
8 Externe DSLs Domänenspezifische Sprachen Was ist eine DSL Arten von DSLs Entwurfsziele Vor- und Nachteile Komplett eigenständige Sprache Eigene Syntax Ein vollständiger Parser wird geschrieben Meist mittels Parsergenarator Beispiele: EBNF, SQL... 8 / 37 Mirko Heinold Domainspezifische Sprachen
9 Interne (embedded) DSL Was ist eine DSL Arten von DSLs Entwurfsziele Vor- und Nachteile General purpose Sprache wird als Hostsprache verwendet DSL Code ist gültiger Code der Hostsprache Syntax der Hostsprache wird verwendet Dennoch ist die entstandene DSL eine eigene Sprache Kein neuer Standard Textparser für die Sprache nötig Weniger Freiheiten als bei externen DSLs Hostsprache DSL 9 / 37 Mirko Heinold Domainspezifische Sprachen
10 Was ist eine DSL Arten von DSLs Entwurfsziele Vor- und Nachteile Rake als Beispiel für eine Interne DSL Rake ist ein Make für Ruby Nutzt Ruby Syntax und ist gültiges Ruby Programm Hat eigenes typisches Aussehen und nutzt spezielle Bibliotheken 1 file main.o => ["main.c", "greet.h"] do 2 sh "cc -c -o main.o main.c" 3 end 4 5 file greet.o => [ greet.c ] do 6 sh "cc -c -o greet.o greet.c" 7 end 8 9 file "hello" => ["main.o", "greet.o"] do 10 sh "cc -o hello main.o greet.o" 11 end Beispiel: 10 / 37 Mirko Heinold Domainspezifische Sprachen
11 Ziele beim Entwurf einer DSL Was ist eine DSL Arten von DSLs Entwurfsziele Vor- und Nachteile Einfachheit Sich selbst dokumentierender Code Ideales Abbilden der zugehörigen Domäne Für Domänenexperten gut verständlich 11 / 37 Mirko Heinold Domainspezifische Sprachen
12 Vorteile Domänenspezifische Sprachen Was ist eine DSL Arten von DSLs Entwurfsziele Vor- und Nachteile Deckt sehr individuelle Anforderungen ab Steigert Effizienz Vermeidet Fehler bei Entwicklung Ermöglicht einfacheren Zugang zu einer Domäne Ermöglicht Abstraktionen von Problemen Für Domänenexperten beherrschbar Domänenspezifische Anforderungen können validiert werden 12 / 37 Mirko Heinold Domainspezifische Sprachen
13 Nachteile Domänenspezifische Sprachen Was ist eine DSL Arten von DSLs Entwurfsziele Vor- und Nachteile Die DSL muss teuer entwickelt werden Nur mit guter Tool-Unterstützung brauchbar Gefahr von Fehlentwicklungen und schlechtem Design Domäne muss genau verstanden sein Domänenexperten mit großer Erfahrung nötig Langfristig benötigte Eigenschaften müssen verstanden werden Geeignete Abstraktionen müssen gefunden werden Neue Sprache muss gelernt werden 13 / 37 Mirko Heinold Domainspezifische Sprachen
14 Nachteile Domänenspezifische Sprachen Was ist eine DSL Arten von DSLs Entwurfsziele Vor- und Nachteile Wenig Support Geringe Userbasis Geringe Codebasis/ kaum Beispiele vorhanden wenig Webhilfe kaum Dienstleister Gefahr der Hinentwicklung zu einer general purpose Programmiersprache Ausführbarer DSL-Code nicht performant Schwieriges Einbetten in andere Software und Sprachen 14 / 37 Mirko Heinold Domainspezifische Sprachen
15 15 / 37 Mirko Heinold Domainspezifische Sprachen
16 Was ist Xtext? Domänenspezifische Sprachen Ein Framework zum einfachen Entwickeln textueller DSLs Stellt mehrere DSLs dafür zur Verfügung Beinhaltet APIs dafür Eclipse Plug-in Erlaubt Erstellen von DSLs durch Definition einer Grammatik Erzeugt für erstellte DSL automatisch ein Editor als Eclipse-Instanz 16 / 37 Mirko Heinold Domainspezifische Sprachen
17 Ziele von Xtext Domänenspezifische Sprachen DSLs Entwickeln soll einfacher werden Entwicklungszeit und Kosten sollen reduziert werden Toolunterstützung für DSLs soll einfacher und besser werden 17 / 37 Mirko Heinold Domainspezifische Sprachen
18 Beispiel: DSL für Umfragen 18 / 37 Mirko Heinold Domainspezifische Sprachen
19 Aussehen unserer DSL für Umfragen 1 Poll "Evaluation" 2 3 Question "Geben Sie Ihren Namen ein" name 4 5 Question "Wie fanden Sie das Seminar?" bewertung 6 () "1 (Sehr Gut)" sehrgut 7 () "2 (Gut)" gut 8 () "3 (Befriedigend)" befriedigend 9 () "4 (Ausreichend)" ausreichend 10 () "5 (Mangelhaft)" mangelhaft Question "Was kann verbessert werden?" verbesserungen 13 [] "Schrift" schrift 14 [] "Beamer" beamer 15 [] "Schokolade fuer alle" schokolade 19 / 37 Mirko Heinold Domainspezifische Sprachen
20 Was wir aus der Sprache generieren wollen 20 / 37 Mirko Heinold Domainspezifische Sprachen
21 Grammatik für diese Sprache (1) 1 grammar org.xtext.example.mydsl.simplepolldsl with org.eclipse. xtext.common.terminals 2 3 generate simplepolldsl " SimplePollDSL" 4 5 Poll: 6 "Poll" description=string 7 (questions+=question)* 8 ; 9 10 Question: 11 TextQuestion SingleChoiceQuestion MultipleChoiceQuestion 12 ; Beispiel von Peter Friese, itemis 21 / 37 Mirko Heinold Domainspezifische Sprachen
22 Grammatik für diese Sprache (2) 14 TextQuestion: 15 "Question" title=string name=id; SingleChoiceQuestion: 18 "Question" title=string name=id 19 (options+=singlechoiceoption)+; MultipleChoiceQuestion: 22 "Question" title=string name=id 23 (options+=multiplechoiceoption)+; SingleChoiceOption: 26 "()" title=string name=id 27 ; MultipleChoiceOption: 30 "[]" title=string name=id 31 ; 22 / 37 Mirko Heinold Domainspezifische Sprachen
23 Xtext Grammatik Domänenspezifische Sprachen Es gibt eine Xtext Grammar Language Diese erinnert an EBNF und reguläre Ausdrücke Ist selbst eine DSL Beschreibt die Syntax der Sprache Enthält auch Informationen zum vom Parser erzeugten Modell 23 / 37 Mirko Heinold Domainspezifische Sprachen
24 Livedemo 1 Domänenspezifische Sprachen Demo, um den generierten Code und Editor zu zeigen 24 / 37 Mirko Heinold Domainspezifische Sprachen
25 Editor Domänenspezifische Sprachen Wird Automatisch generiert Code Completion Syntax Highligthing Syntax Überprüfung Weiter Fehlererkennung möglich Outlining Referenzen über Dateigrenzen hinweg möglich Im hohen Maße anpassbar 25 / 37 Mirko Heinold Domainspezifische Sprachen
26 Zurück zum Thema Code Generierung 26 / 37 Mirko Heinold Domainspezifische Sprachen
27 Xtend-Code zur HTML-Code Generierung (1) 24 def tohtmlcode(poll p) 25 <html> 26 <head> 27 <title>poll</title> 28 </head> 29 <body> 30 <p> 31 <h2>«p.description»</h2> <br /> 32 «FOR question : p.questions» 33 <br /> 34 «question.generatecode» 35 «ENDFOR» 36 </p> 37 <p> 38 <input type="submit" value="submit" /> 39 </p> 40 </body> 41 </html> / 37 Mirko Heinold Domainspezifische Sprachen
28 Xtend-Code zur HTML-Code Generierung (2) Auszug aus der Funktion generatecode(question question) 44 def generatecode(question question) { 45 if (question instanceof SingleChoiceQuestion){ 46 var String s 47 s = question.title + "<br />\n" 48 for(singlechoiceoption op: (question as SingleChoiceQuestion).options){ 49 s = s + "<input type=\"radio\" name=\"" + question.name 50 + "\" value=\"" + op.name + "\" />" + op.title + "<br />\n" 51 } 52 return s 53 }else if(question instanceof MultipleChoiceQuestion){ 28 / 37 Mirko Heinold Domainspezifische Sprachen
29 Livedemo 2: Generierung des Zielcodes 29 / 37 Mirko Heinold Domainspezifische Sprachen
30 Xtend Domänenspezifische Sprachen Funktionale Features Statisch getypt Stark an Java angelehnt Kompiliert zu lesbarem Java-Code Toolunterstützung durch Eclipse IDE Typ Inferenz 30 / 37 Mirko Heinold Domainspezifische Sprachen
31 Unterstützung zum Übersetzen und Interpretieren Graph bzw. Abstrakter Syntax Baum wird erzeugt Darstellung und Zugriff mit dem Eclipse Modeling Framework (EMF) Kann gesehen werden als mächtige Java Beans Variante Struktur und Objekte lassen sich in Grammatik festlegen Ausgangspunkt für Übersetzung und Interpreter Wir erhalten Parser und Serialisierer Übersetzung also bi-direktional von der Grammatik zum AST und andersrum 31 / 37 Mirko Heinold Domainspezifische Sprachen
32 Übersicht mit Xtext 32 / 37 Mirko Heinold Domainspezifische Sprachen
33 Weitere Tools zum DSL Entwurf (1) Lex und Yacc Helfen beim Schreiben eines Compilers für die DSL Parsen und Syntax Check wird auf Basis einer Grammatik durchgeführt Keine weiteren Tools und Unterstützungen MetaEdit+ Bietet mehr als einen Parser Kein automatisch erstellter Editor Kommerziell Unterstützt Entwicklung vom Modell zum Code 33 / 37 Mirko Heinold Domainspezifische Sprachen
34 Weitere Tools zum DSL Entwurf (2) MPS Meta Programming System Open-Source-Software Soll Erweitern von Sprachen vereinfachen DSL Entwurf auch möglich Konzept: Code wird nicht mehr als Text sondern als AST vorgehalten Microsoft DSL Tools Eingebettet in Visual Studio Erleichtert ebenfalls DSL Entwurf Generiert keinen Editor für erstellte DSL 34 / 37 Mirko Heinold Domainspezifische Sprachen
35 Domänenspezifische Sprachen hat sich mit Xtext deutlich weiterentwickelt Einfach und leicht zugänglich Hohe Qualität der erzeugten DSLs DSLs schneller realisierbar Automatisch erstellter Editor steigert Wert deutlich Aber... Gutes Sprachdesign ist kompliziert DSLs entwickeln bleibt zusätzlichen Aufwand Automatische Festlegung auf Java und Eclipse Technologie 35 / 37 Mirko Heinold Domainspezifische Sprachen
36 Gibt es Fragen? Domänenspezifische Sprachen Autor Comic: Randall Munroe, Quelle: CC-by-nc 36 / 37 Mirko Heinold Domainspezifische Sprachen
37 Funktionsdetails der Xtext Grammar Language Anzahl erlaubter Anwendungen der Grammatik Regeln:? 0 oder 1 mal + mindestens 1 mal * beliebig oft Weitere Regeln: Oder [] Referenz auf eine Regel der Grammatik {} Erzwingt Erstellung eines bestimmten Typs 37 / 37 Mirko Heinold Domainspezifische Sprachen
38 Fowler, M. (2006). Introducing domain specific languages. Kernighan, B. and Ritchie, D. (1990). Programmieren in C. Hanser Verlag. 37 / 37 Mirko Heinold Domainspezifische Sprachen
Domänenspezifische Sprachen
Domänenspezifische Sprachen Eine Einführung und Vertiefung am Beispiel des Eclipse Xtext Framework Mirko Heinold MatrikelNr: 890825 mhei@informatik.uni-kiel.de 15. März 2012 Institut für Informatik Christian-Albrechts-Universität
MehrLanguage 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
MehrVorgetragen 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
MehrDSLs 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
MehrDefinition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014
Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung
MehrCopyright 2014 Delta Software Technology GmbH. All Rights reserved.
Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für
MehrFormale Sprachen und Grammatiken
Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax
MehrWas ist ein Compiler?
Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?
MehrKapitel 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
MehrDSL Entwicklung und Modellierung
DSL Entwicklung und Modellierung Dipl. Inform. Rolf Hänisch Übersicht DSL, was bedeutet das für uns? Eine Anwendung aus der Automatisierungstechnik Sprachen und Werkzeuge Ergebnisse und Erfahrungen GI
MehrAlgorithmen mit Python
Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World
MehrSEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.
SEW Übung EMFText 1 Aufgabe Erstellen Sie eine textuelle Domänenspezifische Sprache Domain-specific Language (DSL) mit dem Werkzeug EMFText. Die Sprache soll dazu dienen Formulare (Fragen, Antworttypen
MehrUnterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:
Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: If-clauses - conditional sentences - Nie mehr Probleme mit Satzbau im Englischen! Das komplette Material finden Sie hier: School-Scout.de
Mehr0. Einführung. C und C++ (CPP)
C und C++ (CPP) 0. Einführung Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte Wissenschaften marc.rennhard@zhaw.ch Marc Rennhard, 05.01.2010,
MehrHTML5. Wie funktioniert HTML5? Tags: Attribute:
HTML5 HTML bedeutet Hypertext Markup Language und liegt aktuell in der fünften Fassung, also HTML5 vor. HTML5 ist eine Auszeichnungssprache mit der Webseiten geschrieben werden. In HTML5 wird festgelegt,
MehrProgrammiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch
MehrUpdatehinweise für die Version forma 5.5.5
Updatehinweise für die Version forma 5.5.5 Seit der Version forma 5.5.0 aus 2012 gibt es nur noch eine Office-Version und keine StandAlone-Version mehr. Wenn Sie noch mit der alten Version forma 5.0.x
MehrPräsentation Von Laura Baake und Janina Schwemer
Präsentation Von Laura Baake und Janina Schwemer Gliederung Einleitung Verschiedene Betriebssysteme Was ist ein Framework? App-Entwicklung App-Arten Möglichkeiten und Einschränkungen der App-Entwicklung
MehrFachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,
MehrAnleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT
Boris Golubovic Dortmund, den 24. Oktober 2010 Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT Ein Projekt anlegen Ein Projekt kapselt alle zu einer Anwendung gehörenden
Mehrschnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv
Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag
MehrAndreas Lux 16.03.2010. Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse
Andreas Lux 16.03.2010 Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse Warum unterschiedliche Sprachen? Nicht alle Probleme eignen sich, um mit Standardsprachen beschrieben
MehrVisuelle DSLs Trends in der Softwaretechnik: Domänenspezifische Sprachen (Seminar WS 2010/11) Thorsten Arendt
Visuelle DSLs Trends in der Softwaretechnik: Domänenspezifische Sprachen (Seminar WS 2010/11) Thorsten Arendt Problemlösung = Abstrahierung Entwicklung der Programmiersprachen Maschinencode/Binärcode:
MehrProseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller
Proseminar: Website-Managment-System NetObjects Fusion von Christoph Feller Netobjects Fusion - Übersicht Übersicht Einleitung Die Komponenten Übersicht über die Komponenten Beschreibung der einzelnen
MehrInformationen zur Verwendung von Visual Studio und cmake
Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
MehrÜbungen zur Softwaretechnik
Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se
MehrWeb-basierte Benutzerschnittstellen für Embedded Systeme: Eine Benutzerschnittstelle drei Sichtweisen
Web-basierte Benutzerschnittstellen für Embedded Systeme: Eine Benutzerschnittstelle drei Sichtweisen Klaus-Dieter Walter SSV Software Systems GmbH Dünenweg 5 D-30419 Hannover www.ssv-embedded.de kdw@ssv-embedded.de
MehrKlausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.
Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert
MehrHow-to: Webserver NAT. Securepoint Security System Version 2007nx
Securepoint Security System Inhaltsverzeichnis Webserver NAT... 3 1 Konfiguration einer Webserver NAT... 4 1.1 Einrichten von Netzwerkobjekten... 4 1.2 Erstellen von Firewall-Regeln... 6 Seite 2 Webserver
MehrEs sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
MehrPython SVN-Revision 12
Python SVN-Revision 12 Uwe Ziegenhagen 7. Januar 2012 Vorwort Dieses Skript erhebt keinen Anspruch auf Vollständigkeit oder Richtigkeit. Es wird geschrieben, um mir als Gedächtnisstütze für den Umgang
MehrInformatik I Tutorium WS 07/08
Informatik I Tutorium WS 07/08 Vorlesung: Prof. Dr. F. Bellosa Übungsleitung: Dipl.-Inform. A. Merkel Tutorium: 12 Tutor: Jens Kehne Tutorium 3: Dienstag 13. November 2007 Übersicht Tutorium Übersicht
MehrFehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems
Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Name: Bruno Handler Funktion: Marketing/Vertrieb Organisation: AXAVIA Software GmbH Liebe Leserinnen und liebe Leser,
MehrSSI WHITE PAPER Design einer mobilen App in wenigen Stunden
Moderne Apps für Smartphones und Tablets lassen sich ohne großen Aufwand innerhalb von wenigen Stunden designen Kunde Branche Zur Firma Produkte Übersicht LFoundry S.r.l Herrngasse 379-381 84028 Landshut
MehrAnleitung BFV-Widget-Generator
Anleitung BFV-Widget-Generator Seite 1 von 6 Seit dem 1. Oktober 2014 hat der Bayerische Fußball-Verband e.v. neue Widgets und einen neuen Baukasten zur Erstellung dieser Widgets veröffentlicht. Im Folgenden
Mehr10 Erweiterung und Portierung
10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle
MehrArbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
MehrSEMINAR Modifikation für die Nutzung des Community Builders
20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen
MehrTYPO3 CMS 6.2 LTS. Die neue TYPO3- Version mit Langzeit- Support
Die neue TYPO3- Version mit Langzeit- Support Am 25. März 2014 wurde mit die zweite TYPO3- Version mit Langzeit- Support (Long- Term- Support, kurz: LTS) veröffentlicht. LTS- Versionen werden drei Jahre
MehrSJ OFFICE - Update 3.0
SJ OFFICE - Update 3.0 Das Update auf die vorherige Version 2.0 kostet netto Euro 75,00 für die erste Lizenz. Das Update für weitere Lizenzen kostet jeweils netto Euro 18,75 (25%). inkl. Programmsupport
MehrGrammatiken. Einführung
Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische
MehrWas meinen die Leute eigentlich mit: Grexit?
Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?
MehrIndividuelle Erweiterung des generierten Codes. 16. Januar 2013
Individuelle Erweiterung des generierten Codes 16. Januar 2013 Überblick Welche Möglichkeiten zur individuellen Erweiterung von generiertem Code gibt es? Innerhalb eines Moduls (Klasse) Auf Modulebene
MehrA Domain Specific Language for Project Execution Models
A Domain Specific Language for Project Execution Models Eugen Wachtel, Marco Kuhrmann, Georg Kalus Institut für Informatik Software & Systems Engineering Inhalt Einführung und Hintergrund Problembereiche
MehrEntwicklung des Dentalmarktes in 2010 und Papier versus Plastik.
Sehr geehrter Teilnehmer, hier lesen Sie die Ergebnisse aus unserer Umfrage: Entwicklung des Dentalmarktes in 2010 und Papier versus Plastik. Für die zahlreiche Teilnahme an dieser Umfrage bedanken wir
MehrISA 2004 - Einrichtung einer DFUE VErbindung - von Marc Grote
Seite 1 von 10 ISA Server 2004 Einrichten einer DFÜ Verbindung - Von Marc Grote -------------------------------------------------------------------------------- Die Informationen in diesem Artikel beziehen
Mehr4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.
Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel
MehrEinführung in PHP. (mit Aufgaben)
Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites
MehrDie Lernumgebung des Projekts Informationskompetenz
Beitrag für Bibliothek aktuell Die Lernumgebung des Projekts Informationskompetenz Von Sandra Merten Im Rahmen des Projekts Informationskompetenz wurde ein Musterkurs entwickelt, der den Lehrenden als
MehrInteraktive Medien Richtlinien für das Codieren Version vom 18. Juni 2014
Interaktive Medien Richtlinien für das Codieren Version vom 18. Juni 2014 Martin Vollenweider Dateinamen im Internet Da wir im Internet in gemischten Hard- und Softwareumgebungen (z.b. Windows, Unix, Macintosh,
MehrDie Post hat eine Umfrage gemacht
Die Post hat eine Umfrage gemacht Bei der Umfrage ging es um das Thema: Inklusion Die Post hat Menschen mit Behinderung und Menschen ohne Behinderung gefragt: Wie zufrieden sie in dieser Gesellschaft sind.
MehrSuche schlecht beschriftete Bilder mit Eigenen Abfragen
Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere
MehrÜbersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.
Eclipse WSDL-Editor Übersicht Eclipse Foundation Eclipse Plugins & Projects Eclipse Ganymede Simultaneous Release Web Tools Platform Projekt WSDL Editor Bug #237918 Eclipse Foundation Was ist Eclipse?
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
MehrEinführung in Generatives Programmieren. Bastian Molkenthin
Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung
MehrAGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
MehrAbacus Formula Compiler (AFC)
Abacus Formula Compiler (AFC) Alle kennen Excel - jetzt sogar Ihre Java- Applikation! Bringt Tabellenkalkulationen auf die JVM http://formulacompiler.org/ Peter Arrenbrecht für Abacus Research AG http://abacus.ch/
MehrFacebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten
Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Seit Anfang Juni 2012 hat Facebook die Static FBML Reiter deaktiviert, so wird es relativ schwierig für Firmenseiten eigene Impressumsreiter
MehrKurzfassung der Studienarbeit
Kurzfassung der Studienarbeit Abteilung Informatik Namen der Studenten Roman Widmer Mikkala Pedersen Studienjahr Sommersemester 2004 Titel der Studienarbeit.NET Skript Debugger Examinator Der GUI-Builder
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrWhiteStarUML Tutorial
WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/
MehrDie Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter
Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrMotivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.
Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de
MehrComparing 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
MehrVersion 0.3. Installation von MinGW und Eclipse CDT
Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.
MehrGambio GX2 FAQ. Inhaltsverzeichnis
Gambio GX2 FAQ 1 Gambio GX2 FAQ Inhaltsverzeichnis Einführung... 2 Wie viele Artikel kann ich einstellen?... 3 Wie viele Kategorien und Unterkategorien kann ich einstellen?... 3 Wie viele Bilder kann ich
MehrProgrammieren was ist das genau?
Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet
MehrKlassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java
Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte
MehrTTS - TinyTimeSystem. Unterrichtsprojekt BIBI
TTS - TinyTimeSystem Unterrichtsprojekt BIBI Mathias Metzler, Philipp Winder, Viktor Sohm 28.01.2008 TinyTimeSystem Inhaltsverzeichnis Problemstellung... 2 Lösungsvorschlag... 2 Punkte die unser Tool erfüllen
MehrOrdner Berechtigung vergeben Zugriffsrechte unter Windows einrichten
Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.
MehrWann ist eine Software in Medizinprodukte- Aufbereitungsabteilungen ein Medizinprodukt?
DGSV-Kongress 2009 Wann ist eine Software in Medizinprodukte- Aufbereitungsabteilungen ein Medizinprodukt? Sybille Andrée Betriebswirtin für und Sozialmanagement (FH-SRH) Prokuristin HSD Händschke Software
Mehr[Customer Service by KCS.net] KEEPING CUSTOMERS SUCCESSFUL
[Customer Service by KCS.net] KEEPING CUSTOMERS SUCCESSFUL Was bedeutet Customer Service by KCS.net? Mit der Einführung von Microsoft Dynamics AX ist der erste wichtige Schritt für viele Unternehmen abgeschlossen.
MehrPraktikum Compilerbau
Implementation eines s 20. April 2005 Vorlesungen Vorlesungen, die nützliche für das Praktikum liefern: Automaten, Formale Sprachen und Berechenbarkeit bau Abstrakte Maschinen Programm-Optimierung Fertigkeiten
MehrIntegration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.
Integration mit Die Integration der AristaFlow Business Process Management Suite (BPM) mit dem Enterprise Information Management System FILERO (EIMS) bildet die optimale Basis für flexible Optimierung
MehrC++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang
Einleitung Dieses Buch wendet sich an jeden Leser, der die Programmiersprache C++ neu lernen oder vertiefen möchte, egal ob Anfänger oder fortgeschrittener C++-Programmierer. C++ ist eine weitgehend plattformunabhängige
MehrKompilieren und Linken
Kapitel 2 Kompilieren und Linken Bevor wir uns auf C++ selbst stürzen, brauchen wir einiges Vorgeplänkel, wie man komfortabel ein größeres C++- kompilieren kann. Mit Java stellt sich der Kompiliervorgang
MehrWillkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java
Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen
MehrJava Entwicklung für Embedded Devices Best & Worst Practices!
Java Entwicklung für Embedded Devices! George Mesesan Microdoc GmbH Natürlich können wir dieses neue log4j Bundle auch auf dem Device verwenden. Ist doch alles Java. Java Micro Edition (ME) Java Standard
MehrSWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT
SWT II Projekt Chat - Anwendung Pflichtenheft 2000 SWT i Versionen Datum Version Beschreibung Autor 3.11.2000 1.0 erste Version Dietmar Matthes ii Inhaltsverzeichnis 1. ZWECK... 1 1.1. RAHMEN... 1 1.2.
MehrInternet Explorer Version 6
Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster
MehrWas ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,
Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit, Wie kann ein PDF File angezeigt werden? kann mit Acrobat-Viewern angezeigt werden auf jeder Plattform!! (Unix,
Mehr1. Einführung. 2. Ändern oder Anlegen einer Zahlungsbedingung
1. Einführung Unter orgamax können Sie eigene Zahlungsbedingungen anlegen und diese auf Wunsch bestimmten Kunden zuordnen oder in einzelnen Vorgängen auswählen. Auch Skonto-Vergabe und Mahnwesen werden
MehrGrundlagen der Informatik II. Teil I: Formale Modelle der Informatik
Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende
MehrAnleitung Typo3-Extension - Raumbuchungssystem
Anleitung Typo3-Extension - Raumbuchungssystem t3m_calendar v 1.1 Stand 15.12.2011 Mehr Datails siehe: http://www.typo3-macher.de/typo3-ext-raumbuchungssystem.html 1 INHALT 1. Bedienungsanleitung der Anwendung...
MehrAnalyse und Toolevaluierung
Analyse und Toolevaluierung Evaluierung von Werkzeugen zur Erstellung von IT-Spezifikationen Im Zuge der Standardisierung und Industrialisierung der Softwareerstellung stehen zunächst kleinere Verbesserungen
MehrOnline Newsletter III
Online Newsletter III Hallo zusammen! Aus aktuellem Anlass wurde ein neuer Newsletter fällig. Die wichtigste Neuerung betrifft unseren Webshop mit dem Namen ehbshop! Am Montag 17.10.11 wurde die Testphase
MehrIhre Interessentendatensätze bei inobroker. 1. Interessentendatensätze
Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit
MehrAnleitung zum Extranet-Portal des BBZ Solothurn-Grenchen
Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen Inhalt Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen 2.2 Installation von Office 2013 auf Ihrem privaten PC 2.3 Arbeiten mit den Microsoft
MehrÜbung: Verwendung von Java-Threads
Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum
MehrA1.7: Entropie natürlicher Texte
A1.7: Entropie natürlicher Texte Anfang der 1950er Jahre hat Claude E. Shannon die Entropie H der englischen Sprache mit einem bit pro Zeichen abgeschätzt. Kurz darauf kam Karl Küpfmüller bei einer empirischen
MehrSharePoint Demonstration
SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit
MehrGeneratives Programmieren
Generatives Programmieren Seminar Produktlinien WS03/04 Tammo van Lessen 08.01.2004 Outline Einleitung Generatoren Generatives Programmieren Fazit Einleitung Industrielle Entwicklung 1826 Austauschbare
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrAnleitung E-Mail - Archivierung
Anleitung E-Mail - Archivierung Aufgrund unserer langjährigen Erfahrung, wissen wir um viele Kundenprobleme in der Bedienung von IKT-Produkten. Um solche Probleme bei der Nutzung der Net4You Produkte zu
MehrComtarsia SignOn Familie
Comtarsia SignOn Familie Handbuch zur RSA Verschlüsselung September 2005 Comtarsia SignOn Agent for Linux 2003 Seite 1/10 Inhaltsverzeichnis 1. RSA Verschlüsselung... 3 1.1 Einführung... 3 1.2 RSA in Verbindung
MehrAnwendungsbeispiele Sign Live! Secure Mail Gateway
Anwendungsbeispiele Sign Live! Secure Mail Gateway Kritik, Kommentare & Korrekturen Wir sind ständig bemüht, unsere Dokumentation zu optimieren und Ihren Bedürfnissen anzupassen. Ihre Anregungen sind uns
MehrWurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik
Wurzeln als Potenzen mit gebrochenen Exponenten Zur Einstimmung Wir haben die Formel benutzt x m n = x m n nach der eine Exponentialzahl potenziert wird, indem man die Exponenten multipliziert. Dann sollte
Mehr