Mercurial > hg > Papers > 2015 > kaito-lola
changeset 16:c3d20ec1ec4b
spell check
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 04 Jul 2015 23:36:52 +0900 |
parents | bbbeecda034d |
children | 889696aa5018 |
files | presentation/presen.html |
diffstat | 1 files changed, 120 insertions(+), 72 deletions(-) [+] |
line wrap: on
line diff
--- a/presentation/presen.html Sat Jul 04 23:10:39 2015 +0900 +++ b/presentation/presen.html Sat Jul 04 23:36:52 2015 +0900 @@ -421,10 +421,10 @@ <div class='slide'> <h2>Goto with environment</h2> <p> - We want provide continuation of function f. - The continuation is not a simple code segment, - because code segment has not state. - We represent the continuation with a code segment (__return) and a meta data segment (__environment). + We want provide continuation of function f.<br> + The continuation is not a simple code segment,<br> + because code segment has not state.<br> + We represent the continuation with a code segment (__return) and a meta data segment (__environment).<br> </ul> </div> @@ -480,11 +480,8 @@ <ul> <li>This struct is __environment. </ul> - <li>Insert setjmp in C function. - <li>Generate longjmp code segment as return. - <ul> - <li>This code segment is pointed by __return. - </ul> + <li>Insert setjmp in C function, when __return is used. + <li>Generate longjmp code segment as __return. </ul> </div> @@ -526,7 +523,120 @@ <li>If tail call elimination was failed, compiler output error messages. </ul> </div> -<!-- + + <div class='slide'> + <h2>Usage of CbC : as an instruction description</h2> + <p>CbC can be used as a hardware description language (RTL level)</p> + <ul> + <li>VU (Vector unit) in PS2 + <li>SPU in PS3 + </ul> + </div> + + <div class='slide'> + <h2>Usage of CbC : Parallel Task representation</h2> + <p>CbC can be used as a parallel programming language</p> + <ul> + <li>run on GPU or Many Core + <li>a code segment is a kernel in Open CL + <li>a code segment execution is atomic + <li>during an execution of code, data segments are owned by the code + <li>task structure is a meta data segment + <li>task manager is a meta code segment + </ul> + </div> + + <div class='slide'> + <h2>Usage of CbC : OS API description</h2> + <ul> + <li>detailed description of open/read/write/select + <li>we can implement kernel in CbC + </ul> + </div> + + <div class='slide'> + <h2>Usage of CbC : meta computation</h2> + <ul> + <li>call meta code segment during goto + <li>thread context is a meta data segment + <li>it can be seen as a monadic meta computation + </ul> + </div> + + <div class='slide'> + <h2>Usage of CbC : Model checking</h2> + <ul> + <li>call meta code segment during goto + <li>try all possible non deterministic computation + <li>keep track data segment state + <li>Do the model checking without modifying the code + <li>cf. Java Pathfinder (Model checking by replacing JVM) + </ul> + </div> + + <div class='slide'> + <h2>Conclusion</h2> + <ul> + <li>CbC compiler on LLVM and Clang is implemented. + <li>LLVM IR is not modified. + <li>goto with environment is implemented by setjmp and longjmp. + <li>Automatic prototype generating. + <li>Various application of CbC. + </ul> + </div> + + <div class='slide'> + <h2>Future works</h2> + <ul> + <li>Write operating system in CbC. + <ul> + <li>Gears OS + </ul> + <li>Meta computation syntax. + <li>More user friendly syntax. + <li>Automatic data segment generator. + <li>Signature for data segment. + <li>Dependent type and implicit parameter + </ul> + </div> + + <div class='slide'> + <h2>LLVM and Clang's intermediate representations</h2> + <table border='1' align='center' width='80%'> + <tr><td width='25%'> + Name + </td><td> + Description + </td></tr> + <tr><td> + clang AST + </td><td> + Abstract Syntax Tree. It is a representation of the structure source codes. + </td></tr> + <tr><td> + LLVM IR + </td><td> + The main intermediate representation of LLVM. It has three different forms: as an in-memory compiler IR, as an on-disk bitcode representation, and as a human readable assembly language representation. + </td></tr> + <tr><td> + SelectionDAG + </td><td> + Directed Acyclic Graph. Its nodes indicate what operation the node performs and the operands to the operation. + </td></tr> + <tr><td> + Machine Code + </td><td> + This representation is designed to support both an SSA representation for machine code, as well as register allocated, non-SSA form. + </td></tr> + <tr><td> + MC Layer + </td><td> + It is used to represent and process code at the raw machine code level. User can some kinds of file (.s, .o, .ll, a.out) by same API. + </td></tr> + </table> + </div> + + </div> <!-- presentation --> <div class='slide'> <h2>Execution Result</h2> <ul> @@ -583,67 +693,5 @@ <li>LLVM can compile CbC examples. </ul> </div> ---> - <div class='slide'> - <h2>Conclusion</h2> - <ul> - <li>CbC compiler on LLVM and Clang is implemented. - <li>LLVM IR is not modified. - <li>goto with environment is implemented by setjmp and longjmp. - <li>Automatic prototype generating. - </ul> - </div> - - <div class='slide'> - <h2>Future works</h2> - <ul> - <li>Write operating system in CbC. - <ul> - <li>Gears OS - </ul> - <li>Meta computation syntax. - <li>More user friendly syntax. - <li>Automatic data segment generator. - <li>Signature for data segment. - </ul> - </div> - - <div class='slide'> - <h2>LLVM and Clang's intermediate representations</h2> - <table border='1' align='center' width='80%'> - <tr><td width='25%'> - Name - </td><td> - Description - </td></tr> - <tr><td> - clang AST - </td><td> - Abstract Syntax Tree. It is a representation of the structure source codes. - </td></tr> - <tr><td> - LLVM IR - </td><td> - The main intermediate representation of LLVM. It has three different forms: as an in-memory compiler IR, as an on-disk bitcode representation, and as a human readable assembly language representation. - </td></tr> - <tr><td> - SelectionDAG - </td><td> - Directed Acyclic Graph. Its nodes indicate what operation the node performs and the operands to the operation. - </td></tr> - <tr><td> - Machine Code - </td><td> - This representation is designed to support both an SSA representation for machine code, as well as register allocated, non-SSA form. - </td></tr> - <tr><td> - MC Layer - </td><td> - It is used to represent and process code at the raw machine code level. User can some kinds of file (.s, .o, .ll, a.out) by same API. - </td></tr> - </table> - </div> - - </div> <!-- presentation --> </body> </html>