Index

A note on the digital index

A link in an index entry is displayed as the section title in which that entry appears. Because some sections have multiple index markers, it is not unusual for an entry to have several links to the same section. Clicking on any link will take you directly to the place in the text in which the marker appears.

Symbols

* operator, Variadic Methods, Syntax
. (dot), Data Structures, Objects and Methods
: (colon), Basic Data
=> prompt, Interactive Ruby Shell
>> prompt, Interactive Ruby Shell
[ ] (square brackets), Data Structures, Procs
{ } (curly brackets), Data Structures, Blocks

A

absolute value, Abstraction: Multiplying Signs
abstract interpretation
about, Abstract Interpretation
adding signs, Safety and Approximation: Adding SignsSafety and Approximation: Adding Signs
applications, Applications
multiplying signs, Abstraction: Multiplying SignsAbstraction: Multiplying Signs
route planning, Route Planning
abstract machines, Operational Semantics
abstract syntax tree (AST)
about, Syntax
building by hand, Expressions
reduction relation, Small-Step Semantics
accept states, Output, Nondeterminism, Semantics
Adams, Douglas, Universal Systems Can Loop Forever
algorithms, Universal Systems Can Perform AlgorithmsUniversal Systems Can Perform Algorithms
Analytical Engine, Finding Meaning
applications
abstract interpretation, Applications
big-step semantics, Applications
denotational semantics, Applications
small-step semantics, Applications
arguments
blocks of code and, Blocks
messages and, Objects and Methods
passing to methods, Expressions
procs and, Arguments
variable number of, Variadic Methods
Array class
#<< method, Alternatives
about, Enumerable
#push method, Strings
assignment statements, Statements
assignments
local variables and, Local Variables and Assignment
parallel, Local Variables and Assignment, Variadic Methods
AST (abstract syntax tree)
about, Syntax
building by hand, Expressions
reduction relation, Small-Step Semantics
Astrée static analyzer, Applications
axiomatic semantics, Alternatives

B

Babbage, Charles, Finding Meaning
balanced brackets example, Just Add PowerJust Add Power
big-step semantics
about, Big-Step Semantics
applications, Applications
comparing styles, Statements
expressions, ExpressionsExpressions
statements, StatementsStatements
Bignum object, Abstraction: Multiplying Signs
binary representation, Encoding
blocks of code
about, Blocks
arguments and, Blocks
Booleans in FizzBuzz example, BooleansBooleans
Brzozowski’s algorithm, Equivalence

C

call stacks, Statements, Just Add Power
case expression, Control Flow, Expressions
CFG (context-free grammar), Decidability
Chapman, Paul, Conway’s Game of Life
Chomsky normal form, Decidability
Church encoding, Numbers
Church numerals, Numbers
Church, Alonzo, Numbers
Church–Turing thesis, Universal Systems Can Perform Algorithms, Decidability
classes
constants and, Defining Constants
inheritance and, Classes and Modules
instances and, Classes and Modules, Expressions
methods and, Classes and Modules, Classes and Modules, Monkey Patching
colon (:), Basic Data
combinators (SKI combinator calculus), SKI Combinator CalculusIota
comma-separated values, Data Structures
compilers, denotational semantics and, Applications
computational irreducibility, Depressing Implications
computing machines
about, The Simplest Computers
abstract, Operational Semantics
computing power, Just Add PowerJust Add Power, How Much Power?, Maximum PowerMultidimensional Tape
deterministic finite automata, Deterministic Finite AutomataSimulation
deterministic pushdown automaton, Deterministic Pushdown AutomataSimulation
equivalence, EquivalenceEquivalence
general-purpose, General-Purpose MachinesSimulation, Universal Systems Can Loop Forever
nondeterministic finite automata, Nondeterministic Finite AutomataFree Moves
nondeterministic pushdown automaton, Nondeterministic Pushdown AutomataNonequivalence
nondeterministic Turing machines, Nondeterministic Turing Machines
parsing with PDA, Parsing with Pushdown AutomataPracticalities
regular expressions, Regular ExpressionsParsing
virtual, Expressions
computing power (see power (computing))
concatenating
regular expressions, Semantics
strings, Expressions, Syntax
conditional statements
about, Statements
Booleans and, BooleansBooleans
constants
about, Defining Constants
classes and, Defining Constants
defining, Defining Constants
lambda calculus and, Impersonating the Lambda Calculus
removing, Removing Constants
context-free grammar (CFG), Decidability
control flow in Ruby, Control Flow
converting
NFA to DFA, EquivalenceEquivalence
NFA to regular expressions, Just Add Power
Conway, John, Conway’s Game of LifeConway’s Game of Life
Cook, Matthew, Tag Systems
correctness, small-step semantics, Correctness
curly brackets { }, Data Structures, Blocks
current object, Objects and Methods
cyclic tag systems, Cyclic Tag SystemsCyclic Tag Systems

D

data structures
comma-separated values, Data Structures
hashes, Data Structures
pairs, Pairs
range of values, Data Structures
square brackets for, Data Structures
decision problems, DecidabilityDecidability
def keyword, Objects and Methods
denotational semantics
about, Denotational Semantics
applications, Applications
comparing styles, Statements
compilers and, Applications
expressions, ExpressionsExpressions
statements, StatementsStatements
determinism
deterministic finite automata, Determinism
deterministic pushdown automaton, Determinism
deterministic Turing machines, Determinism
deterministic finite automata (see DFA)
deterministic pushdown automaton (see DPDA)
deterministic Turing machines (see DTM)
DFA (deterministic finite automata)
about, Deterministic Finite Automata
converting from NFA, EquivalenceEquivalence
determinism, Determinism
input, States, Rules, and Input
mimization, Equivalence
output, OutputOutput
processor, Output
rules, States, Rules, and Input
simulation, Simulation
states, States, Rules, and Input
storage, Output
Turing machines and, General-Purpose Machines
domain theory, Formality
dot (.), Data Structures, Objects and Methods
DPDA (deterministic pushdown automaton)
about, Storage
determinism, Determinism
rules, Rules
simulation, SimulationSimulation
storage, Storage
DTM (deterministic Turing machines)
about, Deterministic Turing Machines
determinism, Determinism
rules, Rules
storage, StorageStorage
dynamic semantics, Correctness, Static Semantics

E

encoding
about, Encoding
Church, Numbers
Enumerable module
about, Enumerable
#detect method, Simulation, Infinite streams
#first method, Infinite streams
#flat_map method, Enumerable
#inject method, Lists
#map method, Infinite streams
#select method, Infinite streams
#take method, Infinite streams
Enumerator class, Infinite streams
Enumerator::Lazy class, Infinite streams
equality method (#==), Struct
equality, extensional, Equality
Euclid’s algorithm, Universal Systems Can Perform AlgorithmsUniversal Systems Can Perform Algorithms
expressions
about, Expressions
big-step semantics, ExpressionsExpressions
denotational semantics, ExpressionsExpressions
reducing, Reducing expressionsReducing expressions, SKI Combinator Calculus
regular, Regular ExpressionsParsing
replacing variables in, Replacing variablesReplacing variables
SKI combinator calculus and, SKI Combinator Calculus
small-step semantics, ExpressionsExpressions
extensional equality, Equality
external memory (see TM)

F

Faber and Faber publisher, Too good to be true
finite automata
deterministic, Deterministic Finite AutomataSimulation
nondeterministic, Nondeterministic Finite AutomataFree Moves
regular expressions, Regular ExpressionsParsing
structural overview, States, Rules, and Input
finite state machines (see DFA)
fixed-point semantics (see denotational semantics)
FizzBuzz program
about, The Problem
avoiding arbitrary recursion, Avoiding arbitrary recursionAvoiding arbitrary recursion
implementing Booleans, BooleansBooleans
implementing lambda calculus, Implementing the Lambda CalculusParsing
implementing lists, ListsLists
implementing numbers, NumbersNumbers
implementing numeric operations, Numeric OperationsNumeric Operations
implementing pairs, Pairs
implementing predicates, Predicates
implementing strings, Strings
infinite streams, Infinite streamsInfinite streams
problem, The Problem
solution, The SolutionThe Solution
formal semantics
about, The Meaning of “Meaning”, Formal Semantics in Practice
finding meaning, Finding Meaning
formality, Formality
free moves feature, Free MovesFree Moves
function calls, Calling functions

G

Game of Life, Conway’s Game of LifeConway’s Game of Life
GCC compiler, Coping with Uncomputability
general-purpose machines
about, General-Purpose MachinesGeneral-Purpose Machines
encoding, Encoding
simulation, Simulation
universality of, Universal Systems Can Loop Forever
generalized nondeterministic finite automaton (GNFA), Just Add Power
Ghory, Imran, The Problem
GNFA (generalized nondeterministic finite automaton), Just Add Power
Gödel’s first incompleteness theorem, Why Does This Happen?
Goldbach conjecture, Too good to be true
Goldbach, Christian, Too good to be true
greatest common divisor, Universal Systems Can Perform Algorithms
guillemets, Expressions

H

halting problem, The Halting ProblemFundamentally impossible
Hash class
about, Enumerable
#merge method, Statements
hashes, Data Structures
Hofstadter, Douglas, Programs Can Refer to Themselves

I

if expression, Control Flow, Statements
inference rules
formal semantics in practice, Formality
Simple example, Small-Step Semantics
infinite loops, Simulation, Numeric Operations, Universal Systems Can Loop ForeverUniversal Systems Can Loop Forever
infinite streams, Infinite streamsInfinite streams
inheritance, Classes and Modules
input
deterministic finite automata, States, Rules, and Input
nondeterministic finite automata, Nondeterminism
inspecting objects, Inspecting Objects
instances
classes and, Classes and Modules, Expressions
methods and, Classes and Modules
virtual machines, Expressions
Integer#gcd method, Universal Systems Can Perform Algorithms
Interactive Ruby Shell (IRB), Interactive Ruby Shell
interpreters, operational semantics and, Applications, Finding Meaning
IRB (Interactive Ruby Shell), Interactive Ruby Shell
ISO/IEC 30170 standard, The Meaning of “Meaning”

K

Kernel module
#eval method, Expressions
#puts method, Code Is Data
key-value pairs, Data Structures

L

lambda calculus
about, Programming with Nothing
avoiding arbitrary recursion, Avoiding arbitrary recursionAvoiding arbitrary recursion
constants and, Impersonating the Lambda Calculus
FizzBuzz problem, The Problem
FizzBuzz solution, The SolutionThe Solution
impersonating, Impersonating the Lambda Calculus
implementing, Implementing the Lambda CalculusParsing
implementing Booleans, BooleansBooleans
implementing lists, ListsLists
implementing numbers, NumbersNumbers
implementing numeric operations, Numeric OperationsNumeric Operations
implementing pairs, Pairs
implementing predicates, Predicates
implementing strings, Strings
infinite streams, Infinite streamsInfinite streams
parsing, ParsingParsing
procs and, Working with ProcsSyntax
semantics, SemanticsReducing expressions
SKI combinator calculus and, SKI Combinator CalculusIota
syntax, SyntaxSyntax
Turing machines and, Lambda CalculusLambda Calculus
Lee, Bruce, The Meaning of Programs
lexical analysis
about, Parsing with Pushdown Automata
parsing with PDA, Lexical AnalysisLexical Analysis
Lisp programming languages, Code Is Data
lists
in FizzBuzz example, ListsLists
infinite streams, Infinite streamsInfinite streams
local variables, Local Variables and Assignment
lookahead technique, Practicalities
looping constructs
big-step semantics, Statements, Statements
denotational semantics, Statements, Statements
infinite loops, Simulation, Numeric Operations, Universal Systems Can Loop ForeverUniversal Systems Can Loop Forever
small-step semantics, Statements, Statements
Lovecraft, H. P., Impossible Programs

M

machines (see computing machines)
main object, Objects and Methods
mathematical semantics (see denotational semantics)
Matz’s Ruby Interpreter (MRI), The Meaning of “Meaning”, Statements
meaning
finding, Finding Meaning
meaning of, The Meaning of “Meaning”
&:message shorthand, Enumerable
messages
arguments and, Objects and Methods
components of, Objects and Methods
methods and, Objects and Methods
objects and, Objects and Methods
Ruby shorthand, Enumerable
metalanguage, Small-Step Semantics, Expressions
methods
classes and, Classes and Modules, Classes and Modules, Monkey Patching
defining, Objects and Methods
inheritance and, Classes and Modules
instances and, Classes and Modules
messages and, Objects and Methods
modules and, Classes and Modules, Monkey Patching
objects and, Objects and Methods
passing arguments to, Expressions
private, Removing Constants
return constraints, Statements
variadic, Variadic Methods
ML programming language, Applications
modules
constants and, Defining Constants, Defining Constants
methods and, Classes and Modules, Monkey Patching
modulo operator, Numeric Operations
monkey patching, Monkey Patching
MRI (Matz’s Ruby Interpreter), The Meaning of “Meaning”, Statements
mruby project, The Meaning of “Meaning”

N

natural semantics (see big-step semantics)
nested strings, Just Add Power
nesting levels in balanced brackets example, Just Add PowerJust Add Power
NFA (nondeterministic finite automata)
about, Nondeterministic Finite Automata
balanced bracket example, Just Add PowerJust Add Power
converting to DFA, EquivalenceEquivalence
converting to regular expressions, Just Add Power
free moves feature, Free MovesFree Moves
input, Nondeterminism
nondeterminism, NondeterminismNondeterminism
regular expressions and, SemanticsSemantics
rules, Nondeterminism
simulation, Nondeterminism
states, Nondeterminism, Semantics
storage, Nondeterminism
nondeterminism, NondeterminismNondeterminism
nondeterministic finite automata (see NFA)
nondeterministic pushdown automaton (see NPDA)
nondeterministic Turing machines, Nondeterministic Turing Machines
nonequivalence, NPDA and, Nonequivalence
NPDA (nondeterministic pushdown automaton)
about, Nondeterministic Pushdown AutomataNondeterministic Pushdown Automata
nonequivalence, Nonequivalence
palindrome recognition example, Nondeterministic Pushdown AutomataNondeterministic Pushdown Automata
simulation, SimulationSimulation
numbers
absolute values, Abstraction: Multiplying Signs
in FizzBuzz example, NumbersNumbers
numeric operations in FizzBuzz example, Numeric OperationsNumeric Operations

O

Object object
#inspect method, Inspecting Objects
new method, Objects and Methods
send method, Removing Constants
#to_s method, String Interpolation
objects
current object, Objects and Methods
inspecting, Inspecting Objects
messages and, Objects and Methods
methods and, Objects and Methods
string interpolation, String Interpolation
values and, Objects and Methods
OCaml programming language, Applications, Applications
operational semantics
about, Operational Semantics
big-step semantics, Big-Step SemanticsApplications, Statements
interpreters and, Applications, Finding Meaning
Simple programming language example, Expressions
small-step semantics, Small-Step SemanticsApplications, Statements
operator precedence, Expressions
output, deterministic finite automata, OutputOutput

P

pairs in FizzBuzz example, Pairs
palindrome recognition example, Nondeterministic Pushdown AutomataNondeterministic Pushdown Automata
parallel assignment, Local Variables and Assignment, Variadic Methods
parsers and parsing process
about, Syntax, Parsing with Pushdown Automata
implementing, Implementing ParsersImplementing Parsers
lambda calculus, ParsingParsing
lexical analysis, Lexical AnalysisLexical Analysis
lookahead technique, Practicalities
regular expressions, ParsingParsing
syntactic analysis, Syntactic AnalysisSyntactic Analysis
syntax and, Syntax
parsing expression grammar (PEG), Implementing Parsers
partial programming languages, Universal Systems Can Loop Forever
partial recursive functions, Partial Recursive FunctionsPartial Recursive Functions
PDA (pushdown automaton)
about, Storage
deterministic, Deterministic Pushdown AutomataSimulation
nondeterministic, Nondeterministic Pushdown AutomataNonequivalence
parsing with, Parsing with Pushdown AutomataPracticalities
PEG (parsing expression grammar), Implementing Parsers
PLT Redex programming language, Applications
power (computing)
about, Just Add PowerJust Add Power, How Much Power?
deterministic pushdown automata, Deterministic Pushdown AutomataSimulation
nondeterministic pushdown automata, Nondeterministic Pushdown AutomataNonequivalence
parsing with PDA, Parsing with Pushdown AutomataPracticalities
Turing machines, Maximum PowerMultidimensional Tape
predicates in FizzBuzz example, Predicates
primitive recursive functions, Partial Recursive Functions
printing
procs and, The Problem
strings, Printing Strings
private methods, Removing Constants
procs, Working with Procs
(see also FizzBuzz program)
about, Procs, Working with Procs
arguments and, Arguments
calling, Procs
extensional equality, Equality
implementing numbers, NumbersNumbers
lambda calculus and, Working with Procs
printing and, The Problem
reducing, Applications
syntax for, Syntax
programming languages
about, The Meaning of Programs
abstract machines and, Operational Semantics
denotational semantics, Denotational SemanticsApplications
dynamic semantics, Correctness, Static Semantics
essentials for specifying, The Meaning of “Meaning”
formal semantics, Formal Semantics in PracticeAlternatives
meaning of, The Meaning of “Meaning”
metalanguage and, Expressions
operational semantics, Operational SemanticsApplications
parsing with PDA, Parsing with Pushdown Automata
partial, Universal Systems Can Loop Forever
semantics of, The Meaning of “Meaning”
syntax of, The Meaning of “Meaning”, Syntax
total, Universal Systems Can Loop Forever, Depressing Implications
programs
about, The Meaning of Programs, Syntax
abstract machines and, Operational Semantics
denotational semantics, Denotational SemanticsApplications
formal semantics, Formal Semantics in PracticeAlternatives
meaning of, The Meaning of “Meaning”
operational semantics, Operational SemanticsApplications
parser, Syntax, Implementing ParsersImplementing Parsers
predicting behavior of, Coping with Uncomputability, Programming in Toyland
self-referential, Programs Can Refer to ThemselvesPrograms Can Refer to Themselves, Why Does This Happen?
standing in for Turing machines, Programs Can Stand In for Turing Machines
sufficiently powerful, Programming in Toyland
syntax and, Syntax
unreachable code, Coping with Uncomputability
pushdown automaton (see PDA)
#puts method, Printing Strings

R

Range class, Enumerable
range of values, Data Structures
recursive code
avoiding arbitrary recursion, Avoiding arbitrary recursionAvoiding arbitrary recursion
infinite loops, Numeric Operations
partial recursive functions, Partial Recursive FunctionsPartial Recursive Functions
stack overflow, Statements
reduction contexts, Applications
reduction relation, Small-Step Semantics
reduction semantics, Applications
reductions, small-step
about, Small-Step Semantics
applications, Applications
expressions, ExpressionsExpressions
statements, StatementsStatements
Regexp class, Just Add Power
regular expressions
about, Regular Expressions
concatenating, Semantics
converting NFA to, Just Add Power
nested strings and, Just Add Power
parsing, ParsingParsing
semantics, SemanticsSemantics
syntax, SyntaxSyntax
regular languages, Nondeterminism
relational semantics (see big-step semantics)
remove_constant message, Removing Constants
Rendell, Paul, Conway’s Game of Life
Rice’s theorem
about, Other Undecidable Problems
abstract interpretation and, Safety and Approximation: Adding Signs, Applications
implications of, Depressing Implications
predicting program behavior, Programming in Toyland
Ruby programming language
blocks of code, Blocks
classes and modules, Classes and Modules
control flow, Control Flow
defining constants, Defining Constants
Enumerable module, Enumerable
inspecting objects, Inspecting Objects
Interactive Ruby Shell, Interactive Ruby Shell
local variables and assignment, Local Variables and Assignment
monkey patching, Monkey Patching
objects and methods, Objects and Methods
printing strings, Printing Strings
specification by implementation, The Meaning of “Meaning”
string interpolation, String Interpolation
Struct class, Struct
value types supported, ValuesProcs
variadic methods, Variadic Methods
rule 110, Rule 110
rulebooks
cyclic tag system and, Cyclic Tag Systems
deterministic finite automata, Simulation
deterministic pushdown automata, Simulation
deterministic Turing machines, Simulation
nondeterministic finite automata, Nondeterminism
Turing machines, Subroutines, General-Purpose Machines
rules
deterministic finite automata, States, Rules, and Input
deterministic pushdown automaton, Rules
deterministic Turing machines, Rules
nondeterministic finite automata, Nondeterminism
rulebooks and, Simulation

S

s-expressions, Code Is Data
Sagan, Carl, Programming with Nothing
Scheme programming language, Applications
self-referential programs, Programs Can Refer to ThemselvesPrograms Can Refer to Themselves, Why Does This Happen?
semantics
about, The Meaning of “Meaning”
axiomatic, Alternatives
comparing styles, Statements
denotational, Denotational SemanticsApplications
dynamic, Correctness, Static Semantics
formal, The Meaning of “Meaning”, Formal Semantics in PracticeAlternatives
lambda calculus, SemanticsReducing expressions
operational, Operational SemanticsApplications, Expressions, Statements
reduction, Applications
regular expressions, SemanticsSemantics
static, Correctness, Static SemanticsBenefits and Limitations
sequence statements
big-step semantics, Statements
small-step semantics, Statements
Set class
#& method, Nondeterminism
#+ method, Nondeterminism
about, Nondeterminism
#subset? method, Nondeterminism
Simple programming language example
about, Small-Step Semantics, Programming with Nothing
big-step semantics, Big-Step SemanticsApplications
denotational semantics, Denotational SemanticsApplications
implementing parsers, Implementing ParsersImplementing Parsers
small-step semantics, Small-Step SemanticsApplications
simulation
deterministic finite automata, Simulation
deterministic pushdown automaton, SimulationSimulation
general-purpose machines, Simulation
nondeterministic finite automata, Nondeterminism
nondeterministic pushdown automaton, SimulationSimulation
Turing machines, Simulation
universal Turing machines, Simulation
SKI combinator calculus, SKI Combinator CalculusIota
small-step semantics
about, Small-Step Semantics
applications, Applications
comparing styles, Statements
correctness, Correctness
expressions, ExpressionsExpressions
statements, StatementsStatements
Smalltalk programming language, Objects and Methods
Smith, Alex, Wolfram’s 2,3 Turing Machine
square brackets [ ], Data Structures, Procs
stack overflow, Statements
start state, States, Rules, and Input, Nondeterminism
statements
about, Statements
assignment, Statements
big-step semantics, StatementsStatements
conditional, Statements, BooleansBooleans
denotational semantics, StatementsStatements
do-nothing, Statements
sequence, Statements, Statements
small-step semantics, StatementsStatements
states
accept, Output, Nondeterminism, Semantics
balanced brackets example, Just Add Power
deterministic finite automata, States, Rules, and Input
Game of Life and, Conway’s Game of Life
implementing, Semantics
nondeterministic finite automata, Nondeterminism, Semantics
start, States, Rules, and Input, Nondeterminism
Turing machines, Internal Storage
static semantics
about, Correctness, Static Semantics
benefits and limitations, Benefits and LimitationsBenefits and Limitations
implementing, ImplementationImplementation
storage
deterministic finite automata, Output
deterministic pushdown automaton, Storage
deterministic Turing machines, StorageStorage
multidimensional tape, Multidimensional Tape
multiple tapes, Multiple Tapes
nondeterministic finite automata, Nondeterminism
Turing machines, Internal StorageInternal Storage
streams
infinite, Infinite streamsInfinite streams
native Ruby, Infinite streams
strings
concatenating, Expressions, Syntax
FizzBuzz example, Strings
interpolating, String Interpolation
nested, Just Add Power
printing, Printing Strings
Struct class
about, Struct
#inspect method, Expressions
new method, Struct
#to_s method, Expressions
structural operational semantics (see small-step semantics)
subroutines, Subroutines
super keyword, Classes and Modules
superclasses, Classes and Modules
symbols
about, Basic Data, Free Moves
hashes and, Data Structures
key-value pairs and, Data Structures
SKI combinator calculus and, SKI Combinator CalculusIota
syntactic analysis
about, Parsing with Pushdown Automata
parsing with PDA, Syntactic AnalysisSyntactic Analysis
syntax
about, The Meaning of “Meaning”, Syntax
lambda calculus, SyntaxSyntax
parsers and, Syntax
procs, Syntax
programs and, Syntax
regular expressions, SyntaxSyntax

T

tag systems
about, Tag SystemsTag Systems
cyclic, Cyclic Tag SystemsCyclic Tag Systems
tail call optimisation, Statements
tape storage
multidimensional tape, Multidimensional Tape
multiple tapes, Multiple Tapes
TM (Turing machines), Encoding
(see also UTM)
about, Programming with Nothing
decidability, DecidabilityDecidability
deterministic, Deterministic Turing MachinesSimulation
deterministic finite automata and, General-Purpose Machines
encoding, Encoding
external memory and, Deterministic Turing Machines
Game of Life, Conway’s Game of LifeConway’s Game of Life
halting problem, The Halting ProblemFundamentally impossible
lambda calculus and, Lambda CalculusLambda Calculus
maximum power, Maximum PowerMultidimensional Tape
multidimensional tape, Multidimensional Tape
multiple tapes, Multiple Tapes
nondeterministic, Nondeterministic Turing Machines
partial recursive functions and, Partial Recursive FunctionsPartial Recursive Functions
programs standing in for, Programs Can Stand In for Turing Machines
rule 110, Rule 110
simulation, Simulation
SKI combinator calculus and, SKI Combinator CalculusIota
storage, Internal StorageInternal Storage
subroutines, Subroutines
tag systems and, Tag SystemsCyclic Tag Systems
Wolfram’s 2,3 Turing machine, Wolfram’s 2,3 Turing Machine
total programming languages, Universal Systems Can Loop Forever, Depressing Implications
transition functions, Free Moves
transition semantics (see small-step semantics)
transitions, Free Moves
Treetop language, Implementing Parsers, ParsingParsing
Turing machines (see TM)
Turing, Alan, The Ultimate Machine, Storage, Rules
Turner, David, Depressing Implications

U

unary representation, Encoding
undecidable problems
about, Decidability
halting problem, The Halting ProblemFundamentally impossible
implications of, Depressing ImplicationsDepressing Implications
toy example, Other Undecidable ProblemsOther Undecidable Problems
universal Turing machines (see UTM)
unreachable code, Coping with Uncomputability
untyped lambda calculus (see lambda calculus)
UTM (universal Turing machines)
about, General-Purpose Machines, Universality Is Everywhere
code is data, Code Is Data
decidability, DecidabilityDecidability
encoding, Encoding
infinite looping, Universal Systems Can Loop ForeverUniversal Systems Can Loop Forever
lambda calculus and, Lambda CalculusLambda Calculus
performing algorithms, Universal Systems Can Perform AlgorithmsUniversal Systems Can Perform Algorithms
programs standing in for, Programs Can Stand In for Turing Machines, Programs Can Stand In for Turing Machines
simulation, Simulation

V

values
about, Values, Small-Step Semantics
absolute, Abstraction: Multiplying Signs
assigning to local variables, Local Variables and Assignment
basic data, Basic Data
comma-separated, Data Structures
data structures, Data Structures
objects and, Objects and Methods
procs, Procs
range of, Data Structures
variables
constants as, Defining Constants
local, Local Variables and Assignment
parallel assignment, Local Variables and Assignment
replacing in expressions, Replacing variablesReplacing variables
variadic methods, Variadic Methods
virtual machines, Expressions

W

W3C, Applications
Wadler, Philip, Applications
while expression, Control Flow
Wolfram, Stephen, Rule 110Wolfram’s 2,3 Turing Machine, Depressing Implications
Wolfram’s 2,3 Turing machine, Wolfram’s 2,3 Turing Machine

X

XML documents, Code Is Data
XQuery specification, Applications
XSLT document-transformation language, Applications, Code Is Data

Y

Y combinator, Numeric Operations
yield keyword, Blocks

Z

Z combinator, Numeric Operations