Loading AI tools
Programmiersprache Aus Wikipedia, der freien Enzyklopädie
Wyvern ist eine funktionale und 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.
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.
Wyvern ist, anders als Java, eine rein objektorientierte Programmiersprache. Jeder Wert ist ein Objekt.
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.
Wyvern ist statisch typisiert. Generische Klassen verwenden Typen, die zum Entwicklungszeitpunkt noch nicht festgelegt sind.
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.
Wyvern entstand mit dem Ziel, die Leistungsfähigkeit der Sprache Scala mit einem einfacheren aber flexibleren Sprachkern zu erreichen.
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.
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.
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.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.