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>