Skip to content

recurze/Krivine_SECD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Krivine-SECD

  1. This project contains abstract machines, krivine and SECD, implemented in Ocaml.

  2. Krivine implements Call-by-name semantics. We consider Closures as a pair of a Table and expression, where Table is a partial function from variables to Answers(includes value Closures)

  3. SECD implements Call-by-value semantics. We consider value closures in the set of answers.

Motivation

Was created as one of the assignments in one Programming Languages course.

How to run?

Fire up an ocaml interpreter:

$ ocaml

Use #use to import code from files:

# #use "filename.ml";;

Form expressions e, following the types declared in types.ml and evaluate using:

# krivine (CLOSURE([], e)) [];;
# secd [] [] (CLOSURE([], e)) [];;

Releases

No releases published

Packages

No packages published

Languages