multiple stacks per type | ||||||
parameters (current) | borne out of concern for memory conservation | |||||
borne out of mathematical & textual-only notation | ||||||
all parameters pushed onto one stack (heterogeneous) | ||||||
compiler must do work to determine type safety | ||||||
compiler must do work to determine alignment | ||||||
a stack is any array which is just a degenerate (aka optimized) collection | ||||||
stack per type | Assertion: if it’s on the stack, then it is of that type | |||||
type check done at push time | ||||||
nil? Nothingness? Empty slot only meaningful for list (collections) | ||||||
one stack per parameter (what if some parameters have the same type?) | ||||||
A.T.M | operations | |||||
input stack | maybe this should be called the “work” stack? | NewScope | push empty slot onto self.input | |||
CoerceFrom | s | move s.output.TOS to self.input.TOS ; pop s | ||||
AppendFrom | s | append s.output.TOS to self.input.TOS ; pop s.output | ||||
SetFieldFrom | f | s | self.input.TOS.f := s.output.TOS ; pop s.output | |||
output stack | return a value, leave a value | |||||
Output | push self.input.TOS onto self.output.TOS ; pop self.input | |||||
operations | standard operations for input stack | |||||
standard operations for output stack | ||||||
external operations that are application (domain) specific (can operate with either stack or both) ; written in base language ; declared but not specified in Architecture (no need for detailed operation syntax in Architectural language) ; the base language is like an assembler for the Architectural Language (architects don’t need to worry about implementation details (in fact, implementation details and implementation rigour adversely affect Architectural thought) | ||||||
concept | a component receives multiple parameters on a set of stacks and leaves results on (another?) set of stack | |||||
generalization: inputs arrive on input stacks, immediately transferred to work stack (in the above, I fold “input” and “work” stacks together “for efficiency” | ||||||