Wyvern (programming language)

from Wikipedia, the free encyclopedia
Wyvern
Paradigms : object-oriented , functional , imperative
Publishing year: 2013
Developer: Jonathan Aldrich, Ligia Nistor, Darya Kurilova, Stephanie Balzer, Benjamin Chung, Alex Potanin ( Carnegie Mellon University )
Typing : statically typed
Influenced by: Smalltalk , Self, Scala , Newspeak
Operating system : platform independent
License : GPLv2
[1]

Wyvern is a functional and object-oriented programming language .

The name is derived from a two-legged and two-winged mythical creature with a dragon head and a venomous bite. The word origin is the Latin vipera (Viper, → Old High German wipera).

The compact language core allows frequently used language elements such as B. to implement operators or additional control structures in user classes and thereby expand the range of languages ​​and create your own domain-specific languages ( English domain-specific language , DSL ).

Concepts

Integration with Java

Wyvern programs can address Java JARs and vice versa. Existing Java libraries and frameworks can be integrated into Wyvern projects and used there. The same applies to most tools: development environments such as Eclipse or IntelliJ also support Wyvern.

Object orientation

Unlike Java, Wyvern is a purely object-oriented programming language . Every value is an object.

Functional programming

Functions are first-class objects . They can be used in all places where values ​​are allowed, e.g. B. Assignment to a variable (this does not mean the result of the function evaluation, but the functions themselves) or when passing parameters. Methods can be converted into functions at any time, but are not themselves first-class objects.

Type system

Wyvern is statically typed . Generic classes use types that are not yet defined at the time of development.

Language without words

In contrast to other languages, the language itself does not contain a defined keyword. Instead of analyzing every keyword with the parser in the vicinity of its code block, the language core contains a "class parser". This supports class declarations that can contain other declarations - also for methods and variables. The Wyvern frontend combines parsing with type testing levels, which are done separately in other languages. In this way, Wyvern recognizes and processes keywords in completely different languages ​​- starting with Java AND JavaScript. Independently of this, Wyvern uses the Python structuring through indentations in the source text for lexical source code analysis .

Design goal

Wyvern was created with the aim of achieving the performance of the Scala language with a simpler but more flexible language core.

Sponsor

Wyvern is created in the NSA laboratory at Carnegie Mellon University under the direction of Jonathan Aldrich. In addition, the development of the language is financially supported by the US National Science Foundation and the Pentagon , among others .

System requirements

Wyvern requires a Java 8 JDK to be installed. Wyvern compilation should be done with an IDE. Eclipse Kepler and IntelliJ 13 or higher are supported. With tslwyvern there is also an implementation in Scala .

use

Wyvern is designed to meet high security requirements due to type safety. The development of apps for mobile devices and web applications is to be simplified compared to previous approaches. According to Carnegie Mellon University, one application is to find general patterns from just a few fragments of information.

Web links