@boazbk boazbk released this Feb 11, 2019 · 3 commits to master since this release

This version is less "idiosyncratic" -

  • We now use NAND-CIRC, NAND-TM, and NAND-RAM for the programming-language analogs of Boolean circuits, Turing machines, and RAM machines respectively.

  • The standard models are introduced before their programming language analogs and emphasized more.

  • Also started adding references and more exercises - will keep working on this.

Assets 3
Feb 11, 2019
Feb 11, 2019

@boazbk boazbk released this Jan 21, 2019 · 21 commits to master since this release

This is the version of the book as per December 2018. I am releasing it here before making some changes to the notation.

In this version the computational models are:

  • NAND: Straightline programs with NAND operation (equivalent to Boolean circuits with NAND gates)

  • NAND++: Programs with loops (equivalent to Turing machines, in this version, "vanilla" NAND++ corresponds to oblivious Turing machines)

  • NAND<<: Programs with random access memory, equivalent to RAM machines.

The upcoming versions (0.5.x and onwards) will be less "idiosyncractic" in the sense that Boolean circuits, Turing machines, and RAM machines are introduced before their programming-language analogs. The names of the programming languages will also change to emphasize the relation with the more standard models, and so we will have

  • NAND-CIRC: Straightline programs with NAND operation (equivalent to Boolean circuits with NAND gates)

  • NAND-TM: Programs with loops equivalent to standard single tape Turing machines.

  • NAND-RAM: Programs with random access memory, equivalent to RAM machines.

Assets 3