- Ada, 1.4, 1.5, 1.6, 1.6, 1.6, 9, 14.2
 - Algol, 1.4, 1.4, 1.5, 2.1, 3.2, 3.2, 3.3, 3.3, 3.4, 5.4, 14.2, 14.3
 - APP, 5.3
 - access link, 3.3
 - activation record, see stack frame
 - acyclicity condition, see dependency
 - administrative reduction, 6.5, 6.6
 - algebraic effects, 12.5, 12.7, 13.7
 - algebraic structure, 12.3, 12.4
 - allocation, 3.3, 15.1, 15.2
 - applicative structure, 11.6
 - argument passing, see call by name, call by reference, call by value, macro
 - arrow, 11.6
 - assembler, 1.2, 1.2
 - assembly code, 2.1, 2.1
 - assembly language, 1.2, 3.1
 - assertion, 14.1, 14.2, 14.3, 14.4, 15.1, 15.1
 - assign, 1.3, 3.1
 - assignment, 1.4, 6.2, 6.3, 14.2
 - asymmetric coroutine, 4.3, 4.3, 4.3, 4.3, 14.4
 - atom, 6.5, 6.6
 - autocoder, 1.2
 - axiomatic semantics, see program logic
 
 - Backus-Naur form, 1.4
 - Basic, 9
 - Bourne shell, 1.6, 3.3
 - back edge, 2.5, 2.5
 - backtracking, 7.5, 8.2, 8.3, 8.7, 11.5, 12.1, 12.2, 15.4
 - basic block, 2.3, 2.5
 - begin…end, see block
 - bind, 11.2, 12.1, 12.2, 12.2
 - bisimilarity, 12.2
 - block, 1.4, 1.6, 2.2, 2.4, 3.2, 3.4, 6.4, 14.3, 14.3
 - branch instruction, 1.1, 1.1, 3.1
 - break, 1.6, 2.2, 2.4, 9.1, 14.3, 14.3
 
 - C, 1.4, 1.5, 1.5, 1.6, 1.6, 2.2, 14.1
 - C++, 1.4, 1.5, 1.5, 1.6, 1.6, 3.4, 4.2, 4.2, 9, 9.4
 - C#, 1.4, 1.5
 - CFG, 2.5, 2.5, 2.6, 5.3, 14.2
 - CLU, 4.2, 9, 9.4
 - CPS, 5.4, 6.3, 6.5, 7.1, 7.2, 7.3, 7.4
 - CPS transformation, 6.5, 6.5, 8.4, 8.8, 9.3, 11.1, 13.2, 13.3
- double-barreled, 7.4, 9.3, 10.6, 11.1
 - examples, 6.5, 6.5, 7.1
 - for delimited continuations, 8.8
 - for effect handlers, 10.6
 - one-pass, 6.5
  
 - call, 3.1, 3.2
 - call by name, 3.2, 3.2, 5.2, 5.4, 5.4, 5.5, 6.5, 11.4
 - call by need, 5.4, 5.4, 5.5
 - call by reference, 3.2, 3.2
 - call by value, 3.2, 3.2, 3.2, 5.2, 5.4, 5.4, 5.5, 6.5, 11.4
 - call-with-current-continuation, see callcc
 - call/1cc, see call1cc
 - call/cc, see callcc
 - call1cc, 15.4, 15.4
 - callcc, 8.2, 8.3, 8.3, 8.3, 8.4, 13.2, 13.3, 15.3, 15.3
 - capture, 8.5, 8.6, 8.8
 - case, 1.5, 2.3
 - case analysis, 1.5, 2.3, 12.7
 - catch, 3.4, 9
 - channel, 10.4
 - checked exceptions, 9.4, 9.4, 9.4, 9.4, 9.4, 13.4
 - choice point, 7.5, 8.3, 8.7, 11.3
 - closure, see function closure
 - colon translation, 6.6
 - common, 3.2, 3.3
 - comonad, 11.6
 - computation, 11.2, 15.2
 - computational lambda-calculus, 11.2, 12.1, 12.5, 15.2
 - computed jump, 1.3, 3.1, 3.1, 4.2, 4.2
 - cond, 1.5
 - conditional, 1.3, 1.4, 2.1, 2.1, 2.3, 2.6, 2.6, 5.3, 14.2, 15.2
 - conditional branch instruction, 1.1, 1.2
 - confluence, 5.2
 - consequence rule, 14.2, 15.2, 15.5
 - context, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 8.4, 8.6, 9.2, 10.5, 15.3, 15.3
 - continuation, 6.1, 6.3, 7.1, 7.6, 8.3, 8.4, 8.4, 11.3, 12.2
- delimited, 4.3, 8.5, 8.6, 8.7, 8.8, 10.2, 10.5, 13.2, 13.2, 15.5, 15.5
 - linear, 4.3, 10.2, 15.4
 - one-shot, 4.3, 15.4, 15.4
 - specification of, 15.4, 15.5
  
 - continuation monad, 11.3
 - continuation-passing style, see CPS
 - continue, 1.6, 9.1, 10.2, 14.3, 15.5
 - contravariance, 13.5
 - control inversion, 4.1, 4.4, 8.7, 10.3, 10.3, 12.2, 15.4
 - control operator, 4.2, 8, 8.5, 10, 13.2, 13.2, 13.2
 - control-flow graph, see CFG
 - cooperative threads, see multithreading
 - copy rule, 3.2, 5.2
 - coroutine, 4.3, 14.4, 14.4, 14.4, 15.4
- asymmetric, 4.3, 4.3, 4.3, 4.3, 14.4
 - stackful, 4.2, 4.3
 - stackless, 4.2, 4.3
 - symmetric, 4.3, 4.3, 4.3, 15.4
  
 - counted loop, 1.1, 1.2, 1.3, 1.4, 1.5, 14.2
 - counting solutions, 7.6, 8.7
 - covariance, 13.5
 - cupto, 8.5, 13.2
 - curried function, 5.4
 
 - Duff’s device, 4.2
 - dataflow graph, 5.2
 - deallocation, 2.2, 15.1, 15.2
 - declarative language, 5.1
 - deductive verification, 14.1, 14.2, 14.3, 14.4, 14.4, 15.4
 - deep effect handler, 10.1, 10.5, 12.7, 13.2, 13.7, 15.5
 - delim, 8.5, 8.5, 8.6, 8.8
 - delimited continuation, 4.3, 8.5, 8.6, 8.7, 8.8, 10.2, 10.5, 13.2, 13.2, 15.5, 15.5
 - denotational semantics, 6.2, 6.3, 6.4, 11.1, 12.1, 12.5, 12.7
 - dependency, 5.2, 5.3, 5.3
 - direct style, 4.2, 7.1, 8.3, 8.7
 - discard, 15.4
 - discontinue, 10.2, 15.5
 - distribution monad, 11.3
 - divergence, 5.4, 6.2, 11.2, 11.3, 11.4, 12.2
 - do, 1.3
 - do...while, 1.5, 2.4, 14.2
 - dominance, 2.5, 2.6
 - dominator tree, 2.6
 - double-barreled CPS transformation, 7.4, 9.3, 10.6, 11.1
 - dynamic scope, 3.3
 
 - Eff, 10.2, 10.7
 - Effekt, 9.5, 10.7
 - ERS, 9.3
 - ERS transformation, 9.3, 11.1, 13.2
 - early exit, 1.6, 1.6, 2.2, 2.2, 2.4, 9, 9.1, 9.1, 14.3, 14.3
 - edge, 2.5, 2.5
 - effect, 11.2, 11.4, 12.1, 12.1, 12.2, 12.5
 - effect, 10.1
 - effect handler, 10, 10.1, 10.1, 10.1, 10.2, 12.6, 12.7, 13.7, 15.5, 15.5
- deep, 10.1, 10.5, 12.7, 12.7, 13.2, 13.7, 15.5
 - shallow, 10.1, 10.5, 12.7, 12.7, 13.2, 13.7, 15.5
 - typing of, 13.2, 13.7
  
 - effect protocol, 15.5, 15.5, 15.5
 - effect system, see type and effect system
 - effect types, 13.4, 13.5, 13.6
 - elif, 1.5
 - else, 1.3, 1.4, 1.6, 14.3, see if
 - enumeration, 4.1, 8.7, 10.3, 10.3
 - environment, 3.3, 3.3, 11.3
 - environment monad, 11.3
 - equation, 12.3, 12.4
 - equational theory, 11.2, 12.5
 - error, 2.2, 3.4, 7.4, 9, 9.1, 10.1, 10.1
 - evaluation, 5.2, 5.2
 - evaluation strategy, 5.2, 5.3, 5.4, 6.1, 6.6
 - exception, 3.4, 7.4, 8.2, 8.3, 9, 9.1, 9.1, 10.1, 11.3, 11.4, 13.4, 15.4
 - exception capability, 9.5, 9.5
 - exception declaration, 9.1, 10.1, 13.2
 - exception handler, 8.3, 9, 9.1, 10.5, 14.3
 - exception monad, 11.3
 - exception-returning style, see ERS
 - exit
- early, 1.6, 1.6, 2.2, 2.2, 9, 9.1, 9.1, 14.3, 14.3
 - multi-level, 1.6, 1.6, 2.4, 2.6, 9.1, 14.3
  
 - exit, 1.6, 1.6
 - expectation monad, 11.3
 - expression, 1.3, 1.4, 5.2, 5.3, 6.2
 - external iterator, 4.1, 4.1, 4.1, 4.1, 8.7, 10.3
 
 - Forth, 1.5, 1.6, 1.6
 - Fortran, 1.3, 1.6, 1.6, 3.1, 3.2, 3.2, 3.2, 3.3, 3.4, 4.2, 9.4
 - FUN, 5.4, 6.5, 9.2, 10.5, 11.4, 11.4, 13.1, 13.4
 - FUNREF, 15.2
 - fixed point, 5.4, 6.2, 6.3, 6.4
 - flowchart, 1.2, 1.4, 2.1, 2.1, 2.1, 2.4, 2.5, 5.3, 14.2
 - fold, 12.2, 12.6, 12.7
 - footprint, 15.1, 15.4
 - for, 1.4, 1.5, 2.1, 4.2, 14.2
 - forward edge, 2.5, 2.5
 - frame, see stack frame
 - frame rule, 15.2, 15.3, 15.4, 15.5
 - free group, 12.3
 - free model, 12.3
 - free monad, 12.2
 - free monoid, 12.3
 - free variable, 3.3, 5.4
 - freer monad, 12.2, 12.4
 - function, 3.2, 3.2, 3.2, 3.3, 5.3, 5.4, 15.2
- as first-class value, 3.3, 3.3, 5.4
 - higher-order, 4.1, 5.4, 9.5, 13.6
 - nested, 3.2, 3.3, 5.4
  
 - function closure, 3.3, 3.3
 - functor, 12.2
 - future, 10.4
 
 - Go, 1.4
 - generator, 1.5, 4.2, 4.2, 4.2, 10.3, 10.3
 - ghost variable, 14.2
 - goto, 1.3, 1.4, 2.1, 2.1, 2.1, 2.2, 2.2, 2.6, 3.4, 3.4, 3.4, 4.2, 6.4, 8.1, 14.3, 14.3, 14.3, 14.3
 - grammar, 1.4
 - group, 12.3
 - guard, 1.5
 
 - Haskell, 1.5, 5.4, 5.4, 11.5, 11.5, 13.8
 - Hoare logic, 14.2, 14.2, 15.1
 - handle, 10.5, 10.6, 13.2
 - handler, see effect handler, exception handler, signal handler
 - head reduction, 5.5
 - heap, 3.3, 15.1
 - higher-order function, 4.1, 5.4, 9.5, 13.6
 
 - Icon, 4.2
 - IMP, 6.2, 6.3, 11.1, 14.4
 - ISWIM, 8.1
 - if, 1.3, 1.3, 1.3, 1.4, 2.4, 6.2, 6.3, 14.2, 15.2
 - implicit function argument, 9.5
 - input/output, 10.4
 - instance variable, 4.2
 - interaction tree, 12.2, 12.7
 - internal iterator, 4.1, 7.2, 8.2, 8.7, 10.3
 - invariant, 14.1, 14.2
 - inversion, see control inversion
 - irreducible, 2.6, 5.3, see reducible
 - iterator, 4.1
- external, 4.1, 4.1, 4.1, 4.1, 8.7, 10.3
 - internal, 4.1, 7.2, 8.2, 8.7, 10.3
  
 
  | - J (control operator), 8.1
 - Java, 1.4, 1.5, 1.5, 1.6, 1.6, 1.6, 3.4, 4.1, 9, 9.4, 13.2
 - Jensen’s device, 3.2
 - jump, 1.1, 1.3, 1.4, 2.1, 2.3, 3.1, 3.4, 6.1, 6.4, 9, 14.3
 
 - Kleisli triple, 11.2
 - Koka, 10.2, 10.7, 13.9
 
 - Lisp, 1.5, 3.3, 5.4, 9
 - label, 1.2, 1.3, 1.4, 2.2, 2.3, 3.4, 3.4, 3.4, 4.2, 6.4, 6.4, 8.1, 14.3, 14.3, 14.3, 14.3, 14.3
 - lambda calculus, 5.4, 8.1
 - last, 1.6, 1.6
 - latent effect, 13.4
 - lazy evaluation, see call by need
 - leave, 1.6, 1.6
 - let, 5.4, 5.5, 15.2, 15.2, 15.3, 15.3, 15.5
 - lexical scope, 3.3
 - lifetime, 3.3
 - linear continuation, 4.3, 10.2, 15.4, 15.4, 15.5
 - list monad, 11.5
 - local variable, 1.4, 4.2
 - loop, ??, 1.1, 1.3, 1.4, 1.5, 1.5, 2.1, 2.1, 2.5, 2.6, 4.2, 5.3, 14.2, 14.2, 14.2, 14.2, 14.3, 14.3
 - loop header, 2.5, 2.6
 
 - Modula, 1.4
 - machine language, 1.1, 1.2
 - macro, 1.2, 3.2
 - magic wand, 15.1
 - match, 1.5, 10.1
 - measuring solutions, 7.6
 - model, 12.3
 - monad, 11.2, 11.2, 11.5, 12.1
- as an algebraic structure, 12.4
 - combinations of, 11.3
 - continuation, 11.3
 - distribution, 11.3
 - environment, 11.3
 - exception, 11.3
 - expectation, 11.3
 - free, 12.2
 - freer, 12.2, 12.4
 - list, 11.5
 - nondeterminism, 11.3
 - of intermediate results, 12.1
 - output, 11.3
 - partiality, 11.3
 - reader, 11.3
 - state, 11.3
 - undo, 11.5
 - writer, 11.3
  
 - monadic laws, 11.2
 - monadic transformation, 11.4
 - monoid, 12.3
 - multi-level exit, 1.6, 1.6, 2.4, 2.6, 9.1, 14.3
 - multi-way conditional, 1.5, 2.3
 - multiple return, 3.4, 3.4, 9.4
 - multithreading, 4.3, 4.3, 4.3, 4.3, 7.3, 8.3, 10.4, 14.4, 14.4, 15.4, 15.6
 - mutable state, see state
 
 - natural loop, 2.5, 2.6
 - nested conditional, 1.5
 - nested function, 3.2, 3.3, 3.3, 3.3, 5.4
 - next, 4.1, 4.2, 4.2
 - nondeterminism, 1.5, 8.3, 11.3, 11.5, 12.1, 12.5, 12.6, 15.4
 - nondeterminism monad, 11.3
 
 - OCaml, 1.5, 3.4, 4.1, 4.1, 4.1, 5.4, 9, 10.1, 10.2, 10.7, 13.2, 13.8, 15.5
 - object, 3.3, 3.3, 4.1, 4.1, 4.2
 - one-pass CPS transformation, 6.5
 - one-shot continuation, 4.3, 15.4, 15.4
 - operational semantics, 8.4, 8.6, see reduction
 - output monad, 11.3
 
 - Pascal, 1.4, 1.5, 1.5, 3.3, 3.4
 - PC (program counter), 1.1, 2.3, 4.2
 - Perl, 1.4, 1.6, 1.6
 - PL/I, 1.4, 1.5
 - Pokémon, 9.4
 - Python, 1.4, 1.5, 1.5, 1.6, 1.6, 1.6, 3.4, 4.1, 4.1, 4.2, 4.2, 4.2, 4.2, 10.3, 10.3, 14.3
 - parser combinator, 7.5, 7.6
 - partiality monad, 11.3
 - pass by name, see call by name, macro
 - pass by reference, see call by reference
 - pass by value, see call by value
 - pattern matching, 1.5
 - perform, 10.1, 10.5, 10.6, 12.5, 13.2, 15.5
 - pointer, 15.1
 - polymorphism, 11.5, 13.3, 13.6, 13.6, 13.7, 13.8
 - postcondition, 14.1, 14.3, 14.4, 15.2
 - precondition, 14.1, 14.4, 15.2
 - preservation (of semantics), 6.6, 11.4
 - preservation (of types), 13.1, 13.4
 - probability, 7.6, 11.3
 - procedure, 3.2, 3.2, 3.2
 - program logic, 14.1, 14.2, 15.1
 - program point, 2.1, 6.1
 - progress, 13.1
 - promise, 10.4
 - prompt, 8.5
 
 - quadratic equation, 1.3, 3.1, 3.2, 3.2, 3.4, 3.4, 7.4, 9.1
 - quadruple, 14.3, 14.3, 15.5
 
 - Rust, 1.4, 1.5, 1.6
 - raise, 8.3, 9, 9.1, 9.1, 9.1, 9.1, 9.2
 - reader monad, 11.3
 - recursion, 3.2, 3.3, 3.3, 5.3, 5.4, 9.1
 - reducible, 2.4, 2.5, 2.5, 2.6, 2.6
 - reduction, 5.2, 5.4, 8.4, 8.6, 9.2, 10.5, 15.3
 - reduction context, see context
 - reference, 11.3, 13.3, 15.2, 15.2
 - regular expression, 7.5, 7.6
 - repeat...until, 1.5
 - reset, 8.5, 13.2
 - ret, 11.2, 12.1, 12.2, 12.2
 - return, 4.2, 8.1
 - return address, 3.1, 3.1
 - row types, 13.6, 13.7, 13.8, 13.8
 
 - Scala, 9.5
 - Scheme, 3.2, 4.1, 5.4, 8.2
 - SECD, 8.1
 - Simula, 1.4, 4.4
 - SML, 1.5, 5.4, 9, 13.2, 13.8
 - Swift, 1.4, 1.5
 - same-fringe problem, 4.1, 4.1
 - scheduler, 4.3, 4.3, 4.3, 8.3, 10.4
 - scope, 1.4, 3.4
 - self-application, 3.3
 - self-modifying code, 1.1
 - semantic preservation, 6.6, 11.4
 - semantics
- denotational, 6.2, 6.3, 6.4, 11.1, 12.1, 12.5, 12.7
 - operational, 8.4, 8.6, see reduction
  
 - separating conjunction, 15.1, 15.1, 15.1, 15.2
 - separating implication, 15.1
 - separation logic, 15.1, 15.1, 15.2, 15.3, 15.4, 15.5, 15.5
 - sequence, ??, 1.4, 14.2, 14.3
 - shallow effect handler, 10.1, 10.5, 12.7, 13.2, 13.7, 15.5
 - sharing, 5.2, 5.4, 5.5, 9.1
 - sharing combinator, 9.1
 - shift, 8.5, 13.2
 - signal handler, 9
 - skip, 6.2, 6.3, 14.2
 - source text, 2.1
 - spaghetti, 2.1
 - spawn, 7.3, 8.3, 10.4
 - spreadsheet, 5.2
 - stack, 3.1, 3.3, 3.3, 3.4, 4.2, 10.2, 15.4
 - stack frame, 3.3, 3.3, 3.3
 - stackful coroutine, 4.2, 4.3
 - stackless coroutine, 4.2, 4.3
 - state, 11.3, 12.1, 12.5, 12.6
 - state monad, 11.3
 - statement, 1.4, 1.4, 6.1, 6.2, 6.2
 - static, 3.3
 - store, 6.2, 11.1, 11.3, 12.1, 12.2
 - strong triple, 14.2, 14.2
 - structured exception handling, see exception handler
 - structured programming, 2.1
 - subprogram, 3.1, 3.2
 - subroutine, 3.1, 3.1, 3.1, 3.2
 - subtyping, 13.5, 13.5, 13.6
 - switch, 1.5, 4.2
 - symmetric coroutine, 4.3, 4.3, 4.3, 4.3, 15.4
 - synchronization, 10.4
 
 - then, see if
 - theory, 12.3
 - thread, see multithreading
 - throw, 3.4, 8.2, 9, 9.4, 13.2, 15.3, 15.4
 - throws, 9.4
 - thunk, 5.4, 11.4
 - trampoline, 4.3
 - triple, 14.2, 15.2
 - try, 3.4, 3.4, 8.3, 9, 9.1, 9.1, 9.1, 9.1, 9.2
 - type and effect system, 13.4
- for effect handlers, 13.7
 - for exceptions, 13.4
  
 - type checking, 13.1
 - type class, 11.5
 - type preservation, 13.1
 - type safety, 13.1, 13.2, 13.4
 - type system, 11.2, 13.1
- for callcc, 13.2
 - for delimited continuations, 13.2, 13.2
 - for effect handlers, 13.2
 - for exceptions, 13.2
  
 - types, 13.1
 - typing rules, 13.1
 
 - uncaught exception, 9.4
 - undo monad, 11.5
 - user-defined effect, 10, 10.1
 
 - value, 3.3, 5.2, 5.4, 11.2, 15.2
 - value restriction, 13.3, 13.3
 - variable
 - variant, 14.2
 
 - WebAssembly, 1.6
 - weak reduction, 5.4, 5.5
 - weak triple, 14.2
 - while, 1.3, 1.4, 1.5, 2.2, 2.3, 2.4, 6.2, 6.3, 14.2, 14.2, 14.3, 14.3
 - writer monad, 11.3
 
 - XL, 5.2
 
 - yield, 4.2, 4.2, 4.2, 4.2, 4.3, 4.3, 7.3, 8.3, 8.4, 10.3, 10.4, 14.4, 14.4, 14.4, 14.4, 15.4
 - yield from, 4.2
 
  |