Fachseminar Programmiersprachen WS07/08 (Entwurf)

Fachseminar Programmiersprachen WS07/08 (Entwurf)

Fachseminar Programmiersprachen WS07/08 (Entwurf) 11. Januar 2008 Inhaltsverzeichnis 1 Einfuhrung¨ 2 2 OCaml (Steffen Brummer)¨ 3 2.1 Was ist OCaml? . 3 2.2 Von Caml zu OCaml . 3 2.3 Compiler und Tools . 4 2.4 Grundlagen der Sprache . 6 2.5 Imperative Konzepte . 8 2.6 Listen . 9 2.7 Module . 10 2.8 Objektorientierung . 11 2.9 Fazit, Verwendung von OCaml in der Praxis . 15 3 F# (Martin Lohrmann) 17 3.1 Einleitung . 17 3.2 Ziele und Einsatzgebiete . 17 3.3 Werkrzeuge zur Entwicklung . 18 3.3.1 .NET Framework . 18 3.3.2 der Compiler . 18 3.3.3 die Entwicklungsumgebung . 18 3.3.4 F# Interactive . 18 3.3.5 Nutzung unter Linux . 18 3.4 Ein erstes Beispiel . 19 3.5 Sprachfeatures . 20 3.5.1 Variablen und Funktionen . 20 3.5.2 Tuple . 21 3.5.3 Records . 21 3.5.4 Listen und Arrays . 22 3.5.5 Referenz . 22 3.5.6 if-Anweisung . 22 3.5.7 Schleifen . 23 3.5.8 Object Types . 23 1 4 Scala (Fabian Keller) 26 4.1 Einleitung . 26 4.1.1 Was ist Scala . 26 4.1.2 Geschichte . 26 4.1.3 Ziele bei der Entwicklung . 27 4.2 Verfugbare¨ Compiler und Interpreter . 27 4.2.1 Der Interpreter . 27 4.2.2 Der Compiler . 28 4.2.3 Scala als Shellscript . 28 4.3 Ausfuhrungsmodell¨ . 29 4.4 Allgemeine Sprachkonstrukte . 29 4.4.1 Variablendeklaration . 30 4.4.2 Bedingungen . 30 4.4.3 Schleifen . 30 4.4.4 Arrays . 31 4.4.5 Methoden . 31 4.4.6 Funktionen . 31 4.4.7 Infixnotation . 32 4.5 Typensystem . 32 4.5.1 Typen . 32 4.5.2 Superklassen . 33 4.6 Objektorientiertes Paradigma . 33 4.6.1 Klassen, Objekte und Vererbung . 33 4.6.2 Mixin Klassen . 34 4.6.3 Traits . 34 4.6.4 Generische Klassen . 35 4.6.5 Singleton-Objekte . 35 4.7 Funktionales Paradigma . 35 4.7.1 Anonyme Funktionen . 35 4.7.2 Currying . 36 4.7.3 Higher Order Functions . 36 4.7.4 Pattern Matching . 37 4.8 Webservices Paradigma . 37 4.8.1 XML Processing . 37 4.9 Beispiele . 39 4.9.1 Interaktion mit Java . 39 4.9.2 Setterfunktion . 40 4.10 Zusammenfassung . 40 4.11 Anhang . 41 4.11.1 Installation (Quickstart) . 41 5 Python (Robert Rauschenberg) 42 5.1 Einleitung . 42 5.2 Geschichte . 42 5.2.1 Woher kommt Python ? . 42 5.2.2 Python der Name . 42 5.2.3 Weiteres . 43 5.3 Python wofuer steht es? . 43 2 5.3.1 Typisierung und Plattformunabh¨angigkeit . 43 5.3.2 Plattformunabh¨angig . 43 5.4 Beispiele zur Programmierung . 43 5.4.1 Hello World in Python . 44 5.4.2 Wertzuweisungen . 44 5.4.3 Arbeiten mit Listen . 46 5.4.4 GUI eine schnelle Oberfl¨ache . 46 5.5 Weitere Informationen . 46 6 Haskell (Andreas Textor) 47 6.1 Einleitung . 47 6.2 Haskellcompiler und -Interpreter . 48 6.3 Die Grundeigenschaften am Beispiel . 48 6.3.1 Eine funktionale“ Sprache . 49 ” 6.3.2 Verschiedene Schreibweisen fur¨ Funktionen . 50 6.3.3 Typklassen . 51 6.4 Datentypen und ihre Manipulation . 52 6.4.1 Typsystem und Grundlegende Datentypen . 52 6.4.2 Listen . 53 6.4.3 Tupel . 56 6.4.4 Selbstdefinierte Datentypen . 56 6.5 Funktionale Programmierung . 59 6.5.1 Verz¨ogerte Auswertung . 59 6.5.2 Lambda-Kalkul¨ . 60 6.5.3 Funktionen h¨oherer Ordnung . 61 6.5.4 Funktionskomposition . 63 6.6 Monaden . 63 6.6.1 Das Problem mit Seiteneffekten . 63 6.6.2 Ein- und Ausgabe . 64 6.6.3 Kombination von Monaden . 65 6.7 Entwicklung von Haskell und sonstige Features . 65 6.7.1 Fazit . 66 7 Ada (Alexey Korobov) 68 7.1 Einleitung . 68 7.2 Exkurs in die Geschichte . 68 7.3 Tools & Co. 69 7.3.1 Reference Manual . 69 7.3.2 Compiler & Editoren . 69 7.4 Ausfuhrungsmodell¨ . 70 7.5 Besondere Sprachmerkmale . 70 7.5.1 Strenge statische Typisierung auf angenehme Art . 71 7.5.2 Skalare Typen . 71 7.5.3 Syntaktische Highlights . 71 7.5.4 Uberladung¨ . 71 7.5.5 Zeiger & Co. 71 7.5.6 OOP `ala Ada . 71 7.5.7 Generische Programmierung . 72 3 7.5.8 Nebenl¨aufigkeit . 72 7.5.9 Anschluß an andere Sprachen . 72 7.5.10 Pragmas . 72 7.5.11 Compiler und -Laufzeittests . 72 7.5.12 Beispielprogramm . 72 7.6 Anwendungsgebiete . 72 7.7 Fazit . 73 7.8 Quellenangaben . 73 8 D (Alexander Stolz) 74 8.1 Einleitung . 74 8.2 Geschichte . 75 8.3 Compiler . 75 8.3.1 DMD . 75 8.3.2 GDC . 76 8.3.3 Compilerbenutzung.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    164 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us