- 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
- axiomatic, see program logic
- 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
|