Skip to content

Compiler prototype for infer types and effects in a functional language with a syntax of imperative languages.

License

Notifications You must be signed in to change notification settings

leorigon/TE-Infer-SSA

Repository files navigation

This is prototype for project master's degree in computer application on UDESC.

Abstract:

The static single assignment form which is used by compilers of imperative programming languages is, as noted by Kelsey, 
a functional language. Local mutability is removed by renaming variables, and control flow is split into basic blocks, which are, 
in turn, a set of mutually recursive lambda abstractions. This suggests that such constructs could be used as the 
foundation for a functional language.

In this paper, we present the core of a purely functional programming language with an 
imperative look-and-feel and with a type and effect system based on that of Leijen's Koka. 
We also discuss our initial results with a prototype implementation and a type and effect inference algorithm.

requirements:

  • stack
  • some text editor
  • graphviz to show the CFG in visual mode (.dot files)

to run:

  • edit test.lc file
  • on terminal: stack build and stack exec lambdaC

About

Compiler prototype for infer types and effects in a functional language with a syntax of imperative languages.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published