From 2e9f2451a229f478ed30feda8bc03088e29cbb6f Mon Sep 17 00:00:00 2001
From: Rodrigo Raya <rodrigo.raya@epfl.ch>
Date: Thu, 23 Sep 2021 05:48:06 +0000
Subject: [PATCH] =?UTF-8?q?Update=20labs=5F01.md.=20No=C3=A9=20fixed=20som?=
 =?UTF-8?q?e=20errors.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 labs/labs_01.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/labs/labs_01.md b/labs/labs_01.md
index 84d661b..babdec8 100644
--- a/labs/labs_01.md
+++ b/labs/labs_01.md
@@ -3,7 +3,7 @@ Below you will find the instructions for the first lab assignment in which you w
 
 # Part 1: Your first Amy programs
 
-Write two example Amy programs each and make sure you can compile them using the [Amy Reference Compiler](https://gitlab.epfl.ch/lara/cs320/-/blob/main/labs/amy_reference_compiler.md). Put them under ''/examples''. Please be creative when writing your programs: they should be nontrivial and not reproduce the functionality of the examples in the ''/library'' and ''/examples'' directories of the repository. Of course you are welcome to browse these directories for inspiration.
+Write two example Amy programs each and make sure you can compile them using the [Amy Reference Compiler](https://gitlab.epfl.ch/lara/cs320/-/blob/main/labs/amy_reference_compiler.md). Put them under /examples. Please be creative when writing your programs: they should be nontrivial and not reproduce the functionality of the examples in the ''/library'' and ''/examples'' directories of the repository. Of course you are welcome to browse these directories for inspiration.
 
 Remember that you will use these programs in the remaining of the semester to test your compiler, so don't make them too trivial! Try to test many features of the language.
 
@@ -19,7 +19,7 @@ The main task of the first lab is to write an interpreter for Amy.
 
 ## Interpreters 
 
-The way to execute programs you have mostly seen so far is compilation to some kind of low-level code (bytecode for a virtual machine such as Java's; native binary code in case of languages such as C). An alternative way to execute programs is interpretation. According to Wikipedia, "an interpreter is a computer program that directly executes, i.e. performs, instructions written in a programming or scripting language, without previously compiling them into a machine language program". In other words, your interpreter is supposed to directly look at the code and //interpret// its meaning. For example, when encountering a call to the 'printString' function, your interpreter should print its argument on the standard output.
+The way to execute programs you have mostly seen so far is compilation to some kind of low-level code (bytecode for a virtual machine such as Java's; native binary code in case of languages such as C). An alternative way to execute programs is interpretation. According to Wikipedia, "an interpreter is a computer program that directly executes, i.e. performs, instructions written in a programming or scripting language, without previously compiling them into a machine language program". In other words, your interpreter is supposed to directly look at the code and *interpret* its meaning. For example, when encountering a call to the 'printString' function, your interpreter should print its argument on the standard output.
 
 ## The general structure of the Interpreter 
 
@@ -40,7 +40,7 @@ So what is this AST we've mentioned? For the computer to "understand" the meanin
 
 In Scala, we represent the AST as a tree-form object. The tree has different types of nodes, each one representing a different programming structure. The types of nodes are of course represented as different classes, which all inherit from a class called Tree. Conveniently enough, the classes correspond pretty much one-to-one to the rules of the BNF grammar given in the language specification. E.g. in the language spec we read that a module looks as follows:
 
-ModuleDef ::= **program** Identifier **extends** **App** **{** ( ClassOrFunDef )* Expr? **}**
+Module ::= **object** Id Definition* Expr? **end** Id
 
 and indeed in the implementation we find a class 
 
-- 
GitLab