/wyvern

The Wyvern programming language.

Primary LanguageJavaGNU General Public License v2.0GPL-2.0

The Wyvern project

Build Status

Wyvern is a new general-purpose programming language designed to support adaptation and assurance. Key features of Wyvern's evolving design include:

  • A simple object model with good support for both object-oriented and functional programming
  • Static type safety
  • Extensibility with domain-specific syntax via libraries written within the language
  • A simple but powerful capability-safe module system
  • Support for various aspects of software architecture within the running system

The best starting point for understanding Wyvern is the Wyvern manifesto: Wyvern: A Language for Usable Design-Driven Assurance

For an introduction to key concepts of the Wyvern language, see https://github.com/wyvernlang/docs/raw/master/guide/wyvern-guide.pdf

For information about how to build and run the Wyvern tools, and about the Wyvern tools architecture, see https://raw.githubusercontent.com/wyvernlang/docs/master/tooldoc/wyvern-tool-architecture.mdk

Research papers on Wyvern and other material is available at the Wyvern web page, http://wyvernlang.github.io/

Contributing

If you'd like to contribute to Wyvern, read the Wyvern tool architecture document above to get the system to build on your machine, then find an issue marked "Starter" and comment that you are working on it--then submit a pull request when you are done. Please send questions to jonathan.aldrich@cs.cmu.edu

License

See COPYING.TXT for the GPLv2 license under which this software is distributed.