-
Notifications
You must be signed in to change notification settings - Fork 0
Dahbani1/Compilation-project
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Repository files navigation
AUTHORS ------- - DAHBANI Mohammed - EZZAKRI Anas =============== Description of the project -------------------------- This project implements a working Expr compiler and a Pfx virtual machine in OCaml. The work progresses incrementally, with questions guiding the development of both the compiler and virtual machine. =============== Sources ------- Git repository: https://github.com/Dahbani1/Compilation-project A pdf containing answers to the non-code-related questions. =============== How toβ¦ ------- β¦retrieve the sources? git clone https://redmine-df.telecom-bretagne.eu/git/PROJECTNAME β¦compile? dune β¦ β¦execute and test? dune utop and then use the libraries (from project root) dune exec expr/main.exe -- expr/basic/tests/an_example.expr dune exec ./pfxVM.exe -- TESTFILE.pfx -a 12 -a 52 =============== Structure of the project ------------------------ The project is organized as following: project βββ README βββ dune-project βββ expr: the expr compiler β βββ README β βββ basic β β βββ ast.ml β β βββ ast.mli β β βββ dune β β βββ eval.ml β β βββ eval.mli β β βββ lexer.mll β β βββ parser.mly β β βββ tests: for tests β β β βββ an_example.expr β β βββ toPfx.ml <- To edit β β βββ toPfx.mli β βββ common β β βββ binOp.ml β β βββ binOp.mli β β βββ dune β βββ compiler.ml: main file for the expr compiler β βββ dune β βββ fun: the expr parser for section 7 β β βββ ast.ml β β βββ ast.mli β β βββ lexer.mll β β βββ parser.mly β βββ main.ml βββ pfx: the pfx VM β βββ basic β β βββ ast.ml β β βββ ast.mli β β βββ dune β β βββ eval.ml β β βββ eval.mli β β βββ lexer.mll β β βββ parser.mly β β βββ tests: for tests β β βββ ok_prog.pfx β βββ pfxVM.ml: main file for the pfx VM βββ utils βββ dune βββ location.ml: module offering a data type for a location in a file βββ location.mli =============== Progress -------- - All of the exercices up to 8 were done successfully (inclusing compilation and tests) - Exercices 9 to 12 were done but without being tested: we couldn't figure out how to run tests for the lambda expressions (i.e ((Ξ»x.Ξ»y.(x β y)) 12) 8 ...) =============== Know bugs and issues -------------------- - We were not able to run tests for the lamnda expressions (i.e ((Ξ»x.Ξ»y.(x β y)) 12) 8 ...) in exercies 9 to 11 =============== Helpful resources ----------------- - Most of the time, we used stackoverflow to look for solution of some n=bugs we encountered. - Compilation - Notes provided on Moodle were really helpful. =============== Difficulties ------------ - Figuring out how to translate coding instructions to a new programming language we are not used to - Using new tools and new commands to compile the script and make it work - Code in a new environment and a new paradigm - Testing the code using utop, but we figure it out in the end. - Testing in section 10.
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published