Copyright © 2006 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 Firefox will.
absolute code 163
absolute file 165
abstract syntax tree 333
activation 196
activation record 196
address 249
alias 224
alignment 130
alist 334
ambiguous grammar 61
annotate 267
antisymmetric 275
aop 326
architecture 302
arithmetic instructions 230
array 134
array performance 142
aspect-oriented programming 326
assignment 197
assoc 334
association list 334
associativity 72
ast 333
atn 66
augmented transition network 66
automaton 40
available 283
available on entry 283
avl tree 115
babbage 295
backpatching 170
banked memory 167
base address 128
base register 164
basic block 273
behavior 303
binding list 334
binding time analysis 267
bison 45
bit vector 277
block 273
boolean equations 283
bottom-up parsing 64
bounds check 149
bounds register 164
branch prediction 300
bss 165
bss storage 166
busy 285
byte code 206
cache 317
cache prefetch 300
call by name 249
call by reference 249
call by value 249
call overhead 195
car 332
cartesian product 275
cascading errors 31
cast 183
cdr 332
character class 17
chart parser 65
chomsky 33
chomsky hierarchy 40
church 328
closed function 351
code generation 210
code generator 163
code motion 291
code reordering 302
color 287
common 178
compare 231
compile-time 259
compiler 9
compiler generator 268
computed 281
concatenation of languages 60
conditional branch 237
constant folding 257
constant propagation 261
context sensitive 58
control flow analysis 272
control stack 196
copying collector 190
correctness 253
cross-cutting 326
data area 128
data flow 11
dead code 296
def-use chain 286
defined 281
definition-use chain 286
delay 231
derivative 296
difference engine 295
disambiguating rules 61
dll 179
dominator 279
dot matching 345
dynamic data 261
dynamically linked library 179
empty string 38
environment 197
epilogue 194
equivalence 275
equivalent grammars 60
errors 31
exported symbol 173
expression 211
expression generation 212
external reference 173
finite differencing 294
flex 45
float 232
floating point 28, 29, 30, 232
folding 257
forward branch 170
frame pointer 227
function call 234
futamura projections 268
garbage 186
garbage collection 186, 190, 329
genarith 214
genc 210
generation 35
generic 323
getchar 12
grammar notation 38
hardware 299
hash function 117
hash table 116
hash with buckets 118
heap 183
heuristic 287
hiding 306
hierarchy 303
identifier lookup 125
if statement 237
imported symbol 173
induction variable 293
information hiding 306
inline 251
inline function 351
inlining 351
instance variable 308
interaction 329
interface 306
interpretation 261
interpreted code 206
interpreter 330
intrinsic function 233
invariant code 291
jigsaw-puzzle modularity 325
just in time 317
killed 281
kleene closure 38
lambda calculus 328
language generated 60
language translation 343
layer 323
leader 274
left recursion 82
left-associative 72
leftmost derivation 59
leverage 252
lexer output 27
lexical scoping 119
library 173
lifetime 196
line handler 12
lisp interpreter 330
list 332
loader 164
local optimization 255
loop header 279
loop transformation 291
loop unrolling 259
looping statements 110
machine language 6
macro 250
malloc 183
mark-and-sweep 188
matching 340
matrix 292
mccarthy 328
memoization 298
memory management 183
method lookup 314
mix 261
mnemonic 7
modulo unrolling 259
multi-processor 292
multiple inheritance 316
name equivalence 150
nan 166
nonterminal 34
number conversion 25
obfuscation 352
object 308
object-oriented programming 303
offline 267
online 267
opacity 323
open 251
open function 351
operator precedence 71, 72, 73, 79
out-of-order 300
overhead 323
overloading 152
padding 130
parameter passing 249
partial evaluation 260, 261, 317
partial order 275
partition 275
pattern matching 340
pattern-pair 342
peephole 155
peephole optimization 258
performance 149, 246, 292, 299
pointer arithmetic 183
pointer reference 145
polish 157
polymorphic 152
postamble 194
powerpc 300
preamble 194
precedence 72
precompute 261
pretty-printer 78
processor stall 302
productions 34
program analysis 272
prologue 194
prove 253
quadruple 155
quote 332
read-eval-print loop 330
record 132
record reference 139
recursion 329
recursive 57
recursive descent 82
reduce 71
reducing 261
reduction in strength 256
reference counting 191
referenced 281
reflexive 275
register allocation 216, 286, 287
register architecture 227
register management 215
register reuse 218
regular expressions 46
regular language 43
relation 275
release storage 184
relocatable 172
relocatable code 163
relocate 177
relocation bit 177
representation 329
reserved word 22
restore registers 194
retarget 154
return address 194
return statement 194
reverse polish 157
rewrite rule 348
right-associative 72
rightmost derivation 59
row-major order 141
rpn 157
run-time 259
run-time library 180
save registers 194
scheme 328
scope 119
search 314
separate compilation 151
set 297
shift-reduce parser 85
side-effect 323
signature 151
simula 303
simulation 303
snan 166
sound 149
space 252
sparc 301
sparc processor 226
speculative execution 300
speedup 292
spill code 287
stack frame 196
stack machine 160
stack pointer 227
stall 302
start address 164
start symbol 39
state 197
static data 261
storage alignment 130
storage leak 184
storage management 184
store-multiple 300
strength reduction 256
strip mining 292
strong typing 149
structural equivalence 150
structure example 143
structure reference 137
subclass 308
subgraph 280
sublis 335
subscripts 81
super 308
superclass 308
superscalar 300
switch 243
symbolic 327
symbols 123
symmetric 275
synthesized translation 88
terminal 34
thinglab 321
this 313
three-address code 155
time 252
top-down filtering 63
top-down parser 63
transitive 275
tree form 78
triad 156
triple 156
type coercion 136
type constructor 146
type equivalence 150
type inference 136
type safety 183
type signature 151
types as trees 146
unary 81
undefined symbol 173
unfolding 261
union of languages 60
unrolling 259
use number 219
var 249
variable declaration 126
variant record 149
volatile 235
white space 19
yacc 89
yacc code 127
yacc grammar 93
yacc hints 99