forked from chrisdew/pl1-language-tools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
110 lines (74 loc) · 3.8 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
<!DOCTYPE html>
<html>
<head>
<title>PL/1 Language Tools - Orion Transfer</title>
<meta content="IE=8" http-equiv="X-UA-Compatible"/>
<meta name="google-site-verification" content="J9DVX-xhcxDKcqvGpv4ZgyUZKactHmxxhop7mv4C1UM"/>
<link href="/_images/icon.png" rel="icon" type="image/png"/>
<link href="/_css/basic.css" rel="stylesheet" media="screen" type="text/css"/>
<script src="/_static/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="/_static/fancybox/jquery.fancybox-1.3.1.pack.js" type="text/javascript"></script>
<link href="/_static/fancybox/jquery.fancybox-1.3.1.css" rel="stylesheet" media="screen" type="text/css"/>
<script src="/_static/jquery-syntax/jquery.syntax.min.js" type="text/javascript"></script>
<h1>PL/1 Language Tools</h1>
<p>PL/1 is a collection of tools for learning about parsers, interpreters, compilers and virtual machines. It has been designed from the ground up to be a minimal implementation of several common interpreter and compiler functions, including the following:</p>
<ul>
<li>Lexical analysis and tokenisation.</li>
<li>Recursive descent parsing to an abstract syntax tree.</li>
<li>Direct syntax-tree interpretation.</li>
<li>Static compilation to a stack based assembly language.</li>
<li>Assembly from symbolic assembly language to virtual op-codes.</li>
<li>Virtual machine execution using a stack-based computer.</li>
</ul>
<p>Each major function is a separate Python program typically between 100-300 lines of code.</p>
<h2>Install</h2>
<ul>
<li><a href="/docs/www.oriontransfer.co.nz/research/pl1/install/index/index.html">Installation Guide</a></li>
<li><a href="https://github.com/ioquatix/pl1-language-tools/downloads">Stable Releases</a></li>
<li><a href="https://github.com/ioquatix/pl1-language-tools">Source Code</a></li>
</ul>
<h2>Documentation</h2>
<h3>Getting Started</h3>
<ul>
<li><a href="/docs/www.oriontransfer.co.nz/research/pl1/running-examples/index/index.html">How to run the examples</a></li>
</ul>
<h3>Individual Components</h3>
<ul>
<li><a href="/docs/www.oriontransfer.co.nz/research/pl1/lexer/index/index.html">Lexer</a></li>
<li><a href="/docs/www.oriontransfer.co.nz/research/pl1/parser/index/index.html">Parser</a></li>
<li><a href="/docs/www.oriontransfer.co.nz/research/pl1/interpreter/index/index.html">Interpreter</a></li>
<li><a href="/docs/www.oriontransfer.co.nz/research/pl1/compiler/index/index.html">Compiler</a></li>
<li><a href="/docs/www.oriontransfer.co.nz/research/pl1/assembler/index/index.html">Assembler</a></li>
<li><a href="/docs/www.oriontransfer.co.nz/research/pl1/machine/index/index.html">(Virtual) Machine</a></li>
</ul>
<h2>Further Reading</h2>
<ul>
<li><a href="http://en.wikipedia.org/wiki/PL/0">Wikipedia: PL/0</a></li>
<li><a href="http://www.dabeaz.com/ply/">PLY (Python Lex Yacc)</a></li>
</ul>
<h2>Credits</h2>
<p>This project was developed by Samuel Williams, with support from Tadao Takaoka and the University of Canterbury Summer Scholarship program (2010/2011).</p>
</div>
</div>
<div class="noindex" id="links">
<table class="summary">
<tr>
</div>
<div id="footer">
<a >Contact Us</a> —
<a >Terms of Service</a> —
© 2010 Orion Transfer Ltd. All Rights Reserved.
</div>
<!-- Google Analytics -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-2590906-1");
pageTracker._trackPageview();
} catch(err) {}</script>
<!-- Google Analytics -->
</body>
</html>