Ignore:
Timestamp:
Mar 16, 2014, 3:51:19 PM (5 years ago)
Author:
ksherdy
Message:

Updated PabloJ to s2k.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/pabloj/trunk/docs/Notes

    r3192 r3699  
    1414
    1515================================================================================
    16 PabloS Builtins
     16s2k Builtins
    1717================================================================================
    1818
     
    2020
    21211. Add field width to pablo.operation builtin calls.
    22         e.g. pablo.operation() -> pablos.operation<fw>(...)
     22        e.g. pablo.operation() -> s2k.operation<fw>(...)
    2323
    2424--------------------------------------------------------------------------------
     
    2626--------------------------------------------------------------------------------
    2727
    28 PabloB syntax   --> PabloB Parser --> output (C,C++,LLVM)
     28b2k syntax      --> b2k Parser --> output (C,C++,LLVM)
    2929       
    3030                                                ^
     
    5454       
    5555================================================================================
    56 PabloS Types
     56s2k Types
    5757================================================================================
    5858
     
    6464
    6565================================================================================
    66 PabloS Visitors
    67 ================================================================================
    68 
    69 1. All PabloS conditional expression E are wrapped in BitBlock::any(E) calls.
    70 
    71 ================================================================================
    72 PabloB Memory and Block-at-a-time Processing Model
     66s2k Visitors
     67================================================================================
     68
     691. All s2k conditional expression E are wrapped in BitBlock::any(E) calls.
     70
     71================================================================================
     72b2k Memory and Block-at-a-time Processing Model
    7373================================================================================
    7474
     
    8989e.g. bitblock s; s = simd::constant<1>(0);
    9090
    91 (2) Current PabloB grammar does not support boolean OR.
     91(2) Current b2k grammar does not support boolean OR.
    9292
    9393Work around. Added PabloJCarryTest runtime check that returns a type BitBlock.
     
    100100(5) 
    101101
    102 PabloS - Design and implementation issues.
     102s2k - Design and implementation issues.
    103103
    104104(1) Grammar/Parser/Semantic Analyzer
     
    110110    For example,
    111111   
    112     (a) PabloS grammar permits top-level type declarations of all types.
     112    (a) s2k grammar permits top-level type declarations of all types.
    113113        However, the intention is to restrict to stream struct definitions.
    114114   
    115     (b) PabloS grammar does not enforce def/use for stream structs prior to use in stream function defintions,
    116         i.e. PabloS grammar does not prevent the definition of stream functions prior to stream structs.
     115    (b) s2k grammar does not enforce def/use for stream structs prior to use in stream function defintions,
     116        i.e. s2k grammar does not prevent the definition of stream functions prior to stream structs.
    117117       
    118     (c) PabloS grammar does not prevent the definition of new types within the body of
     118    (c) s2k grammar does not prevent the definition of new types within the body of
    119119        stream functions.   
    120120
     
    122122       
    123123
    124 PabloB - Design and implementation issues.
     124b2k - Design and implementation issues.
    125125
    126126(1) 'static' initialization section vs. 'kernel' constructor
     
    269269        (b) Clone complete AST. Apply AST transformation passes to both ASTs.
    270270        (c) Add both body and final block bodies to a single AST. We accomplish this through
    271             the addition/introduce of both PabloS and PabloB grammars and translate
    272             from PabloS to PabloB.
     271            the addition/introduce of both s2k and b2k grammars and translate
     272            from s2k to b2k.
    273273       
    274274        An additional decision remains as to which point in Pablo AST transformation we clone ASTs.
    275275
    276         Design choice taken (c): Translate from PabloS to PabloB.
     276        Design choice taken (c): Translate from s2k to b2k.
    277277
    27827813. Carry mode (ci/co) and do_block/do_final_block are independent concepts.
     
    371371}
    372372
    373 16. PabloB grammar design issue (together with Carry InfoSet design)
    374 
    375 How do we add stream function level declaration / initialization code to the output?
     37316. b2k grammar design issue (together with Carry InfoSet design)
     374
     375How do we add stream function level declaration / initialisation code to the output?
    376376
    377377Options:
    378378
    379 (a) Add explicit carry info set information to the PabloB function definition representation.
    380 
    381     No, this would burden the programmer at the PabloB level.
     379(a) Add explicit carry info set information to the b2k function definition representation.
     380
     381    No, this would burden the programmer at the b2k level.
    382382    The idea is the we remove carry counting ... from the developer
    383383    but still we need carry count / advn carry count information
     
    385385   
    386386(b) Hold carry info set information in a symbol table external
    387         to both PabloB. Query this data structure during code generation.
     387        to both b2k. Query this data structure during code generation.
    388388   
    389389(a) and (b) are similar in that both options remove explicit carry counting from the programmer.
    390390
    391 We currently translate PabloS to PabloB and PabloS code is used to populate the information
    392 contained in the symbol table used by PabloB.
    393 
    394 We could populate similar symbol table information based on PabloB code alone.
     391We currently translate s2k to b2k and s2k code is used to populate the information
     392contained in the symbol table used by b2k.
     393
     394We could populate similar symbol table information based on b2k code alone.
    395395
    396396More investigation is required here.
     
    400400Fill in this section ...
    401401
    402 18. PabloB needs both bitwise OR as well as boolean OR.
     40218. b2k needs both bitwise OR as well as boolean OR.
    403403
    40440419. Translate to Dotty for AST diagrams.
Note: See TracChangeset for help on using the changeset viewer.