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/
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
See COPYING.TXT for the GPLv2 license under which this software is distributed.