Held Wednesday, April 18, 2001
Today we consider the design of an abstract assembly language representation.
- Does anyone have any other thoughts on our candidates?
- Presentation teams follow. Please pick a topic and preferred
time by Friday. (Earlier requests get priority for picking slots.)
- Team Foo: Kensler, Galacia, Staicut
- Team Bar: Baszler, Magar, Vickery
- Team Baz: Fuller, Gerking, Kern
- Team Xyzzy: Corvino, Gu, Krivin
- Team Q: Broadwell, Carey, Simonson
- Code and outline for today are vague. Sorry. Expect sample code
in lab tomorrow.
- Why an abstract assembly language
- Representing locations and values
- Representing individual instructions
- Combining instructions
- Why: Lets us leave some topics until later.
- Register allocation
- Valid operands for certain operations
- Like assembly, but more abstract
- Easy to translate to most CISC architectures.
- Easy and fast to build
- Rely on common operations
- Think about translation
- One key idea: Use a tree of instructions rather than a sequence.
- Two basic types: instruction and operand.
- Specified value.
- Standard register, such as stack pointer.
- Known register (rare).
- Place on stack.
- Temporary (to be converted to a register or value on stack).
- Array reference?
- What operations or operation-like things do you expect to see in an
- Add a label.
- Jump to a label.
- Conditional jump.
- Arithmetic operations.
- Move values.
- Push and pop stack values?
- Procedure call.
- Procedure return.
Monday, 22 January 2001
- Created as a blank outline.