forked from wyvernlang/wyvernlang.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
114 lines (101 loc) · 6.67 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>The Wyvern Programming Language</title>
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
</head>
<body>
<div id="top">
<div id="menu">
<h1>Wyvern</h1>
</div>
<div id="content">
<h2>The Wyvern Programming Language</h2>
Wyvern is a new programming language designed to help
developers be highly productive when writing high-assurance
applications. The first major innovation in Wyvern
is <a href="http://www.cs.cmu.edu/~aldrich/papers/ecoop14-tsls.pdf">type-specific
languages</a>, a feature that allows programmers to create
literals of a given type (e.g. a SQLQuery type) in a language
appropriate to that type (e.g. SQL). We are currently working
on the
Wyvern <a href="http://www.cs.cmu.edu/~aldrich/papers/maspeghi13.pdf">object
model</a> and on providing architects with
more <a href="http://www.cs.cmu.edu/~aldrich/papers/iwaco2014-arch-control.pdf">architectural
control</a>.
<p>The ongoing implementation of Wyvern
is <a href="https://github.com/wyvernlang/wyvern">available</a>
on GitHub. We have also written
a <a href="https://github.com/wyvernlang/wyvern/wiki/Wyvern:-A-Language-for-Usable-Design-Driven-Assurance">manifesto</a> and related <a href="http://www.cs.cmu.edu/~aldrich/presentations/wyvern-nool17.pdf">talk slides</a>
describing the goals and core ideas behind the design of the
language.</p>
<h2>Giving Wyvern a Go</h2>
You can download a recent (3/25/18)
release <a href="./files/WyvernDemo20180325.zip">here</a> and
after unzipping run the <pre>bin/wyvern</pre>
or <pre>bin/wypy</pre> depending on whether you want the
interpreter or a Wyvern to Python compiler. Try the examples
in the <pre>examples</pre> folder or follow
the <a href="https://github.com/wyvernlang/docs/raw/master/guide/wyvern-guide.pdf">Wyvern
Guide</a>. To build Wyvern and possibly make changes to the language tools, follow the instructions in the <a href="https://raw.githubusercontent.com/wyvernlang/docs/master/tooldoc/wyvern-tool-architecture.mdk">Wyvern Tool Architecture document</a>.
<h2>Publications Related to Wyvern</h2>
<ul>
<li><a href="https://dl.acm.org/doi/10.1145/3371134">Decidable subtyping for path dependent types</a>. Julian Mackay, Alex Potanin, Jonathan Aldrich, and Lindsay Groves. Proc. Principles of Programming Languages (POPL), January 2020.</li>
<li><a href="http://www.cs.cmu.edu/~aldrich/papers/ecoop17modules.pdf">A Capability-Based Module System for Authority Control</a>.
Darya Melicher, Yangqingwei Shi, Alex Potanin, and Jonathan Aldrich.
Proc. European Conference on Object-Oriented Programming (ECOOP), June 2017.</li>
<li><a href="http://www.cs.cmu.edu/~aldrich/papers/ecoop15-tags.pdf">A Theory of Tagged Objects</a>. Joseph Lee, Jonathan Aldrich, Troy Shaw, and Alex Potanin. <i>Proc. European Conference on Object-Oriented Programming (ECOOP)</i>, 2015.</li>
<li><a href="http://www.cs.cmu.edu/~aldrich/papers/sac15-tsms.pdf">Composable and Hygienic Typed Syntax Macros</a>. Cyrus Omar, Chenglong Wang, and Jonathan Aldrich. <i>Proc. Symposium on Applied Computing (SAC)</i>, 2015.</li>
<li><a href="http://www.cs.cmu.edu/~aldrich/papers/LiPotaninAldrichFTfJP2015.pdf">Delegation vs. Inheritance for Typestate Analysis</a>. Du Li, Alex Potanin, and Jonathan Aldrich. In <i>Proceedings of Formal Techniques for Java Like Programs (FTfJP)</i>, 2015.</li>
<li><a href="http://www.cs.cmu.edu/~aldrich/papers/plateau14-wyvern.pdf">Wyvern: Impacting Software Security via Programming Language Design</a>. Darya Kurilova, Alex Potanin, and Jonathan Aldrich. Proc. <i>Evaluation and Usability of Programming Languages and Tools (PLATEAU)</i>, 2014.</li>
<li><a href="http://www.cs.cmu.edu/~aldrich/papers/ecoop14-tsls.pdf">Safely Composable Type-Specific Languages</a>. Cyrus Omar, Darya Kurilova, Ligia Nistor, Benjamin Chung, Alex Potanin, and Jonathan Aldrich. Proc. European Conference on Object-Oriented Programming, 2014.</li>
<li><a href="http://www.cs.cmu.edu/~aldrich/papers/iwaco2014-arch-control.pdf">Language-Based Architectural Control</a>. Jonathan Aldrich, Cyrus Omar, Alex Potanin, and Du Li. In <i>International Workshop on Aliasing, Capabilities, and Ownership (IWACO '14)</i>, 2014.</li>
<li><a href="http://www.cs.cmu.edu/~aldrich/papers/maspeghi13.pdf">Wyvern: A Simple, Typed, and Pure Object-Oriented Language</a>. Ligia Nistor, Darya Kurilova, Stephanie Balzer, Benjamin Chung, Alex Potanin, and Jonathan Aldrich. In <i>Mechanisms for Specialization, Generalization, and Inheritance (MASPEGHI)</i>, 2013.</li>
<li><a href="http://www.cs.cmu.edu/~aldrich/papers/globaldsl13.pdf">Type-Directed, Whitespace-Delimited Parsing for Embedded DSLs</a>. Cyrus Omar, Benjamin Chung, Darya Kurilova, Alex Potanin, and Jonathan Aldrich. In <i>Globalization of Domain Specific Languages (GlobalDSL)</i>, 2013.</li>
</ul>
<h2>People</h2>
<h3>Carnegie Mellon University</h3>
<img width="300" src="images/cmu.png"/>
<ul>
<li><a href="http://www.cs.cmu.edu/~aldrich/">Jonathan Aldrich</a>
(academic staff)</li>
<li><a href="http://www.cs.cmu.edu/~dkurilov/">Darya Melicher</a></li>
<li>Selva Samuel</li>
<li>Alice Oh</li>
<li>Alex Gao</li>
</ul>
<h3>Victoria University of Wellington</h3>
<img width="300" src="images/vuw.png"/>
<ul>
<li><a href="http://homepages.mcs.vuw.ac.nz/~alex/">Alex Potanin</a>
(academic staff)</li>
<li>Julian Mackay</li>
<li>Tu Dinh</li>
<li>Andre Westerlund</li>
</ul>
<h3>Past project members</h3>
<ul>
<li>Aaron Craig</li>
<li><a href="http://www.cs.cmu.edu/~balzers/">Stephanie Balzer</a></li>
<li>Benjamin Chung</li>
<li>Joseph Lee</li>
<li><a href="http://www.cs.cmu.edu/~duli/">Du Li</a></li>
<li>Robbie McKinstry</li>
<li><a href="http://www.cs.cmu.edu/~lnistor/">Ligia Nistor</a></li>
<li><a href="http://cyrus.omar.name/">Cyrus Omar</a></li>
<li>Mitchell Plamann</li>
<li>Troy Shaw</li>
<li><a href="http://chenglongwang.org/">Chenglong Wang</a></li>
<li>Valerie Zhao</li>
</ul>
The Wyvern project is supported by the DARPA BRASS program, the US Department of Defense, and by Oracle Labs Australia.
</div>
<div id="footer">
Copyright 2018 The Wyvern Developers<br/> Plaid pattern
from <a href="http://www.squidfingers.com/patterns/">SquidFingers</a><br/>
</div>
</div>
</body>
</html>