This repository has been archived by the owner on Aug 16, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnotes.html
209 lines (186 loc) · 13.1 KB
/
notes.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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Notes — CIS 706/801: Translator Design I & II, Fall 2020</title>
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="_static/cis706.css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/language_data.js"></script>
<script src="_static/js/jquery-1.11.0.min.js"></script>
<script src="_static/js/jquery-fix.js"></script>
<script src="_static/bootstrap-3.3.7/js/bootstrap.min.js"></script>
<script src="_static/bootstrap-sphinx.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Projects" href="projects.html" />
<link rel="prev" title="Advice" href="advice.html" />
</head><body>
<div id="navbar" class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html">
Home</a>
<span class="navbar-text navbar-version pull-left"><b></b></span>
</div>
<div class="collapse navbar-collapse nav-collapse">
<ul class="nav navbar-nav">
<li><a href="syllabus.html">Syllabus</a></li>
<li><a href="schedule.html">Schedule</a></li>
<li><a href="projects.html">Projects</a></li>
<li><a href="#">Notes</a></li>
<li class="dropdown globaltoc-container">
<a role="button"
id="dLabelGlobalToc"
data-toggle="dropdown"
data-target="#"
href="index.html"> <b class="caret"></b></a>
<ul class="dropdown-menu globaltoc"
role="menu"
aria-labelledby="dLabelGlobalToc"></ul>
</li>
</ul>
<form class="navbar-form navbar-right" action="search.html" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search" />
</div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-12 content">
<div class="section" id="notes">
<span id="id1"></span><h1>Notes<a class="headerlink" href="#notes" title="Permalink to this headline">¶</a></h1>
<h3>CIS 706/801: Translator Design I & II, Fall 2020</h3><hr class="docutils" />
<div class="section" id="cis-account">
<h2>CIS Account<a class="headerlink" href="#cis-account" title="Permalink to this headline">¶</a></h2>
<p>If you do not have a CIS account, here is how to get one:</p>
<ul class="simple">
<li><p>Get a <a class="reference external" href="https://eid.k-state.edu/">K-State eID</a> if you don’t already have one.</p></li>
<li><p><a class="reference external" href="https://selfserv.cs.ksu.edu/">Sign up</a> online for a CIS account
(which requires an active eID first!).</p></li>
<li><p>The account manager will approve your account and you will receive a password
by email to by your eID account.</p></li>
</ul>
</div>
<div class="section" id="github-account">
<h2>GitHub Account<a class="headerlink" href="#github-account" title="Permalink to this headline">¶</a></h2>
<p>Coursework submissions will be done via <a class="reference external" href="https://github.com">GitHub</a>.
In the beginning of the course, each student will be given a private GitHub
repository; thus, you need to have a <a class="reference external" href="https://github.com/join">GitHub account</a>.</p>
</div>
<div class="section" id="course-software-infrastructure">
<span id="sireum"></span><h2>Course Software Infrastructure<a class="headerlink" href="#course-software-infrastructure" title="Permalink to this headline">¶</a></h2>
<p>It is recommended that you use <a class="reference external" href="http://logika.sireum.org/doc/01-getting-started/index.html">Sireum v3 IVE</a> which provides all the required tools
for the course in a single bundle.
Once installed, you can found all the required tools under
<code class="docutils literal notranslate"><span class="pre">SIREUM_HOME/platform</span></code>.
(Alternatively, you can also choose to use <a class="reference external" href="https://github.com/sireum/kekinian#sireum-a-high-assurance-system-engineering-platform">Sireum IVE next-gen</a>,
which under active development; the subsequent paragraphs assume the former.)</p>
<p><a class="reference external" href="http://logika.sireum.org/doc/01-getting-started/index.html#sireum-integrated-verification-environment-ive">Sireum IVE</a>
is installed in all CS labs (e.g., 1114 and 1117 Engineering Hall);
see <a class="reference internal" href="#cslabs"><span class="std std-ref">K-State CS Laboratories</span></a> for more information.</p>
<p>Below are some information if you prefer to install the required tools yourself.</p>
<p>You need <a class="reference external" href="http://www.java.com">Java</a> 8 (or above) SDK to compile and test the course example code,
assignments, etc.
For your course work, you can choose to use <a class="reference external" href="http://scala-lang.org">Scala</a> 2.12.12 (which still requires Java 8).</p>
<p>We will use the <a class="reference external" href="http://www.scala-sbt.org/">Sbt</a> build tool (1.3.13)
and <a class="reference external" href="https://www.jetbrains.com/idea/">IntelliJ</a> with the following plugins (see the <a class="reference external" href="https://www.jetbrains.com/help/idea/managing-plugins.html">IntelliJ doc</a>
on how to install them):</p>
<ul>
<li><p><a class="reference external" href="https://plugins.jetbrains.com/plugin/7358">ANTLR v4 grammar plugin</a></p>
<p><a class="reference external" href="http://antlr.org">ANTLR</a> v4 is required for developing parser/lexer in the course.
The ANTLR v4 grammar plugin is an excellent environment for ANTLR inside IntelliJ.
It is highly recommended that you use the plugin when working with the course
assignments.</p>
</li>
<li><p><a class="reference external" href="https://plugins.jetbrains.com/plugin/9345">JDT ASTView plugin</a></p>
<p>To help you understand Eclipse Java Development Tools (JDT) object model
Application Programming Interface (API), you can install the JDT ASTView plugin.
The lectures assume that you have installed this plug-in.</p>
</li>
<li><p>[ASM Bytecode Viewer](<a class="reference external" href="http://plugins.jetbrains.com/plugin/10302-asm-bytecode-viewer">http://plugins.jetbrains.com/plugin/10302-asm-bytecode-viewer</a>)</p>
<p>The example project uses ASM for generating Java class files.
To help you understand ASM API, you can install the ASM Bytecode Viewer plugin.</p>
</li>
<li><p><a class="reference external" href="https://plugins.jetbrains.com/plugin/1347">Scala</a></p></li>
</ul>
</div>
<div class="section" id="staticjava-compiler-examples-and-slides">
<h2>StaticJava Compiler, Examples, and Slides<a class="headerlink" href="#staticjava-compiler-examples-and-slides" title="Permalink to this headline">¶</a></h2>
<p>The course example projects (e.g., StaticJava Compiler) are stored in a Git
repository accessible at: <a class="reference external" href="https://github.com/ksu-cis-706/compiler">https://github.com/ksu-cis-706/compiler</a></p>
<p>Slides can be accessed at: <a class="reference external" href="http://goo.gl/jODYcY">http://goo.gl/jODYcY</a></p>
<p>Note that the slides will be updated during the course so do not print them
until we have discussed the topics.</p>
</div>
<div class="section" id="k-state-cs-laboratories">
<span id="cslabs"></span><h2>K-State CS Laboratories<a class="headerlink" href="#k-state-cs-laboratories" title="Permalink to this headline">¶</a></h2>
<div class="section" id="cs-windows-machines">
<h3>CS Windows Machines<a class="headerlink" href="#cs-windows-machines" title="Permalink to this headline">¶</a></h3>
<p>In a CS Windows machine (including Windows RDP server <code class="docutils literal notranslate"><span class="pre">remote.win.cs.ksu.edu</span></code>),
Sireum IVE can be launched by using the start menu item <code class="docutils literal notranslate"><span class="pre">Sireum</span></code> (or <code class="docutils literal notranslate"><span class="pre">Sireum32</span></code>
for the 32-bit version) or by issuing the command-line <code class="docutils literal notranslate"><span class="pre">idea64</span></code> or <code class="docutils literal notranslate"><span class="pre">idea</span></code>.
Sireum CLI can be launched by issuing the command-line <code class="docutils literal notranslate"><span class="pre">sireum</span></code>.</p>
<p>The absolute path to <code class="docutils literal notranslate"><span class="pre">SIREUM_HOME</span></code> is <code class="docutils literal notranslate"><span class="pre">C:\Sireum</span></code>.</p>
</div>
<div class="section" id="cs-linux-machines">
<h3>CS Linux Machines<a class="headerlink" href="#cs-linux-machines" title="Permalink to this headline">¶</a></h3>
<p>In a CS Linux machine (including using <code class="docutils literal notranslate"><span class="pre">ssh</span> <span class="pre">-X</span></code> or using
the faster remote desktop protocol <a class="reference external" href="wiki.x2go.org/">X2Go</a> to <code class="docutils literal notranslate"><span class="pre">cslinux.cs.ksu.edu</span></code>),
Sireum IVE can be launched by issuing the command-line <code class="docutils literal notranslate"><span class="pre">idea</span></code>.</p>
<p>The absolute path to <code class="docutils literal notranslate"><span class="pre">SIREUM_HOME</span></code> is <code class="docutils literal notranslate"><span class="pre">/research/santos/sireum/linux64/Sireum</span></code>.</p>
</div>
<div class="section" id="cs-rdp-macos-server">
<h3>CS RDP macOS Server<a class="headerlink" href="#cs-rdp-macos-server" title="Permalink to this headline">¶</a></h3>
<p>In the CS RDP macOS server <code class="docutils literal notranslate"><span class="pre">remote-mac.cs.ksu.edu</span></code>,
Sireum IVE can be launched by double-clicking the <code class="docutils literal notranslate"><span class="pre">Sireum</span></code> icon in <code class="docutils literal notranslate"><span class="pre">/Applications</span></code>
or by issuing the command-line: <code class="docutils literal notranslate"><span class="pre">open</span> <span class="pre">/Applications/Sireum.app</span></code>.
Sireum CLI can be launched by issuing the command-line <code class="docutils literal notranslate"><span class="pre">sireum</span></code>.</p>
<p>The absolute path to <code class="docutils literal notranslate"><span class="pre">SIREUM_HOME</span></code> is <code class="docutils literal notranslate"><span class="pre">/Applications/Sireum.app/Contents/Resources/sireum-v3</span></code>.</p>
</div>
</div>
<div class="section" id="rdp-clients">
<h2>RDP Clients<a class="headerlink" href="#rdp-clients" title="Permalink to this headline">¶</a></h2>
<p>If you plan to use RDP from your personal machine,
you can download the appropriate free client for your machine OS:</p>
<ul class="simple">
<li><p><a class="reference external" href="https://itunes.apple.com/us/app/microsoft-remote-desktop/id715768417">Microsoft Remote Desktop for macOS</a></p></li>
<li><p><a class="reference external" href="https://www.microsoft.com/en-us/store/p/microsoft-remote-desktop/9wzdncrfj3ps">Microsoft Remote Desktop for Windows</a></p></li>
<li><p>Linux:</p>
<ul>
<li><p><a class="reference external" href="http://www.remmina.org/wp/">Remmina</a></p></li>
<li><p><a class="reference external" href="http://www.rdesktop.org">Rdesktop</a></p></li>
<li><p><a class="reference external" href="http://www.realvnc.com/">RealVNC</a></p></li>
<li><p><a class="reference external" href="http://tigervnc.org">TigerVNC</a></p></li>
<li><p><a class="reference external" href="http://projects.gnome.org/vinagre/">Vinagre</a></p></li>
<li><p><a class="reference external" href="https://www.kde.org/applications/internet/krdc">Krdc</a></p></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="x2go-clients">
<h2>X2Go Clients<a class="headerlink" href="#x2go-clients" title="Permalink to this headline">¶</a></h2>
<p>X2Go clients for various OSes can be downloaded from: <a class="reference external" href="http://wiki.x2go.org/doku.php/download:start">http://wiki.x2go.org/doku.php/download:start</a></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>