Thu May 28 23:25:07 CEST 2009
issues to solve
- command completion
- regain flat namespace (import all modules) (1)
(1) is now done in code.ss -- it is essentially a reverse name lookup
independent of the forward name resolution that is performed using
identifiers only. this dictionary could then be used at the debug
i'd like to fix the disassembler too.
Maybe it's better to fix the CFG rep first. I've never really liked
the way code lists are linked to labels. It feels artificial.
So, is there a way to solve this problem?
Maybe the CFG should be defined in a more textbook manner.
Looking at it from the pov of the assembler,
- labels point to code
- have an address that can be modified
- code points to labels
So, there is a static part (labels + assembly code) which is a graph.
To this graph another data structure is associated which maps labels
to addresses and assembly code to binary lists.
Mabe this should just be abstracted into some datatypes.
Ok. this is probably what is necessary:
The default data structure on which the compiler operates, and for
which there exist printing routines is the CHAIN, which is a list of
(label code) lists. In addition, each LABEL (target-word) points to
its associated code and its next instruction, however, these are only
there for reference and might be implemented separately. Both during
compilation and disassembly these might be invalid.