Changes between Version 2 and Version 3 of JooPo structure


Ignore:
Timestamp:
Oct 16, 2008 10:20:37 AM (9 years ago)
Author:
schuhmac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • JooPo structure

    v2 v3  
    33JooPo is made up from several Java packages.
    44
    5  * the main package
     5 * the [#Mainpackage main package]
    66 * interface packages
    7    * machine provides an interface to java classfiles and java bytecode.
     7   * [#Machinepackage machine] provides an interface to java classfiles and java bytecode.
    88 * control packages
    99   * transforming a routine
    10      1. flow structures control flow into a flow of intercepts
    11      2. statement accumulates commands towards statements and expressions
    12      3. block constrains flow towards block structure
    13      4. loop classifies loops
    14      5. bilingual recognizes loopo loops
    15    * result converts the routine to interlinked classfile and loopo source
     10     1. [#Flowpackage flow] structures control flow into a flow of intercepts
     11     2. [#Statementpackage statement] accumulates commands towards statements and expressions
     12     3. [#Blockpackage block] constrains flow towards block structure
     13     4. [#Looppackage loop] classifies loops
     14     5. [#Bilingualpackage bilingual] recognizes loopo loops
     15   * [#Resultpackage result] converts the routine to interlinked classfile and loopo source
    1616 * utility packages
    17    * expression operates on a logical accumulation of commands
     17   * [#Expressionpackage expression] operates on a logical accumulation of commands
    1818
    1919For an exact description of the packages see the javadoc documentation.
     20Here we the explain the actually used interdependence of them avoiding redundance with other documentation.
     21
     22== Main package ==
     23
     24Main passes the input through the control packages.
     25Its staple class is !FixClass which creates a classfile and a loopo source file.
     26The classfile is all at strictest protected and abstract in order to be refined by the output from loopo.
     27
     28== Machine package ==
     29
     30Machine uses objectweb asm to interface classfiles.
     31The other packages rely on it to interpret and possibly expand machine code.
     32
     33== Flow package ==
     34
     35Flow interprets control flow of an input routine.
     36It extracts machine code basic blocks from it and builds a succession structure of so called Intercepts.
     37Intercepts wrap code chunks called Computations.
     38
     39== Statement package ==
     40
     41Statement assembles operand stack operations that belong together.
     42It accumulates them towards units called Statements which are made of Expressions.
     43
     44== Block package ==
     45
     46Block uses the described [wiki:"JooPo algorithms" algorithm] to construct block nested code.
     47Output is a Procedure made up of Paragraphs, which may be Scripts wrapping Computations or Blocks.
     48Blocks can be Loops or Conditionals.
     49Additionally block allows to extract loops from a procedure.
     50
     51== Loop package ==
     52
     53Loop can refine loop blocks of procedures towards !CountLoops.
     54
     55== Bilingual package ==
     56
     57== Result package ==
     58
     59== Expression package ==