Grin logo
en de es fr
Shop
GRIN Website
Publier des textes, profitez du service complet
Go to shop › Informatique - Programmation

Modernes Clojure. Einsatz und Bewertung moderner Sprachfeatures in Clojure

Titre: Modernes Clojure. Einsatz und Bewertung moderner Sprachfeatures in Clojure

Thèse de Master , 2013 , 98 Pages , Note: 1,0

Autor:in: Lutz Leonhardt (Auteur)

Informatique - Programmation
Extrait & Résumé des informations   Lire l'ebook
Résumé Extrait Résumé des informations

Diese Masterarbeit wird sich mit dem jungen und modernen Lisp-Dialekt Clojure und seinen Sprachfeatures beschäftigen. Clojure läuft innerhalb der Java Virtuel Machine (JVM) und kann somit nahtlos in objektorientierte Java-Programme integriert werden, um beispielsweise nebenläufige Algorithmen umzusetzen. Daneben existieren alternativ auch eine CLR- sowie JavaScript-Implementierung.

Im Rahmen dieser Arbeit wird neben den Concurrency-Features auch die Technologie Software Transactional Memory (STM) vorgestellt, mit dessen Hilfe sich die ACID-Eigenschaften auf den zu manipulierenden transienten Speicher abbilden lassen. Eine Transaktion bündelt Befehle, die auf gemeinsame Ressourcen zugreifen. Falls zwei Transaktionen auf die gleiche Ressource zugreifen möchten, wird eine der beiden Transaktionen abgebrochen. Die Sprache bietet hierfür die benötigten
Konstrukte. Ein wichtiges Pattern innerhalb der Objektorientierten Programmierung ist die Trennung der Programmierschnittstelle von der Implementierung, realisiert durch Sprachelemente wie Interfaces und Klassen sowie Vererbung und Polymorphie. Clojure kann als funktionale Sprache diesen traditionellen Lösungsansatz nicht verwenden und führt Alternativen ein. Die Sprachelemente Protocols, Multimethods und Datatypes werden hierzu näher beschrieben.

Neben den Clojure-spezifischen Sprachfeatures werden weitere grundlegende Prinzipien und Entwurfsmuster der Funktionalen Programmierung wie z.B. Macros, Lambdas, Currying, Memoization, Closures und Monaden vorgestellt. Um Clojure von anderen funktionalen Sprachen abgrenzen zu können, werden abschließend Alternativen vorgestellt und ein Vergleich bezüglich Funktionsumfang und Performance mit Haskell durchgeführt.

Extrait


Inhaltsverzeichnis

  • 1 Einleitung
    • 1.1 Motivation
    • 1.2 Zielstellung
  • 2 Grundlagen der Funktionalen Programmierung
    • 2.1 Eigenschaften Funktionaler Programmierung
      • 2.1.1 Werte und veränderliche Objekte
      • 2.1.2 First-Class, High-Order und Reine Funktionen
      • 2.1.3 Collections und Datentypen
    • 2.2 Programmierparadigmen
      • 2.2.1 Imperative und Prozedurale Programmierung
      • 2.2.2 Objektorientierte Programmierung
      • 2.2.3 Deklarative Programmierung
      • 2.2.4 Weitere Programmierparadigmen
    • 2.3 Funktionale Idiome
      • 2.3.1 Lambda und Anonyme Funktionen
      • 2.3.2 Closures
      • 2.3.3 Currying
      • 2.3.4 Memoization
    • 2.4 Zusammenfassung
  • 3 Clojure-spezifische Sprachmerkmale
    • 3.1 Makros
      • 3.1.1 Makros in anderen Sprachen
      • 3.1.2 Makros in Clojure
      • 3.1.3 Quote und Syntax-Quote
      • 3.1.4 Hygiene
    • 3.2 Datentypen und Protokolle
      • 3.2.1 Definition von Protokollen
      • 3.2.2 Erweitern von Datentypen
      • 3.2.3 Benutzerdefinierte Typen
        • 3.2.3.1 defrecord
        • 3.2.3.2 deftype
        • 3.2.3.3 Inline Implementierung von Protokollen
    • 3.3 Multimethoden
      • 3.3.1 Mutlimethoden Type-Dispatch
      • 3.3.2 Hierarchien
    • 3.4 Ausnahmebehandlung
    • 3.5 Clean Code und Entwurfsmuster
      • 3.5.1 Dependency Injection
      • 3.5.2 Strategy Pattern
    • 3.6 Zusammenfassung
  • 4 Sprachfeatures zur nebenläufigen Programmierung
    • 4.1 Grundlagen paralleler Programmierung
      • 4.1.1 Multitasking und Multithreading
      • 4.1.2 Schwierigkeiten der parallelen Programmierung
      • 4.1.3 Klassische Lösung der Threading-Probleme
    • 4.2 Zustand und Identität
    • 4.3 Referenztypen
      • 4.3.1 Referenztyp var
      • 4.3.2 Referenztyp atom
      • 4.3.3 Referenztyp ref und Software Transactional Memory
      • 4.3.4 Referenztyp agent
    • 4.4 Change Tracking und Validierung von Referenztypen
    • 4.5 Futures
    • 4.6 Zusammenfassung
  • 5 Erweiterter Einsatz von Clojure
    • 5.1 Monaden
      • 5.1.1 Definition einer Monade
      • 5.1.2 Gesetze der monadischen Operationen
      • 5.1.3 Verwendung und Einsatz
      • 5.1.4 Weitere Monadentypen
        • 5.1.4.1 Zustands-Monade
        • 5.1.4.2 Maybe-Monade
    • 5.2 core.logic
      • 5.2.1 Grundlagen von core.logic
        • 5.2.1.1 Einführung in die Logische Programmierung
        • 5.2.1.2 Inferenzumgebung run
        • 5.2.1.3 Relationen vs. Funktionen
        • 5.2.1.4 Fakten und Regeln
        • 5.2.1.5 Logische Variablen
        • 5.2.1.5 conde und Pattern Matching
      • 5.2.2 Anwendung
        • 5.2.2.1 Anwendungsfälle
        • 5.2.2.2 Praktisches Beispiel
        • 5.2.2.3 Logisches Puzzle
      • 5.3 Zusammenfassung
  • 6 Alternative Funktionale Sprachen
    • 6.1 Vorstellung alternativer Sprachen
      • 6.1.1 Objective Caml
        • 6.1.1.1 Das Typsystem
        • 6.1.1.2 Funktionen
        • 6.1.1.3 Pattern Matching
        • 6.1.1.4 Rekursion
        • 6.1.1.5 Weiteres
      • 6.1.2 F#
        • 6.1.2.1 F# vs. OCaml
        • 6.1.2.2 Weiteres
      • 6.1.3 Erlang
        • 6.1.3.1 Multithreading-Support
        • 6.1.3.2 Das Typsystem
        • 6.1.3.3 Pattern Matching
        • 6.1.3.4 Funktionen
        • 6.1.3.5 Weiteres
    • 6.2 Clojure im Vergleich mit Haskell
      • 6.2.1 Funktionsumfang
      • 6.2.2 Sprachfeatures
      • 6.2.3 Performance
    • 6.3 Zusammenfassung

Zielsetzung und Themenschwerpunkte

Diese Masterarbeit befasst sich mit der funktionalen Programmiersprache Clojure und analysiert die Anwendung und Bewertung moderner Sprachfeatures in diesem Kontext.

  • Die Arbeit untersucht die Grundlagen der funktionalen Programmierung und ihre Eigenschaften.
  • Sie analysiert spezifische Sprachmerkmale von Clojure, einschließlich Makros, Datentypen und Protokollen, Multimethoden, Ausnahmebehandlung und Entwurfsmuster.
  • Die Arbeit befasst sich mit Sprachfeatures, die für die nebenläufige Programmierung in Clojure relevant sind, wie z. B. Referenztypen, Futures und Zustandstracking.
  • Sie untersucht den erweiterten Einsatz von Clojure, insbesondere Monaden und die Bibliothek core.logic.
  • Die Arbeit stellt alternative funktionale Sprachen vor, wie z. B. Objective Caml, F# und Erlang, und vergleicht sie mit Clojure.

Zusammenfassung der Kapitel

  • Kapitel 1 bietet eine Einleitung in das Thema der Arbeit, indem es die Motivation und die Zielstellung der Arbeit darlegt.
  • Kapitel 2 behandelt die Grundlagen der Funktionalen Programmierung, einschließlich ihrer Eigenschaften, Programmierparadigmen und funktionaler Idiome.
  • Kapitel 3 analysiert Clojure-spezifische Sprachmerkmale, darunter Makros, Datentypen und Protokolle, Multimethoden, Ausnahmebehandlung und Entwurfsmuster.
  • Kapitel 4 befasst sich mit Sprachfeatures zur nebenläufigen Programmierung in Clojure, einschließlich Referenztypen, Futures und Zustandstracking.
  • Kapitel 5 untersucht den erweiterten Einsatz von Clojure, insbesondere Monaden und die Bibliothek core.logic.
  • Kapitel 6 stellt alternative funktionale Sprachen vor und vergleicht sie mit Clojure.

Schlüsselwörter

Funktionale Programmierung, Clojure, Sprachfeatures, Makros, Datentypen, Protokolle, Multimethoden, Ausnahmebehandlung, Nebenläufige Programmierung, Referenztypen, Futures, Monaden, core.logic, alternative funktionale Sprachen, Objective Caml, F#, Erlang, Haskell.

Fin de l'extrait de 98 pages  - haut de page

Résumé des informations

Titre
Modernes Clojure. Einsatz und Bewertung moderner Sprachfeatures in Clojure
Université
University of Applied Sciences - Beuth
Note
1,0
Auteur
Lutz Leonhardt (Auteur)
Année de publication
2013
Pages
98
N° de catalogue
V381390
ISBN (ebook)
9783668578692
Langue
allemand
mots-clé
Clojure Concurrency Core.Logic Software Transactional Memory
Sécurité des produits
GRIN Publishing GmbH
Citation du texte
Lutz Leonhardt (Auteur), 2013, Modernes Clojure. Einsatz und Bewertung moderner Sprachfeatures in Clojure, Munich, GRIN Verlag, https://www.grin.com/document/381390
Lire l'ebook
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
  • Si vous voyez ce message, l'image n'a pas pu être chargée et affichée.
Extrait de  98  pages
Grin logo
  • Grin.com
  • Page::Footer::PaymentAndShipping
  • Contact
  • Prot. des données
  • CGV
  • Imprint