The project of the Computer Language Processing (CLP) course given in EPFL. It implements a compiler and an interpreter for Amy Language that is a subset of Scala with limited functionality.
- Amy Language specifications can be found in the file
amy-spec.pdf
-
Lexer
-
Parser
-
Name Analyzer
-
Type Checker
-
Code Generation
-
Clone this repository.
-
Install Scala and Node js.
-
Place your Amy program inside the examples folder.
-
Open a command line, navigate here and open sbt by typing
sbt
. -
To generate web assembly code type
run <dependencies> examples/<your program with .scala extension>
inside sbt, then typeexit
to exit sbt. -
Type
node wasmout/<your program with .js extension>
$ sbt
sbt:amyc> run library/Std.scala examples/Fibonacci.scala
[info] Running amyc.Main library/Std.scala examples/Fibonacci.scala
[ Info ] Grammar is in LL1
[success] Total time: 1 s, completed Dec 21, 2018 7:05:05 PM
sbt:amyc> exit
$ node wasmout/Fibonacci.js
This program computes the nth fibonacci number recursively.
Enter the value of n:
10
The value of nth fibonacci number is: 55