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