Skip to content

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

License

Notifications You must be signed in to change notification settings

jack-pappas/fsharp-tapl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

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.

Prerequisites

  • F# compiler

    • Windows
      • Visual Studio 2010 or 2012
    • Mac OS X / FreeBSD / Linux
  • NuGet is used to manage external packages. The easiest way to install NuGet is by downloading it (for free) from the Visual Studio Extension Gallery. If you do not have NuGet, or are running a version prior to 2.5, you must install it (or upgrade) before you will be able to build the projects.

    The solution uses the Package Restore feature of NuGet to automatically download any missing packages when the project is built. This requires that you have the Allow NuGet to download missing packages during build setting enabled; in Visual Studio, you can find the setting under Options -> Package Manager -> General.

    Once NuGet is installed and configured, you should be able to build the solution.

  • F# PowerPack 2.0 (GitHub)

    The F# PowerPack 2.0 is required (for now) because the projects use fslex and fsyacc. If you're running Windows, you should install the PowerPack from the installer on CodePlex (link above); otherwise, build and install the sources from the GitHub repository.

    On a related note, I'm working on replacements for fslex and fsyacc (see my fsharp-tools repository); they're not quite ready to use yet, but once they are I'll modify the TAPL projects to use my replacements (fsharplex and fsharpyacc) instead.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published