Wyvern (Programmiersprache)

Wyvern i​st eine funktionale u​nd objektorientierte Programmiersprache.

Wyvern
Paradigmen: objektorientiert, funktional, imperativ
Erscheinungsjahr: 2013
Entwickler: Jonathan Aldrich, Ligia Nistor, Darya Kurilova, Stephanie Balzer, Benjamin Chung, Alex Potanin (Carnegie Mellon University)
Typisierung: statisch typisiert
Beeinflusst von: Smalltalk, Self, Scala, Newspeak
Betriebssystem: plattformunabhängig
Lizenz: GPLv2

Der Name leitet sich von einer zweibeinigen und zweiflügeligen mythischen Kreatur mit einem Drachenkopf und einem giftigen Biss ab. Als Wortherkunft gilt das lateinische vipera (Viper, → althochdeutsch wipera).

Der kompakte Sprachkern erlaubt es, oft verwendete Sprachelemente wie z. B. Operatoren oder zusätzliche Kontrollstrukturen in Benutzerklassen zu implementieren und dadurch den Sprachumfang zu erweitern und eigene domänenspezifische Sprachen (englisch domain-specific language, DSL) zu erstellen.

Konzepte

Integration mit Java

Wyvern-Programme können Java-JARs ansprechen und umgekehrt. Es können bestehende Java-Bibliotheken und -Frameworks in Wyvern-Projekte eingebunden und dort genutzt werden. Ähnliches gilt für die meisten Werkzeuge: Entwicklungsumgebungen wie Eclipse oder IntelliJ unterstützen Wyvern ebenfalls.

Objektorientierung

Wyvern ist, anders a​ls Java, e​ine rein objektorientierte Programmiersprache. Jeder Wert i​st ein Objekt.

Funktionale Programmierung

Funktionen sind First-Class-Objekte. Sie können an allen Stellen verwendet werden, an denen Werte erlaubt sind, z. B. Zuweisung an eine Variable (hier ist nicht das Ergebnis der Funktionsauswertung gemeint, sondern die Funktionen selbst) oder bei der Parameterübergabe. Methoden können jederzeit in Funktionen umgewandelt werden, sind selbst aber keine First-Class-Objekte.

Typsystem

Wyvern ist statisch typisiert. Generische Klassen verwenden Typen, die zum Entwicklungszeitpunkt noch nicht festgelegt sind.

Sprache ohne Worte

Die Sprache selbst enthält – anders als andere Sprachen – kein definiertes Schlüsselwort. Statt jedes Schlüsselwort mit dem Parser im Umfeld seines Codeblocks zu analysieren, enthält der Sprachkern einen „Klassen-Parser“. Dieser unterstützt Klassen-Deklarationen, die andere Deklarationen enthalten können – auch für Methoden und Variablen. Hierbei verbindet das Wyvern Frontend das Parsen mit Typprüfungsstufen, was in anderen Sprachen getrennt voneinander erfolgt. Auf diese Weise erkennt Wyvern Schlüsselworte völlig verschiedener Sprachen – beginnend mit Java UND JavaScript – und verarbeitet diese. Unabhängig davon verwendet Wyvern zur lexikalischen Quelltext-Analyse die von Python bekannte Strukturierung durch Einrückungen im Quelltext.

Entwurfsziel

Wyvern entstand m​it dem Ziel, d​ie Leistungsfähigkeit d​er Sprache Scala m​it einem einfacheren a​ber flexibleren Sprachkern z​u erreichen.

Förderer

Wyvern entsteht im NSA-Labor der Carnegie Mellon University unter der Leitung von Jonathan Aldrich. Darüber hinaus wird die Entwicklung der Sprache unter anderem finanziell gefördert von der U.S. National Science Foundation und dem Pentagon,

Systemvoraussetzungen

Wyvern erfordert ein installiertes Java 8 JDK. Die Wyvern-Kompilierung sollte mit einer IDE erfolgen. Eclipse Kepler sowie IntelliJ 13 oder höher werden unterstützt. Mit tslwyvern existiert auch eine Implementierung in Scala.

Verwendung

Wyvern wird entworfen, um aufgrund der Typsicherheit hohen Sicherheitsanforderungen zu genügen. Dabei soll die Entwicklung von Apps für mobile Geräte und Web-Applikation gegenüber bisherigen Vorgehensweisen vereinfacht werden. Eine Anwendung sei laut der Carnegie Mellon University, aus nur wenigen Informations-Splittern allgemeingültige Muster zu finden.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.