Grin logo
de en es fr
Shop
GRIN Website
Publicación mundial de textos académicos
Go to shop › Ciencias de la computación - Programación

Haskell im anschließenden Vergleich mit Java

Título: Haskell im anschließenden Vergleich mit Java

Trabajo de Investigación (Colegio) , 2011 , 15 Páginas

Autor:in: Malte Weiss (Autor)

Ciencias de la computación - Programación
Extracto de texto & Detalles   Leer eBook
Resumen Extracto de texto Detalles

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.

Extracto


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.

Final del extracto de 15 páginas  - subir

Detalles

Título
Haskell im anschließenden Vergleich mit Java
Autor
Malte Weiss (Autor)
Año de publicación
2011
Páginas
15
No. de catálogo
V173817
ISBN (Ebook)
9783640949113
ISBN (Libro)
9783640948987
Idioma
Alemán
Etiqueta
haskell vergleich java
Seguridad del producto
GRIN Publishing Ltd.
Citar trabajo
Malte Weiss (Autor), 2011, Haskell im anschließenden Vergleich mit Java, Múnich, GRIN Verlag, https://www.grin.com/document/173817
Leer eBook
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
Extracto de  15  Páginas
Grin logo
  • Grin.com
  • Envío
  • Contacto
  • Privacidad
  • Aviso legal
  • Imprint