Grin logo
de en es fr
Shop
GRIN Website
Publish your texts - enjoy our full service for authors
Go to shop › Computer Science - Programming

Haskell im anschließenden Vergleich mit Java

Title: Haskell im anschließenden Vergleich mit Java

Pre-University Paper , 2011 , 15 Pages

Autor:in: Malte Weiss (Author)

Computer Science - Programming
Excerpt & Details   Look inside the ebook
Summary Excerpt Details

In dieser Facharbeit geht der Autor auf die wesentlichen Bestandteile der Programmiersprache Haskell ein und verdeutlicht diese kurz an Beispielen. Dabei zeigt er Ähnlichkeiten mit der Sprache Java auf und stellt beide Sprachen nochmals gezielt am Ende gegenüber.

Excerpt


Inhaltsverzeichnis

1. Haskell

1.1. Allgemeines

1.2. Programmieren in Haskell

1.2.1 Datentypen

1.2.2 Typ – Synonyme

1.2.3 Grundlagen der Funktion

1.2.4 Typklassen

1.2.5 Liste

1.2.6 Bytestring

1.2.7 Tupel

1.2.8 If – else, Guards und lokale Funktionen

1.2.9 Funktionen höherer Ordnung

1.2.10 Curry

1.2.11 Pattern Matching

1.2.12 Rekursion

1.2.12 Module

1.2.13 Ein- und Ausgabe

1.2.14 Exceptions

2. Allgemeines über Java

Zielsetzung & Themen

Die vorliegende Arbeit gibt einen einleitenden Überblick über die funktionale Programmiersprache Haskell, erläutert deren grundlegende syntaktische und strukturelle Konzepte an anschaulichen Beispielen und stellt diese anschließend der imperativen Sprache Java gegenüber, um die wesentlichen Unterschiede in der Programmierphilosophie herauszuarbeiten.

  • Grundlagen funktionaler Programmierung und Lambda-Kalkül
  • Typisierung, Datenstrukturen und Typklassen in Haskell
  • Konzepte wie Lazy Evaluation, Pattern Matching und Rekursion
  • Gegenüberstellung von Haskell und Java hinsichtlich Paradigmen und Laufzeitverhalten

Auszug aus dem Buch

1.1 Allgemeines

Haskell ist eine nach dem Mathematiker und Logiker "Haskell Brooks Curry" benannte rein funktionale Programmiersprache von 1990. Wie die meisten funktionalen Programmiersprachen basiert Haskell auf dem Lambda-Kalkül, weshalb das Lambda-Zeichen auch als Logo festgelegt wurde.[7] Anfangs sollte Miranda als Grundlage dienen, jedoch waren die Entwickler nicht gewillt, den Quellcode freizugeben[4]. Ein Haskell-Programm ist im Gegensatz zu imperativen Programmiersprachen eine einzige Kette von Ausdrücken, die nach der Auswertung einen Ergebniswert liefert. Es besteht also ausschließlich aus Funktionen. Nach dem Lambda-Kalkül können jegliche Ausdrücke durch „Reduktionen“ bis zu den elementaren Ausdrücken hin vereinfacht werden[4]. Ausdrücke sind jegliche Stücke von Code, die einen Wert zurückgeben. Außerdem ist Haskell stark statisch typisiert, was bedeutet, dass jedem Ausdruck genau ein Typ zugewiesen wird, welcher bereits beim Kompilieren bekannt ist. Dadurch werden mögliche Fehler übergangen. Dies kann auch durch „type interference“ - Haskell kann also selbst auf einen Typ schließen, sodass man diesen nicht selbst bestimmen muss. Da bei der Eingabe von gleichen Argumenten die Rückgabe immer gleich ist, hängt der Ergebniswert ausschließlich von den Parametern ab. Es gibt also keine Zustandsvariablen. Haskell hat unter anderem Python und Scala beeinflusst.

Zusammenfassung der Kapitel

1. Haskell: Dieses Kapitel erläutert die theoretischen Wurzeln der Sprache und führt detailliert in die Syntax, Datentypen, Funktionsweisen und spezifische Konzepte wie Lazy Evaluation und Monaden ein.

2. Allgemeines über Java: Dieses Kapitel gibt einen kurzen Überblick über die historische Herkunft und die imperativen, objektorientierten Grundprinzipien der Programmiersprache Java.

Schlüsselwörter

Haskell, Java, funktionale Programmierung, imperativ, Datentypen, Typklassen, Rekursion, Lazy Evaluation, Pattern Matching, Lambda-Kalkül, Compiler, Monade, Seiteneffekte, Polymorphismus, statische Typisierung

Häufig gestellte Fragen

Worum geht es in dieser Arbeit grundsätzlich?

Die Arbeit behandelt die Einführung in die funktionale Programmiersprache Haskell sowie deren vergleichende Gegenüberstellung zur imperativen Sprache Java.

Was sind die zentralen Themenfelder?

Zentrale Themen sind funktionale Konzepte wie Rekursion, Funktionen höherer Ordnung, Lazy Evaluation, algebraische Datentypen sowie die grundlegenden Paradigmenunterschiede zwischen funktionaler und objektorientierter Programmierung.

Was ist das primäre Ziel der Arbeit?

Das Ziel ist es, die wesentlichen Bestandteile von Haskell verständlich zu machen und die Vor- und Nachteile der Sprache im direkten Vergleich mit Java aufzuzeigen.

Welche wissenschaftliche Methode wird verwendet?

Es handelt sich um eine deskriptive und vergleichende Analyse, die auf Literaturrecherche und der praktischen Erläuterung von Code-Beispielen basiert.

Was wird im Hauptteil der Arbeit behandelt?

Der Hauptteil gliedert sich in eine detaillierte technische Einführung in die Features von Haskell (z.B. Datentypen, Module, Ein- und Ausgabe) und einen direkten tabellarischen Vergleich zwischen Haskell und Java.

Welche Schlüsselwörter charakterisieren die Arbeit?

Die Arbeit lässt sich durch Begriffe wie funktionale Programmierung, statische Typisierung, Lazy Evaluation und Compiler-Technologien beschreiben.

Warum spielt die Unterscheidung zwischen funktionalem und imperativem Programmierstil eine Rolle?

Die Unterscheidung ist zentral, da sie bestimmt, wie Zustände verwaltet werden, wie Fehler behandelt werden und wie ein Programm strukturiert ist (Ausdrücke vs. Anweisungsfolgen).

Was bedeutet "Lazy Evaluation" im Kontext von Haskell?

Lazy Evaluation bedeutet, dass Ausdrücke in Haskell nicht sofort berechnet werden, sondern erst dann, wenn ihr Ergebnis tatsächlich benötigt wird, was unter anderem unendliche Datenstrukturen ermöglicht.

Wie unterscheidet sich die Fehlerbehandlung in Haskell von Java?

Haskell verzichtet auf einen speziellen Exception-Syntax wie Java und nutzt stattdessen funktionale Typen wie "Maybe" oder "Either", um Fehlerzustände explizit in den Datenfluss zu integrieren.

Welche Rolle spielen Typklassen in Haskell?

Typklassen in Haskell definieren Schnittstellen für Typen, über die Funktionen polymorph auf verschiedene Datentypen angewendet werden können, ähnlich wie Interfaces in Java, jedoch mit einem anderen theoretischen Unterbau.

Excerpt out of 15 pages  - scroll top

Details

Title
Haskell im anschließenden Vergleich mit Java
Author
Malte Weiss (Author)
Publication Year
2011
Pages
15
Catalog Number
V173817
ISBN (eBook)
9783640949113
ISBN (Book)
9783640948987
Language
German
Tags
haskell vergleich java
Product Safety
GRIN Publishing GmbH
Quote paper
Malte Weiss (Author), 2011, Haskell im anschließenden Vergleich mit Java, Munich, GRIN Verlag, https://www.grin.com/document/173817
Look inside the ebook
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
Excerpt from  15  pages
Grin logo
  • Grin.com
  • Shipping
  • Contact
  • Privacy
  • Terms
  • Imprint