Programmierparadigmen in Erlang 2
Inhaltsverzeichnis
Abbildungsverzeichnis 3
Listingverzeichnis 3
1 Kurzfassung. 4
2 Begriffsdefinitionen. 5
3 Einleitung 6
4 Syntax. 7
4.1 Ausdrücke 7
4.2 Variablen. 7
4.3 Atome. 9
4.4 Tupel 9
4.5 Listen. 10
4.6 Module und Funktionen. 11
4.7 Error Handling 15
5 verfügbare Programmierumgebungen. 17
5.1 Standard-Programmierumgebung 17
5.2 Erlide. 17
6 Unterschiede zu weitverbreiteten Sprachen 19
7 Paradigmen in Erlang 20
7.1 Ausgewählte Programmierparadigmen. 20
7.2 Realisierung von Paradigmen in Erlang 24
7.3 In Erlang nicht realisierte Paradigmen. 33
8 Allgemeiner Nutzen von Erlang. 34
9 Literaturverzeichnis. 35
Kreisel , Pernsteiner Seminar Software Engineering SS 2008
Programmierparadigmen in Erlang 3
Abbildungsverzeichnis
Abbildung 1: Klassifizierung von Programmiersprachen [Grabmüller 2003, S. 12] 20
Listingverzeichnis
Listing 1: Eine einfache Berechnung in Erlang 7
Listing 2: Zuweisung von Variablen mittels Pattern Matching 8
Listing 3: Anlegen eines Tupels, welcher mehrere Tupel enthält 9
Listing 4: Einsatz des Pattern Matching Operators zum Extrahieren von Werten 10 Listing 5: Einige Beispiele mit Listen 11
Listing 6: Definition einer Liste mit verschiedenen Figuren 12
Listing 7: Modul geometrie.erl 12
Listing 8: Kompilieren des Moduls geometrie und Test der Funktion flaeche() 13
Listing 9: Erweiterung des Moduls geometrie durch die Funktion totaleFlaeche() 14 Listing 10: Anwendung der Funktion totaleFlaeche() 14
Listing 11: Verwendung von case-Konstrukten in flaeche() 15
Listing 12: flaeche() mit Exceptions 15
Listing 13: Aufruf der neuen Funktion flaeche() 15
Listing 14: Funktion flaecheMitTryUndCatch() 16
Listing 15: Aufruf der Funktion flaecheMitTryUndCatch() 16
Listing 16: Pattern Matching in Funktionen [Armstrong 2007, S. 45] 26
Listing 17: Rekursive for-Schleife in Erlang [Armstrong 2007, S. 47] 26
Listing 18: Key-Value-Server, [Armstrong 2007, S. 170ff] 30
Listing 19: lokaler Testlauf des Servers 31 Listing 20: Start Node 1 31 Listing 21: Start Node 2 31
Listing 22: Nodes auf verschiedenen Maschinen 32
Listing 23: Testlauf KVS auf verteilten Rechnern 32
Kreisel, Pernsteiner Seminar Software Engineering SS 2008
Programmierparadigmen in Erlang 4
1 Kurzfassung
"Erlang ist eine nebenläufige und verteilte funktionale Sprache." [Sahlin 1996]
Die native Unterstützung dieser drei Paradigmen durch einfache und leicht erlernsowie anwendbare Sprachstrukturen machen die Programmiersprache Erlang zu einem äußerst mächtigen Werkzeug wenn es darum geht, verteilte Anwendungen, die durch viele leichtgewichtige Prozesse abbildbar sind, unkompliziert und sicher zu realisieren.
Die Eigenschaft der Zustandsfreiheit, der prinzipielle Verzicht auf geteilten Speicher und die Behandlung von Fehlern, die mittels Verbinden von Prozessen behandelt werden können, stellen Funktionen zur Verfügung, welche die geforderte Sicherheit verteilter Softwaresysteme auf relativ einfache Weise garantieren können.
Besonders im Hinblick darauf, dass Leistungszuwächse von Rechnern neuer Generationen nicht auf schnellere einzelne Prozessoren sondern auf die Verteilung der Rechenlast auf mehrere Prozessoren zurückzuführen sein wird, kann davon ausgegangen werden, dass dieser Programmiersprache in naher Zukunft noch bedeutende Relevanz zukommen wird.
Kreisel, Pernsteiner Seminar Software Engineering SS 2008
Programmierparadigmen in Erlang 5
2 Begriffsdefinitionen
Tabelle 1: Begriffsdefinitionen
Kreisel, Pernsteiner Seminar Software Engineering SS 2008
Programmierparadigmen in Erlang 6
3 Einleitung
Die folgende Arbeit behandelt die Programmiersprache Erlang mit speziellem Augenmerk auf die Umsetzung der Paradigmen funktionaler, verteilter und nebenläufiger Programmierung in dieser Sprache.
Zu diesem Zweck wird in den einleitenden Kapiteln 4-6 die Sprache, ihre Syntax sowie Parallelen und Unterschiede zu bekannten Programmiersprachen vorgestellt.
In weiterer Folge werden in Kapitel 7 die für diese Sprache wesentlichen Paradigmen theoretisch behandelt. Abschließend werden die theoretischen Kriterien dieser Paradigmen mit der konkreten Umsetzung in Erlang verglichen.
Zum Abschluss der Arbeit wird der allgemeine Nutzen von Erlang im Hinblick auf die Anwendungsmöglichkeiten behandelt.
Kreisel, Pernsteiner Seminar Software Engineering SS 2008
Programmierparadigmen in Erlang 7
4 Syntax
Die Syntax eines Erlang-Programms unterscheidet sich in einigen Teilen sehr wesentlich von der Syntax konventioneller Sprachen wie C++ oder Java. Im folgenden Kapitel sollen auf die Grundstrukturen der Erlang-Syntax eingegangen und wichtige Sprachkonstrukte dargestellt werden.
4.1 Ausdrücke
Ein Erlang-Programm ist primär aus verschiedenen Ausdrücken aufgebaut. Ein Ausdruck in Erlang hat immer einen bestimmten Wert und wird mit einem "." als Trennzeichen beendet. Kommentare werden in Erlang dagegen mit einem "%"-Zeichen eingeleitet. Der folgende Erlang-Code soll dies verdeutlichen [vgl. Armstrong 2007, S. 14]:
1> % Es folgt nun Erlang Code für eine einfache Berechnung 2> 2 + 3 * 4. 14
Listing 1: Eine einfache Berechnung in Erlang
Zahlen können in Erlang entweder ganzzahlig (Integer) oder als Gleitkommazahl (Float) benützt werden. Für die Integer-Arithmetik benützt Erlang intern beliebig lange Integer. Dadurch wird das Problem eines Integer-Überlaufs ausgeschlossen.
4.2 Variablen
Variablennamen beginnen in Erlang stets mit einem Großbuchstaben und darauf folgend optional beliebig viele alphanumerischen Zeichen inklusive "_" und "@". Beispiele für gültige Variablennamen wären somit: Variable1,
Meine_Zweite_Variable und Email@server_com.
Der erste wichtige Unterschied einer funktionalen Programmiersprache wie Erlang gegenüber konventionellen Programmiersprachen wie Java oder C++ wird bei den Variablen sichtbar. In Erlang können Variablen nur einmal mit einem Wert belegt werden. Ist der Wert einer Variable einmal festgelegt, kann er nicht mehr geändert werden. Dies hat den großen Vorteil, dass es keine Seiteneffekte durch veränderbare Variablen gibt, und sich Erlang Programme sehr einfach, parallel und über mehrere Systeme verteilt, ausführen lassen.
Kreisel, Pernsteiner Seminar Software Engineering SS 2008
Arbeit zitieren:
Christoph Pernsteiner, Holger Kreisel, 2008, Programmierparadigmen in Erlang, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
Christoph Pernsteiner's Text Programmierparadigmen in Erlang ist nun auf dem Buchmarkt erhältlich
Christoph Pernsteiner hat den Text Programmierparadigmen in Erlang veröffentlicht
Christoph Pernsteiner hat einen neuen Text hochgeladen
Masterkurs Parallele und Verteilte Systeme
Grundlagen und Programmierung ...
Günther Bengel, Christian Baun, Marcel Kunze, Karl-Uwe Stucky
Software-Architekturen für Verteilte Systeme
Prinzipien, Bausteine und Stan...
Schahram Dustdar, Harald Gall, Manfred Hauswirth
Parallele Programmierung spielend gelernt mit dem Java-Hamster-Modell
Programmierung mit Java-Thread...
Dietrich Boles
Kommunikation in Verteilten Systemen (KiVS)
13. Fachtagung Kommunikation i...
Klaus Fähnrich, Klaus Irmscher
Kommunikation in Verteilten Systemen (KiVS) 2005
14. Fachtagung Kommunikation i...
Paul Müller, Reinhard Gotzhein, Jens B. Schmitt
Verteilte Systeme und Services mit .NET 4.0
Konzepte und Lösungen mit WCF ...
Manfred Steyer, Holger Schwichtenberg, Matthias Fischer, Jörg Krause
0 Kommentare