Thanks to visit codestin.com
Credit goes to github.com

Skip to content

jackfoxy/fsharp-tapl

 
 

Repository files navigation

Types and Programming Languages in F#

Code and Examples from Benjamin Pierce's "Types and Programming Languages".

Overview

"Types and Programming Languages" provides a comprehensive introduction to type systems and programming language theory. The code which accompanies the book is written in OCaml; this repository contains an F# port of that code, using FsLexYacc for lexing and parsing.

NOTE: The ported F# code is not a fresh implementation -- it is the original OCaml code with some trivial modifications which allow it to compile with F#. The output of each of the F# projects has been verified to match the output of the original OCaml programs.

This is a fork of Jack Pappas' original F# port with the following enhancements:

  • Uses the latest nuget release of FsLexYacc
  • Isolated Ocaml compatability dependencies to pretty printing
  • Linted code and more idiomatic F# for most of the code that is not specific to tapl algorithms
  • Enhanced command line, including optional output to file and input from the command line
  • A suite of regression tests.

Prerequisites

  • F# compiler

    • Windows
      • Visual Studio 2013 or later (requires F# 4.0)
    • Mac OS X / FreeBSD / Linux (this fork not yet tested on non-Windows)
  • Run the build.cmd to build all the projects and run tests.

    On a related note, Jack Pappas is working on replacements for fslex and fsyacc (see th `facio`_ repository).

About

Accompanying code for "Types and Programming Languages", ported to F#

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • F# 95.9%
  • Forth 2.1%
  • Fortran 1.8%
  • Other 0.2%