![Page 1: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/1.jpg)
maze
Alexander Brown (aab2212)Alexander Freemantle (asf2161)Michelle Navarro (mn2614)Lindsay Schiminske (ls3245)
![Page 2: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/2.jpg)
Introduction
![Page 3: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/3.jpg)
What is maze?
![Page 4: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/4.jpg)
Language Evolution
Proposal:
Game design language
Plan:
Object-Oriented Java-like language
Actual:
Java-like imperative language
![Page 5: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/5.jpg)
An Imperative Language with Java-like syntax
![Page 6: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/6.jpg)
Tools
![Page 7: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/7.jpg)
![Page 8: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/8.jpg)
MAZE Architecture
![Page 9: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/9.jpg)
program.maze
Scanner Parser AST Analyzer Codegen
LLVM IR
![Page 10: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/10.jpg)
Syntax
![Page 11: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/11.jpg)
BasicsMethods
Binary OpsPrimitives
Unary OpsComments
![Page 12: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/12.jpg)
StatementsIf / else While Loop
Return
![Page 13: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/13.jpg)
Testing
![Page 14: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/14.jpg)
Menhir Pretty-PrinterMade sure input tokens = output tokens$ menhir --interpret --interpret-show-cst parser.mly
--explain
![Page 15: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/15.jpg)
● Add feature → Add test● Run ./testall.sh● Ensure all tests pass
![Page 16: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/16.jpg)
Tests that should pass: Tests that should fail (with appropriate error message)
![Page 17: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/17.jpg)
GCD
Passing print an identifier:
![Page 18: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/18.jpg)
DEMO
![Page 19: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/19.jpg)
Fibonacci is cool
![Page 20: Lindsay Schiminske (ls3245) Michelle Navarro …str .cmxa maze . ml ocamlftnd ocamlopt -linkpkg -package I Ivm str .cmxa -package Uvm.analysts ast.cmx codegen.cmx parser . cmx scanner](https://reader035.vdocuments.net/reader035/viewer/2022071114/5fead263757efb05e400eaf0/html5/thumbnails/20.jpg)