WikiDer > Sauber (Programmiersprache)

Clean (programmeertaal)
sauber
Paradigmafunktional
erschien1987
Entworfen vonRadboud Universität Nimwegen
Entwickelt vonRadboud Universität Nimwegen
Aktuelle Version3.0 (19. Oktober 2018)
Typensystemstatisch, stark
Beeinflusst vonHaskell
BetriebssystemFenster, Linux und OS X
LizenzLGPL
WebseiteOffizielle Website
Portal  Portalsymbol  Informatik

sauber ist ein funktionale Programmiersprache, entwickelt am Radboud Universität Nimwegen. Clean wurde für praktische Anwendungen entwickelt.[1] Eine funktionale Programmiersprache bedeutet, dass Programme in Form einer Funktion geschrieben werden, die angewendet wird, um ein Ergebnis zu finden.[2] Da Clean eine funktionale Programmiersprache ist, kann es einfacher sein, Clean zu lernen, wenn man bereits mit High-School-Algebra vertraut ist.[3] Clean hat viele Ähnlichkeiten mit anderen modernen funktionalen Programmiersprachen wie z Miranda, Haskell und ML.[4] Sauber ist verfügbar für Fenster, Linux und OS X.[5]

Geschichte

Clean war ursprünglich eine Teilmenge von Lean, die als experimentelle Programmiersprache mit dem Ziel entwickelt wurde, Umschreiben von Grafiken das Modell zu studieren.[1] Das Umschreiben von Graphen beinhaltet das Erstellen eines neuen Anzahl macht aus dem Original Anzahl unter Verwendung eines Automaten.[6] Um sich auf die wesentlichen Umsetzungsthemen zu konzentrieren, wurde bewusst auf wenig verzichtet Syntaxregeln in Clean eingeben. Clean wurde immer mehr für die Erstellung von Anwendungen verwendet und schließlich wurde Clean in a allgemeiner Zweck funktionale Programmiersprache.[1] Dies bedeutet, dass es sich um eine funktionale Programmiersprache handelt, die für verschiedene Zwecke verwendet wird.[7] Clean wurde erstmals im Mai 1995 veröffentlicht.[1]

Dynamik

Dynamics ist eine Funktion in Clean, die die Möglichkeit bietet, einen Ausdruck in den Speicher zu schreiben oder über ein Netzwerk zu senden. Dies ermöglicht es, einen Ausdruck an ein anderes System weiterzuleiten oder ein modulbasiertes System zu entwickeln Verwenden Sie eine Funktion in Ihrem Code, aber Sie sind sich nicht sicher, ob Sie später einen effizienteren Weg für diese Funktion finden könnten. Im Fall einer Sortierfunktion könnten Sie beispielsweise sagen, dass Sie eine Funktion vom Typ [a ] → [ a] aus Datei X. Anschließend können Sie diese Datei durch eine andere Implementierung ersetzen, sodass Sie ganz einfach eine andere Implementierung derselben Funktion verwenden können.

Typprüfung

Die Erfahrung mit der Entwicklung großer Programme hat gezeigt, dass es sehr nützlich ist, das Programm vor der Ausführung zu überprüfen. Der Compiler kann nicht nur die Syntax prüfen, sondern auch prüfen, ob es sinnvoll ist, eine Funktion auf ein bestimmtes Argument anzuwenden (zB eine Quadratwurzel eines Strings zu ziehen macht keinen Sinn). Letzteres wird als Typprüfung bezeichnet. Einige Beispiele für Programmiersprachen, die Typprüfungen durchführen, sind ML, Miranda, Haskell und natürlich Clean. Die Fähigkeit, Funktionen zu definieren, die mit anderen Funktionen und Rückgabefunktionen arbeiten, ist ein wichtiges Merkmal dieser Programmiersprachen.[4]

Eigenschaften

Die Typprüfung von Clean garantiert, dass Laufzeit Typfehler werden nicht auftreten. Dadurch entfällt die Notwendigkeit umfangreicher Tests, ob das Programm frei von solchen Fehlern ist oder nicht. Die Typüberprüfung durch den Compiler ist auch schneller und sicherer.

Zusammen machen diese Eigenschaften es viel einfacher, Algorithmen schreiben. Es macht es auch einfacher zu verstehen, was andere geschrieben haben, und bestehende Funktionen zu ändern. Dadurch eignen sich funktionale Sprachen wie Clean gut für die evolutionäre Entwicklung. Die Wartung wird einfacher und die Wiederverwendung ist endlich möglich.

Beispiele

 Quadrat :: Int → Int Quadrat n = n * n

Zeile 1 gibt die Typen der Funktion an: Ganzzahl als Argument und Ganzzahl als Ergebnis. Zeile 2 gibt an, wie das Ergebnis berechnet wird: Multiplizieren Sie das Argument mit sich selbst.

 fac :: Int →Int fac 0 = 1 fac n = n * fac(n-1)

Zeile 2 wird ausgeführt, wenn das Argument 0 ist. Zeile 3 wird ausgeführt, wenn das Argument etwas anderes als 0 ist.

 Start :: String Start = "Hallo Welt"

Der Wert von Start wird dem Benutzer angezeigt. Regel 2 stellt sicher, dass Hallo Welt erscheint auf dem Bildschirm.[8]

Siehe auch

Externe Links