Copyright © 2005 by Gordon S. Novak Jr.
Permission is granted for individuals to make copies of these notes for personal use, or for instructors to make copies for classroom use.
Note: Many of these pages use math symbols such as: &forall &exist . Microsoft Internet Explorer will not display the math symbols, but Netscape or Mozilla will.
a 164
abstract syntax tree 10
abstract type 174
alist 12
amphion 246
antisymmetric 57
aop 157
application generator 232
arity 218
aspect weaving 158
aspect-oriented programming 157
assoc 12
association list 12
ast 10
astronomical software 246
automatic programming 2
automatic programming server 203
available 66
available on entry 66
babbage 79
back edge 61
basic block 55
basic type 160
behavior 114
bhansali 258
binding 12
binding list 12
binding time analysis 96
binding time separation 101
bit vector 59
block 55
boolean equations 66
busy 70
cache 154
cad 258
cartesian product 57
cast 218
closed function 87
code motion 75
coercion 113
color 72
compile-time 85
compiler generator 97
component instance 213
component specification 213, 214
composite type 160
computed 64
confluence 40
cons 125
constant folding 26
context 31
control flow analysis 54
cpr 29
cross-cutting 157
data conversion 187
data translation 196
dead 70
dead code 80
deduction 246
def-use chain 71
defined 64
definition-use chain 71
degree of freedom 259
dependency graph 193
derivative 80
difference engine 79
dominator 61
dot matching 23
dynamic 96
dynamic data 90
dynamic type checking 110, 112
elaboration 265
embedded language 122
encapsulation 117
equal 20
equation 190
equation solving 191
equations 189
equivalence 57
field 161
find-update 208
finite differencing 78
fixed point 17
for loop 165
futamura projections 97
generating extension 98
generic function 113
generic procedure 169
geometry 258
glisp 159
glispobjects 162
global search 243
glue code 208
goguen 244
gps 206
graph 57
graphical programming 197, 206
heuristic 72
hiding 116
hierarchy 114
in-line 154
independence 174
induction variable 77
inference 215
information hiding 116
inline function 87
inlining 87
integration 225
invariant code 75
isomorphism 172
iterate-accumulate 208
join point 158
just in time 154
kids 240
killed 64
knowledge-based strategy 4
knuth-bendix 40
krueger 222
kwote 25
lambda-expression 126
leader 56
leverage 49
lisp 10
live 70
local optimization 51
loop header 61
loop transformation 75
loop unrolling 85
macro 84
match 21
mcilroy 224
memoization 82
message 115, 119, 120, 140, 147
message list 163
modulo unrolling 85
multi-processor 76
obfuscation 15
object 118
object creation 164
object-oriented programming 114
offline 96
online 96
oops 143
open function 87
operator overloading 167
overloading 167
partial evaluation 26, 88, 90, 105, 108, 154, 218
partial order 57
partition 57
pattern matching 11, 17, 18, 19
plan elaboration 265
plan fragment 261
polymorphic function 113
power-based strategy 4
program analysis 54
propagation 215
property 217
prove 50
ptmatch 27
queens 242
recursive expansion 168
reduction in strength 53
reference 161
referenced 64
refine 237
refinement 239
reflexive 57
relation 57
reuse 222
rewriting program 16
scavenging 229
selection 225
self 154
set 81
set of support 256
side effects 32
simplification 218
simula 114
simulation 114
slot 145
smalltalk 148
snark 248
software reuse 222
software schemas 231
space 49
specialization 35, 90, 98, 106, 225
specialize 154
speedup 76
spill code 72
static 96
static data 90
storage property 174
store 195
strength reduction 53
strip mining 76
structure description 160
subgraph 62
sublisq 25
substitution 13
substitution test 209
substructure 161
super 118
superclass 118
symmetric 57
table lookup 154
termination 40
theorem proving 254
theory 244
thinglab 150
time 49
trans 28
transform 75
transformation 11, 15, 17, 22, 25, 234
transitive 57
type checking 110
type coercion 113
type propagation 216
typeof 167
unroll 218
unrolling 85
used 64
v 237
very-high-level language 233
view 171, 171, 174, 175, 180, 181, 183, 211, 245
viewas 181
vip 197
wrapper 171