2.0. Jens Weller Joel de Guzman Hartmut Kaiser
|
|
- Ulrich Hermann
- vor 8 Jahren
- Abrufe
Transkript
1 2.0 Jens Weller Joel de Guzman Hartmut Kaiser
2 2.0 - Agenda Was ist Spirit? Aufbau & Überblick Lex, Qi & Karma
3 2.0 Was ist das? Spirit 2.0 ist ein objektorientiertes Framework für Parser (Lex, Qi) Ausgabe (Karma) stellt EBNF Grammatiken mit Hilfe von template Meta-Programmierung in C++ da.
4 2.0 Aufbau 2 Hauptkomponenten Parsing (spirit::lex, spirit::qi) Ausgabeformatierung (spirit::karma) Beide Teile sind unabhängig von einander
5 2.0 Details Spirit V2 Lex (token handling) Qi (parser) Karma (generator) Support Lexer Action Action Algorithms Lexertl Auxiliary Auxiliary Character classes Other lexer(s) Char Char Iterator Directive Directive Nonterminal support Binary Binary Nonterminal Nonterminal Numeric Numeric Operator Operator String String Utility Utility
6 2.0 operators EBNF operator Spirit a b (a folgt b) Qi: a >> b Karma: a << b a / b (a oder b) a b a* (a 0 oder n mal) *a a+ (a 1 oder n mal) +a a >> *(b >> a)
7 2.0 spirit::lex Dient der Tokendefinition template <typename Lexer> struct example1_tokens : lexer_def<lexer> { template <typename Self> void def (Self& self) { // define tokens and associate them with the lexer identifier = "[a-za-z_][a-za-z0-9_]*"; self = token_def<>(',') '{' '}' identifier; }; // any token definition to be used as the skip parser during parsing // has to be associated with a separate lexer state (here 'WS') white_space = "[ \\t\\n]+"; self("ws") = white_space; } token_def<> identifier, white_space;
8 2.0 spirit::qi Qi ist der eigentliche Parserbereich der Library Einige Beispiele CSV römische Zahlen Mini XML Parser
9 2.0 CSV Comma Seperated Values Sonderfall: nur Zahlen double_ >> *(',' >> double_) double_[ref(n) = _1] >> *(',' >> double_[ref(n) += _1]) Semantic Actions Platzhalter (Ergebnis des Parsers)
10 2.0 Liste einlesen vector<double> als Ergebnis? double_[push_back(ref(v), _1)] >> *(',' >> double_[push_back(ref(v), _1)]) double_[push_back(ref(v), _1)] % ',' double_ % ','
11 2.0 römische Zahlen Beispiel für Symboltable Regeldefinition Grammatiken
12 Symboltable 2.0 römische Zahlen struct hundreds_ : symbols<char, unsigned> {// bildet die römischen Zahlen im Hunderter Bereich ab hundreds_() { add("c", 100) ("CC", 200) ("CCC", 300) ("CD", 400) ("D", 500) ("DC", 600) ("DCC", 700) ("DCCC", 800) ("CM", 900) ; } } hundreds;
13 2.0 römische Zahlen Grammtik & Regeldefinition template <typename Iterator> struct roman : grammar_def<iterator, unsigned()> { roman() {// Regeldefinition start = +char_('m') [_val += 1000] hundreds [_val += _1] tens [_val += _1] ones [_val += _1]; } rule<iterator, unsigned()> start; }; Signatur _val: Synthesized Attribute (Return value)
14 2.0 Mini XML Grundlegende Strukturen für Mini XML struct mini_xml; typedef boost::variant<, std::string > mini_xml_node; struct mini_xml { std::string name; }; // We need to tell fusion about our mini_xml struct boost::recursive_wrapper<mini_xml> // to make it a first-class fusion citizen BOOST_FUSION_ADAPT_STRUCT( mini_xml, (std::string, name) (std::vector<mini_xml_node>, children) ) // tag name std::vector<mini_xml_node> children; // children
15 2.0 spirit::qi Grammatik für Mini XML template mini_xml_def() <typename Iterator> struct { { mini_xml_def : grammar_def<iterator, mini_xml(), space_type> { text text = = lexeme[+(char_ - - '<')[_val += += _1]]; mini_xml_def() node = = (xml text)[_val = = _1]; = _1]; _1]; {??? start_tag = '<' >> lexeme[+(char_ - '>')[_val += _1]] } >> >> '>'; '>'; rule<iterator, end_tag = = mini_xml(), "</" "</" >> >> lit(_r1) space_type> >> >> '>'; '>'; xml; rule<iterator, mini_xml_node(), space_type> node; rule<iterator, xml xml = = start_tag[at_c<0>(_val) std::string(), space_type> = = _1] = _1] text; _1] rule<iterator, >> >> *node[push_back(at_c<1>(_val), std::string(), space_type> start_tag; _1)] _1)] _1)] rule<iterator, >> >> end_tag(at_c<0>(_val)); void(std::string), space_type> end_tag; }; } } Text ohne Whitespaces Zugriff auf übergebenes Element
16 Mini XML Ausgabe 2.0 Karma struct mini_xml_generator() : boost::spirit::karma::grammar_def<outputiterator, { void(mini_xml), space_type> { text = verbatim[lit(text._1)]; // typedef karma::grammar_def<outputiterator, node = (xml text)[_1 = node._1]; void(mini_xml), space_type> base_type; // boost::mpl::print<typename base_type::start_type::param_types> x; start_tag = '<' << verbatim[lit(start_tag._1)] mini_xml_generator() << '>'; {? end_tag = "</" << verbatim[lit(end_tag._1)] } << '>'; karma::rule<outputiterator, void(mini_xml), space_type> xml; xml; karma::rule<outputiterator, xml = start_tag(at_c<0>(xml._1)) void(mini_xml_node), space_type> node; node; karma::rule<outputiterator, << (*node)[ref(at_c<1>(xml._1))] void(std::string), space_type> text; text; karma::rule<outputiterator, << end_tag(at_c<0>(xml._1)) void(std::string), space_type> start_tag; start_tag; karma::rule<outputiterator, } void(std::string), space_type> end_tag; end_tag; };
17 2.0 Errorhandling expression.name("expression"); Was ist fehlgeschlagen? expression.template on_error<fail> (( std::cout << val("error! Expecting ") << _4 << val(" here: \"") << construct<std::string>(_3, _2) << val("\"") << std::endl )); Iteratoren zur Fehlerposition und Input Ende.
18 2.0 Errorhandling expression = term[_val = _1] >> *( ('+' > term[_val += _1]) ('-' expression > term[_val = -= _1]) ); term[_val = _1] >> *( ('+' > term[_val += _1]) ('-' > term[_val -= _1]) ); 123 * ( ] / 20 Error! Expecting ')' here: "] / 20" > ist eine Sonderform von >> Nach + muss ein term kommen blah Error! Expecting term here: " blah"
19 2.0 Aktueller Stand Momentan online im SVN erhältlich Es gibt einen Snapshot für die BoostCon Abhängigkeit zum aktuellen Boost cvs::head (Fusion/Proto) Momentan keine Online Dokumentation
20 2.0 Fragen
Einführung in Boost Spirit Qi
Einführung in Boost Spirit Qi Das C++ Parser Framework Warum noch ein Parser? - Komplexität der Grammatik + Lex/Yacc, AntLR Boost Spirit istringstream, lexical_cast + Grammatik im Quellcode + kein externes
MehrRainer 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
MehrObjektorientierte Programmierung mit C++ Vector und List
Vector und List Ziel, Inhalt Wir lernen die Klassen vector und list aus der Standard-C++ Library kennen und anwenden. In einer Übung wenden wir diese Klassen an um einen Medienshop (CD s und Bücher) zu
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
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrAlltagsnotizen eines Softwareentwicklers
Alltagsnotizen eines Softwareentwicklers Entkoppeln von Objekten durch Callbacks mit c++-interfaces oder boost.function und boost.bind Tags: c++, entkoppeln, objekt, oop, callback, boost.bind, boost.function,
Mehrkurze Wiederholung class templates
kurze Wiederholung class templates Ein class template ist ein Template, dass mit einem oder mehreren typename -Parametern implementiert wird. Um solch ein Template zu benutzen, übergibt man dem Template
Mehr2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit
XML- und Webservice- Sicherheit 2. XML 2.1 XML 1.0 und XML Schema Gliederung 1. XML 1.0 2. XML Namespaces: URI, URL und URN 3. XML Schema Literatur: A. Tanenbaum, Computer Networks. E. R. Harold and W.
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrDistributed Computing Group
JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrBesonderheiten von C#
Besonderheiten von C# Wert- und Referenztypen int a, b; a = 3; b = a; a++; Debug.Assert( a==4 && b==3 &&!a.equals(b), "int ist doch kein Werttyp" ); RTyp ra, rb; ra = new RTyp(3); rb = ra; ra.inc(); Debug.Assert(
MehrZusammenfassung des Handzettels für Programmieren in C
Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.
MehrMagento Theming Ein Einstieg Rainer Wollthan
Magento Theming Ein Einstieg Rainer Wollthan Überblick Vorbereitung Datei Struktur Adminbereich Layout XML Block Template Magento Theming macht Spaß! Vorbereitung Produkte Marketingmaßnahmen Design Länder
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
MehrRDF RESOURCE DESCRIPTION FRAMEWORK. Referentin: Claudia Langer
RDF RESOURCE DESCRIPTION FRAMEWORK Referentin: Claudia Langer Überblick RDF allgemein RDF und XML Praktisches Beispiel RDF allgemein vom WWW Konsortium (W3C) für das Semantic Web entwickelt Sprache zur
MehrSuchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative
MehrXML-Namensräume. Marc Monecke monecke@informatik.uni-siegen.de
XML-Namensräume Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 19. Mai 2003 Inhaltsverzeichnis 1 Motivation
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
MehrCGI Programmierung mit Ha. Markus Schwarz
CGI Programmierung mit Ha Markus Schwarz Überblick Was ist funktionale Programmierung Einführung in Haskell CGI-Programmierung mit Haskell Ein etwas größeres Beispiel Was ist funktionale Programm Ein Programm
MehrGebundene Typparameter
Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
MehrJava Web Services Metadata JSR-181
Java Web Services Metadata JSR-181 Dieses Dokument ist ein Auszug aus unserem Skript zur Java Web Services Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen. Thomas Bayer Albertus-Magnus-Str.
MehrFakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
MehrKlausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber
Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber 1) Welche Antworten zur Operatorüberladung sind richtig? (1) a) C++ - Operatoren können zusammen mit Objekten funktionieren b) C++ - Operatoren wird
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
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
MehrScala kann auch faul sein
Scala kann auch faul sein Kapitel 19 des Buches 1 Faulheit Faulheit ( lazy evaluation ) ist auch in C oder Java nicht unbekannt int x=0; if(x!=0 && 10/x>3){ System.out.println("In if"); } Nutzen der Faulheit?
MehrPascal Schärli
Informatik I - Übung 8 Pascal Schärli pascscha@student.ethz.ch 12.04.2019 1 Was gibts heute? Best-Of Vorlesung: Prefix / Infix EBNF Vorbesprechung Problem of the Week 2 Vorlesung 3. 1 Prefix Notation Infix
MehrEin subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen
Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen vorgestellt am 29.09.2008 in der PASS Regionalgruppe Karlsruhe Michael Riedmüller inovex GmbH Project
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
MehrEinführung in die STL anhand eines ausgewählten Beispiels
Einführung in die STL anhand eines ausgewählten Beispiels Frank M. Thiesing http://home.t-online.de/home/ frank.thiesing/stl/stl-folien.pdf Inhalt Überblick über die C++ STL Container Iteratoren Algorithmen
MehrRuhr.pm XML-Daten verarbeiten mit XML::LibXML Autor: EMail: Datum: http://ruhr.pm.org/
XML-Daten verarbeiten mit XML::LibXML Autor: EMail: Datum: Simon Wilper simon AT ruhr.pm.org http://ruhr.pm.org/ Template Version 0.1 The use of a camel image in association with Perl is a trademark of
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,
MehrWas passiert mit den Daten nach der Scheidung mit der Cloud Lösung?
Was passiert mit den Daten nach der Scheidung mit der Cloud Lösung? Christoph Groß Inhaber Supply Chain Competence Center Groß & Partner 1 2012 Supply Chain Competence Center Groß & Partner www.scc-center.de
MehrJavadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
Mehr12/18/12 // POST: values of a and b are interchanged void swap (int& a, int& b) { int c = a; a = b; b = c;
Generische Funktionalität Generisches Programmieren Template-Funktionen, Template- Klassen, generisches Sortieren, Fibonacci- und Ackermann-Zahlen zur Kompilierungszeit n Viele Funktionen braucht man für
MehrÜbungsblatt 3: Algorithmen in Java & Grammatiken
Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015
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
MehrGrundlagen. Kapitel 1
Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die
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
MehrÄquivalente Grammatiken / attributierte Grammatik
Äquivalente Grammatiken / attributierte Grammatik Linksfaktorisierung Elimination von Linksrekursion Umwandlung von EBNF in BNF Attributierte Grammatik Semantikfunktionen und Übersetzungsschema Synthetisierte,
MehrDelegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrDieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.
Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html
MehrGrammatiken in Prolog
12. Grammatiken in Prolog 12-1 Grammatiken in Prolog Allgemeines: Gedacht zur Verarbeitung natürlicher Sprache. Dort braucht man kompliziertere Grammatiken als etwa im Compilerbau, andererseits sind die
MehrProfessionelle Seminare im Bereich MS-Office
Gegenüber PowerPoint 2003 hat sich in PowerPoint 2007 gerade im Bereich der Master einiges geändert. Auf Handzettelmaster und Notizenmaster gehe ich in diesen Ausführungen nicht ein, die sind recht einfach
MehrEinführung in die Programmierung
Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrIBIS Professional. z Dokumentation zur Dublettenprüfung
z Dokumentation zur Dublettenprüfung Die Dublettenprüfung ist ein Zusatzpaket zur IBIS-Shopverwaltung für die Classic Line 3.4 und höher. Dubletten entstehen dadurch, dass viele Kunden beim Bestellvorgang
MehrPrivate-Organizer 1.0
Private-Organizer 1.0 Einleitung Übersicht Adressbuch Aufgaben Vollversion Einleitung PrivateOrganizer 1.0 ist ein Programm mit dem Sie Adressdaten Ihrer persönlichen Kontakte sehr übersichtlich verwalten
MehrOperationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2
Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2 von Christoph Knabe http://public.beuth-hochschule.de/~knabe/ Ch. Knabe: Operationalisierbare Qualitätskriterien
MehrSDK zur CRM-Word-Schnittstelle
SDK zur CRM-Word-Schnittstelle SDK zur CRM Wordinterface für Microsoft Dynamics CRM2011 zur Version 5.2.0 Inhalt 1. Vorwort... 3 2. Voraussetzungen... 4 3. Funktionsbeschreibung... 4 4. Technische Funktionsbeschreibung...
MehrDie Nuance-Grammatik und der Grammar Builder
Die Nuance-Grammatik und der Grammar Builder Grobe Gliederung der Präsentation Nuance-Grammatik Operatoren und Rekursion Semantik Kompilation Kommandozeilen-Compiler Nuance Grammar Builder Testen Mit NGB
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2009, 16. Juli 2009 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrInnere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
MehrMelde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei
Seite 1 Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei Seite 2 1 Inhalt Melde- und Veröffentlichungsplattform Portal... 1 (MVP Portal)... 1 Hochladen einer XML-Datei...
MehrADFC-Jahresprogramm. automatisch erstellen
ADFC-Jahresprogramm automatisch erstellen Programm automatisch erstellen Der Ablauf im Überblick Dateneingabe und -erfassung Generieren des Inhaltes Ergänzungen Beispiele für weitere Nutzenungsmöglichkeiten
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am
Mehr1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
MehrWindows 7 ist da! Der Nachfolger von Vista kommt noch vor dem Sommer
Windows 7 ist da! Der Nachfolger von Vista kommt noch vor dem Sommer 1. Vorwort Warum an Windows 7, dem Nachfolger von Windows Vista, kein Weg vorbeiführt, ist rasch erklärt: Es ist schneller, sicherer,
MehrAssoziation und Aggregation
Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben
MehrArrays von Objekten. 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-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
Mehr188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
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:
Mehr1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
MehrProgrammieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
MehrDas Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
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
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrKurze Einführung in die Programmiersprache C++ und in Root
Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung
MehrKonfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0.
Konfigurationsanleitung Access Control Lists (ACL) Funkwerk Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0 Seite - 1 - 1. Konfiguration der Access Listen 1.1 Einleitung Im Folgenden
MehrZur Definition von Web-Services
Zur Definition von Web-Services Erich Weihs BStMLU, München erich.weihs@stmlu.bayern.de Agenda I. Ziele II. Zur Definition von Web-Services 1 Einführung Entwicklungs Projektbeschreibung ziele Entwicklungsz
MehrSWE1 / Übung 2 (19.10.2011)
SWE1 / Übung 2 (19.1.211) Simulation von Algorithmen Testen, Testplan Beispiel arithmetische Ausdrücke Handsimulation von Algorithmen Man versteht einen Algorithmus (insbesonders einen "Fremden"), wenn
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrWichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)
Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher) CS-TING Version 9 Das Programm CS-TING Version 9 für Microsoft Word 2000 (und höher) verwendet Makros bei der
MehrDokumentation Externe Anzeige von Evento Web Dialogen
Dokumentation Externe Anzeige von Evento Web Dialogen Autor: Roger Guillet Telefon 058 404 83 57 E-Mail roger.guillet@crealogix.com CREALOGIX Evento Postfach 112, Baslerstrasse 60 CH-8066 Zürich Telefon
MehrInformatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse
rof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 25. Mai 2009 1/10 Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse Prof. G. Kemnitz Institut
MehrSoftware-Entwurfsmuster
Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm
MehrC-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)
C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) 1. Aufgabe 6 Punkte Geben Sie Definitionen an für: float var; 1 a) eine float-variable var: b) einen Zeiger pvar, der float *pvar = &var; 1 auf die
MehrHinweise zur Installation der USB Treiber für Windows XP 32bit
Hinweise zur Installation der USB Treiber für Windows XP 32bit Änderung des Installationsablaufes seit 1.11.2012 Gilt für folgende Produkte: 9352-USB / 9352-USB.05M, 9352-S7-USB, sowie 9352 / 9352.05M
Mehr3A erweitern mit eigenen Python-Tools
3A erweitern mit eigenen Python-Tools Diese Unterlagen sind nur im Zusammenhang mit dem mündlichen Vortrag vollständig. Die isolierte Nutzung einzelner Darstellungen kann zu Missverständnissen führen.
MehrBedienungsanleitung für den Online-Shop
Hier sind die Produktgruppen zu finden. Zur Produktgruppe gibt es eine Besonderheit: - Seite 1 von 18 - Zuerst wählen Sie einen Drucker-Hersteller aus. Dann wählen Sie das entsprechende Drucker- Modell
MehrQuery Transformation based on XSLT
Query Transformation based on XSLT Gesamtsystem XML format 2 transformation component XML format 1 query transformation query XP2 query XP1 transformed XML fragment F2 XSLT stylesheet XSL processor XML
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,
MehrInformatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692
Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b
MehrAlbert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen
Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.
MehrAJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.
DRUPAL 7 AJAX FRAMEWORK Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks AJAX Beispiele Fragen: Gibt es jemanden der noch gar keine Erfahrungen
MehrProgrammentwicklung mit C++ (unter Unix/Linux)
Programmentwicklung mit C++ (unter Unix/Linux) Erste Schritte Der gcc - Compiler & Linker Organisation des Source-Codes & Libraries Automatische Programmgenerierung: Make Birgit Möller & Denis Williams
MehrXcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X
Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X SwissMacMeeting #1 26. Juni 2004 Messeturm Basel http://mac.naepflin.com Was ist das Ziel dieses Kurses? Starthilfe Einblick in die Möglichkeiten,
MehrPredictive Modeling Markup Language. Thomas Morandell
Predictive Modeling Markup Language Thomas Morandell Index Einführung PMML als Standard für den Austausch von Data Mining Ergebnissen/Prozessen Allgemeine Struktur eines PMML Dokuments Beispiel von PMML
MehrECLIPSE PLUG-IN. Redwood Anwendertage 2015
ECLIPSE PLUG-IN Redwood Anwendertage 2015 Übersicht Was ist Eclipse? Welche Voraussetzungen benötige ich? Wie wird das Plug-In installiert Welche Konfigurationen sind sinnvoll? Tipps & Tricks Was ist Eclipse
MehrC++11 ist da. Und jetzt?
C++11 ist da. Und jetzt? Embedded Event 2012 Raphael Meyer Was ist C++11? JTC1 SC22 WG21 Was ist C++11? Joint ISO/IEC Technical Committee 1: Information Technology Subcommittee 22: Programming Languages
MehrLebensziel Eigenheim. Die Rolle des Internets. Repräsentative Umfrage Allianz Deutschland 2012
Lebensziel Eigenheim Die Rolle des Internets Repräsentative Umfrage Allianz Deutschland 2012 Lebensziel Eigenheim Jeder Vierte hat bereits konkrete Vorstellungen vom eigenen Heim, weitere 51% der Befragten
MehrS.M. Hartmann GmbH IT Solutions
S.M. Hartmann GmbH 82008 Unterhaching Prager Straße 7 www.smhsoftware.de S.M. Hartmann GmbH IT Solutions Software für den modernen Handel Modul IDEA-Schnittstelle gemäß GDPdU Version V5.0 Funktionsüberblick
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
Mehr