changeset 0:71428fe423da

initial
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 10 May 2015 13:11:51 +0900
parents
children 755cf49d4bcc
files Gears.mm fig/Duality.graffle fig/Duality.svg fig/codeGear.graffle fig/codeGear.svg fig/dataGear.graffle fig/dataGear.svg gears.ind
diffstat 8 files changed, 148 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Gears.mm	Sun May 10 13:11:51 2015 +0900
@@ -0,0 +1,116 @@
+<map version="1.0.1">
+<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
+<node CREATED="1429430866727" ID="ID_1644850666" MODIFIED="1429430873868" TEXT="Gears">
+<node CREATED="1429430873869" ID="ID_1711660023" MODIFIED="1429430886410" POSITION="right" TEXT="requirements">
+<node CREATED="1429430947311" ID="ID_1266882306" MODIFIED="1429430960628" TEXT="reliablity of software">
+<node CREATED="1429430960629" ID="ID_738050046" MODIFIED="1429430964037" TEXT="proof"/>
+<node CREATED="1429430964451" ID="ID_1828954024" MODIFIED="1429430970404" TEXT="model checking"/>
+</node>
+<node CREATED="1429430886411" ID="ID_882067925" MODIFIED="1429430899421" TEXT="architecture independent"/>
+<node CREATED="1429430900306" ID="ID_1274544327" MODIFIED="1429430911033" TEXT="predictable"/>
+<node CREATED="1429430914520" ID="ID_142117180" MODIFIED="1429430933329" TEXT="measured reliability"/>
+<node CREATED="1429430933905" ID="ID_512406186" MODIFIED="1429430941512" TEXT="consume old software"/>
+<node CREATED="1429430976044" ID="ID_1580116077" MODIFIED="1429430982514" TEXT="Theoretical back ground">
+<node CREATED="1429430992095" ID="ID_1784627260" MODIFIED="1429431000782" TEXT="typed lambda calcuus"/>
+</node>
+<node CREATED="1429430983162" ID="ID_425863879" MODIFIED="1429430985394" TEXT="Easy to use"/>
+</node>
+<node CREATED="1429431011782" ID="ID_1133561276" MODIFIED="1429431019458" POSITION="right" TEXT="conventional tools">
+<node CREATED="1429431019459" ID="ID_260428274" MODIFIED="1429431027986" TEXT="typed assembler language"/>
+<node CREATED="1429431033496" ID="ID_1560037856" MODIFIED="1429431041830" TEXT="typed lambda calculus"/>
+<node CREATED="1429431042339" ID="ID_769760294" MODIFIED="1429431054626" TEXT="Meta conputation  on Monad"/>
+<node CREATED="1429431059022" ID="ID_1501151926" MODIFIED="1429431068111" TEXT="assembler language"/>
+<node CREATED="1429431068503" ID="ID_614615242" MODIFIED="1429431070847" TEXT="C language">
+<node CREATED="1429431072288" ID="ID_1153519539" MODIFIED="1429431074415" TEXT="and other"/>
+</node>
+</node>
+<node CREATED="1429431080654" ID="ID_32790850" MODIFIED="1429431086414" POSITION="right" TEXT="problem">
+<node CREATED="1429431086415" ID="ID_1497657864" MODIFIED="1429431110085" TEXT="predict properties of functiona progra"/>
+<node CREATED="1429431113710" ID="ID_515480037" MODIFIED="1429431124291" TEXT="parallelism and concurrenty"/>
+<node CREATED="1429431126839" ID="ID_224184009" MODIFIED="1429431132819" TEXT="model checking tools"/>
+<node CREATED="1429431133288" ID="ID_1279662688" MODIFIED="1429431139618" TEXT="proof assistance tools"/>
+</node>
+<node CREATED="1429431147697" ID="ID_985322611" MODIFIED="1429431152800" POSITION="right" TEXT="our approach">
+<node CREATED="1429431152801" ID="ID_381967113" MODIFIED="1429431159479" TEXT="Continuation based C"/>
+<node CREATED="1429431159900" ID="ID_1349145633" MODIFIED="1429431162375" TEXT="Code segment"/>
+<node CREATED="1429431162750" ID="ID_625951844" MODIFIED="1429431165942" TEXT="Data segment">
+<node CREATED="1429431166215" ID="ID_104257638" MODIFIED="1429431167742" TEXT="new"/>
+</node>
+<node CREATED="1429431170053" ID="ID_1845700211" MODIFIED="1429431179036" TEXT="Meta code and data segment"/>
+</node>
+<node CREATED="1429432218306" ID="ID_156856948" MODIFIED="1429432221402" POSITION="right" TEXT="story">
+<node CREATED="1429432221403" ID="ID_580634518" MODIFIED="1429432232836" TEXT="reliablity and predictablity">
+<node CREATED="1429432299078" ID="ID_1172006285" MODIFIED="1429432307578" TEXT="problems to be solved"/>
+</node>
+<node CREATED="1429432250449" ID="ID_1448499340" MODIFIED="1429432255382" TEXT="programming unit">
+<node CREATED="1429432256471" ID="ID_1748344820" MODIFIED="1429432258223" TEXT="function"/>
+<node CREATED="1429432258607" ID="ID_1060897765" MODIFIED="1429432262423" TEXT="instruction"/>
+</node>
+<node CREATED="1429432242138" ID="ID_1927331554" MODIFIED="1429432248048" TEXT="meta computation">
+<node CREATED="1429432399191" ID="ID_1233172267" MODIFIED="1429432401104" TEXT="Monad"/>
+</node>
+<node CREATED="1429432282870" ID="ID_1735779484" MODIFIED="1429432287080" TEXT="Gears"/>
+<node CREATED="1429432287644" ID="ID_1848448724" MODIFIED="1429432296902" TEXT="Gears element"/>
+<node CREATED="1429432321043" ID="ID_863120969" MODIFIED="1429432324992" TEXT="Current implementation">
+<node CREATED="1429432327408" ID="ID_1036693166" MODIFIED="1429432330033" TEXT="Alice"/>
+<node CREATED="1429432330433" ID="ID_1748348361" MODIFIED="1429432331745" TEXT="Jungle"/>
+<node CREATED="1429432332384" ID="ID_803152111" MODIFIED="1429432338136" TEXT="CbC on LLVM"/>
+<node CREATED="1429432338599" ID="ID_1624519032" MODIFIED="1429432341032" TEXT="Cerium"/>
+</node>
+<node CREATED="1429432315178" ID="ID_1842495245" MODIFIED="1429432318691" TEXT="Comparision"/>
+</node>
+<node CREATED="1429431190975" ID="ID_934318234" MODIFIED="1429431499490" POSITION="left" TEXT="formal definition of Gears">
+<node CREATED="1429431200068" ID="ID_1558007831" MODIFIED="1429431208392" TEXT="code segment"/>
+<node CREATED="1429431209601" ID="ID_790063944" MODIFIED="1429431211424" TEXT="data segment"/>
+<node CREATED="1429431211816" ID="ID_939075371" MODIFIED="1429431218807" TEXT="meta code and data segment"/>
+</node>
+<node CREATED="1429431658441" ID="ID_503766088" MODIFIED="1429431661688" POSITION="left" TEXT="code segment">
+<node CREATED="1429431662248" ID="ID_1220253481" MODIFIED="1429431681879" TEXT="handle input data segment and output datasegment"/>
+<node CREATED="1429431685206" ID="ID_980242323" MODIFIED="1429431693316" TEXT="no direct handling of pointer"/>
+<node CREATED="1429432036335" ID="ID_953492334" MODIFIED="1429432045892" TEXT="coninuation based">
+<node CREATED="1429432049854" ID="ID_1998579332" MODIFIED="1429432054036" TEXT="no function call"/>
+<node CREATED="1429432055821" ID="ID_1585858269" MODIFIED="1429432066508" TEXT="but ok to use function call in an code segment"/>
+</node>
+<node CREATED="1429432122667" ID="ID_1900186738" MODIFIED="1429432136358" TEXT="parallel execution unit">
+<node CREATED="1429432138838" ID="ID_1328470651" MODIFIED="1429432140245" TEXT="atomic"/>
+</node>
+</node>
+<node CREATED="1429431746481" ID="ID_588203189" MODIFIED="1429431749125" POSITION="left" TEXT="data segment">
+<node CREATED="1429431749126" ID="ID_598168337" MODIFIED="1429431755130" TEXT="type signature"/>
+<node CREATED="1429431755721" ID="ID_1537271468" MODIFIED="1429431760698" TEXT="openness"/>
+<node CREATED="1429431770642" ID="ID_1756524961" MODIFIED="1429431778049" TEXT="mulitple representation">
+<node CREATED="1429432109967" ID="ID_1075046274" MODIFIED="1429432113671" TEXT="persistency"/>
+</node>
+</node>
+<node CREATED="1429431780273" ID="ID_252741409" MODIFIED="1429431911016" POSITION="left" TEXT="meta datasegment">
+<node CREATED="1429431784648" ID="ID_104498941" MODIFIED="1429431818327" TEXT="interrelation of data segment"/>
+<node CREATED="1429431818928" ID="ID_744626334" MODIFIED="1429431825758" TEXT="interrrelation of code segment"/>
+<node CREATED="1429431826499" ID="ID_181587451" MODIFIED="1429431830534" TEXT="parallel execution"/>
+<node CREATED="1429431831540" ID="ID_70410003" MODIFIED="1429431841572" TEXT="as a Monadic meta computation"/>
+<node CREATED="1429431856100" ID="ID_546856494" MODIFIED="1429431874090" TEXT="Operating system or runtime system"/>
+</node>
+<node CREATED="1429431435789" ID="ID_731193079" MODIFIED="1429431449466" POSITION="left" TEXT="Parallel Execuiton on Many core and GPU"/>
+<node CREATED="1429431310826" ID="ID_1266688164" MODIFIED="1429431321637" POSITION="left" TEXT="Gears on CbC">
+<node CREATED="1429431321637" ID="ID_1855558653" MODIFIED="1429431326541" TEXT="Sample code"/>
+</node>
+<node CREATED="1429431541228" ID="ID_1310021036" MODIFIED="1429431546347" POSITION="left" TEXT="comparison">
+<node CREATED="1429431547010" ID="ID_639830756" MODIFIED="1429431555426" TEXT="typed lambda calculus"/>
+<node CREATED="1429431556232" ID="ID_1969754797" MODIFIED="1429431558538" TEXT="Haskell">
+<node CREATED="1429431962657" ID="ID_449766031" MODIFIED="1429431968588" TEXT="predictablity"/>
+</node>
+<node CREATED="1429431559118" ID="ID_300918625" MODIFIED="1429431566720" TEXT="typed assembler language">
+<node CREATED="1429431955732" ID="ID_742978874" MODIFIED="1429431960754" TEXT="easy to read"/>
+</node>
+<node CREATED="1429431572660" ID="ID_671541602" MODIFIED="1429431586185" TEXT="Object oriented language"/>
+</node>
+<node CREATED="1429431701332" ID="ID_1143524316" MODIFIED="1429431718218" POSITION="left" TEXT="how to handle exisiting software">
+<node CREATED="1429431719790" ID="ID_288986262" MODIFIED="1429431724701" TEXT="conversion"/>
+<node CREATED="1429431726205" ID="ID_177890781" MODIFIED="1429431728564" TEXT="refinement"/>
+</node>
+<node CREATED="1429431229531" ID="ID_1147836106" MODIFIED="1429431233980" POSITION="left" TEXT="What we have done">
+<node CREATED="1429431234320" ID="ID_845016571" MODIFIED="1429431241755" TEXT="compiler on GCC and LLVM"/>
+<node CREATED="1429431887518" ID="ID_1320085585" MODIFIED="1429431903263" TEXT="Cerium Task Manager"/>
+<node CREATED="1429431623393" ID="ID_168633775" MODIFIED="1429431635112" TEXT="Alice distributed computation framework"/>
+</node>
+</node>
+</map>
Binary file fig/Duality.graffle has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fig/Duality.svg	Sun May 10 13:11:51 2015 +0900
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="68 25 267 512" width="267pt" height="512pt" xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata> Produced by OmniGraffle 6.2.1 <dc:date>2015-05-10 01:31:03 +0000</dc:date></metadata><defs><font-face font-family="Helvetica Neue" font-size="7" panose-1="2 0 5 3 0 0 0 2 0 4" units-per-em="1000" underline-position="-100" underline-thickness="50" slope="0" x-height="517" cap-height="714" ascent="951.99585" descent="-212.99744" font-weight="500"><font-face-src><font-face-name name="HelveticaNeue"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M 8 0 L 0 -3 L 0 3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><font-face font-family="Hiragino Kaku Gothic ProN" font-size="16" panose-1="2 11 3 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="63" slope="0" x-height="545" cap-height="766" ascent="880.0018" descent="-120.00024" font-weight="400"><font-face-src><font-face-name name="HiraKakuProN-W3"/></font-face-src></font-face><font-face font-family="Helvetica Neue" font-size="16" panose-1="2 0 5 3 0 0 0 2 0 4" units-per-em="1000" underline-position="-100" underline-thickness="50" slope="0" x-height="517" cap-height="714" ascent="951.99585" descent="-212.99744" font-weight="500"><font-face-src><font-face-name name="HelveticaNeue"/></font-face-src></font-face><font-face font-family="Lucida Grande" font-size="16" panose-1="2 11 6 0 4 5 2 2 2 4" units-per-em="1000" underline-position="-97.65625" underline-thickness="48.828125" slope="0" x-height="530.27344" cap-height="722.65625" ascent="966.7969" descent="-210.9375" font-weight="500"><font-face-src><font-face-name name="LucidaGrande"/></font-face-src></font-face></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 1</title><rect fill="white" width="756" height="553.00002"/><g><title>Layer 1</title><circle cx="126" cy="207" r="27.000043" fill="white"/><circle cx="126" cy="207" r="27.000043" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(109.4 203)" fill="black"><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" fill="black" x="1.6935" y="7" textLength="29.813">DataGear</tspan></text><circle cx="126" cy="387" r="27.000043" fill="white"/><circle cx="126" cy="387" r="27.000043" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(109.4 383)" fill="black"><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x="1.6935" y="7" textLength="29.813">DataGear</tspan></text><circle cx="297" cy="207" r="27.000043" fill="white"/><circle cx="297" cy="207" r="27.000043" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(280.4 203)" fill="black"><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x="1.6935" y="7" textLength="29.813">DataGear</tspan></text><line x1="144.59634" y1="367.4249" x2="271.58504" y2="233.75259" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(174.46094 284.5)" fill="black"><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x=".428" y="7" textLength="32.144">CodeGear</tspan></text><line x1="126" y1="359.99999" x2="126" y2="243.90001" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(82.5625 287)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="16" font-weight="400" x=".06" y="15" textLength="16">η</tspan><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="16.06" y="15" textLength="16.88">(a)</tspan></text><text transform="translate(222.5625 315)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".132" y="15" textLength="4.736">f</tspan></text><line x1="153.00001" y1="207" x2="260.09999" y2="207" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><text transform="translate(190.66406 180)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".396" y="15" textLength="30.208">U(f*)</tspan></text><text transform="translate(104 504)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".384" y="15" textLength="79.232">f = U(f*)η(a)</tspan></text><circle cx="126" cy="63" r="27.000043" fill="white"/><circle cx="126" cy="63" r="27.000043" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(109.4 59)" fill="black"><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x=".528" y="7" textLength="32.144">CodeGear</tspan></text><circle cx="297" cy="63" r="27.000043" fill="white"/><circle cx="297" cy="63" r="27.000043" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(280.4 59)" fill="black"><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x=".528" y="7" textLength="32.144">CodeGear</tspan></text><line x1="153.00001" y1="63" x2="260.09999" y2="63" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(184.96094 50.5)" fill="black"><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x=".0935" y="7" textLength="29.813">DataGear</tspan></text><text transform="translate(192.5625 72)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".316" y="15" textLength="10.368">f*</tspan></text><text transform="translate(113 90)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".468" y="15" textLength="26.064">F(a)</tspan></text><text transform="translate(292.5 90)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".256" y="15" textLength="9.488">b</tspan></text><text transform="translate(107.5 153)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".192" y="15" textLength="37.616">UF(a)</tspan></text><text transform="translate(282.5 423)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".336" y="15" textLength="29.328">U(b)</tspan></text><text transform="translate(122 423)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".204" y="15" textLength="8.592">a</tspan></text><text transform="translate(282.5 153)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".336" y="15" textLength="29.328">U(b)</tspan></text><text transform="translate(104 450)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".156" y="15" textLength="56.624">η(a) : a  </tspan><tspan font-family="Lucida Grande" font-size="16" font-weight="500" x="56.78" y="15" textLength="16">→</tspan><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="72.78" y="15" textLength="42.064"> UF(a)</tspan></text><text transform="translate(107 477)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".092" y="15" textLength="27.552">U:C</tspan><tspan font-family="Lucida Grande" font-size="16" font-weight="500" x="27.644" y="15" textLength="16">→</tspan><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="43.644" y="15" textLength="11.264">D</tspan></text><text transform="translate(187 477)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".052" y="15" textLength="29.344">F: D</tspan><tspan font-family="Lucida Grande" font-size="16" font-weight="500" x="29.396" y="15" textLength="16">→</tspan><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="45.396" y="15" textLength="11.552">C</tspan></text></g></g></svg>
Binary file fig/codeGear.graffle has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fig/codeGear.svg	Sun May 10 13:11:51 2015 +0900
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="106 261 247 102" width="247pt" height="102pt" xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata> Produced by OmniGraffle 6.2.1 <dc:date>2015-05-10 01:28:32 +0000</dc:date></metadata><defs><font-face font-family="Helvetica Neue" font-size="7" panose-1="2 0 5 3 0 0 0 2 0 4" units-per-em="1000" underline-position="-100" underline-thickness="50" slope="0" x-height="517" cap-height="714" ascent="951.99585" descent="-212.99744" font-weight="500"><font-face-src><font-face-name name="HelveticaNeue"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M 8 0 L 0 -3 L 0 3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><font-face font-family="Helvetica Neue" font-size="16" panose-1="2 0 5 3 0 0 0 2 0 4" units-per-em="1000" underline-position="-100" underline-thickness="50" slope="0" x-height="517" cap-height="714" ascent="951.99585" descent="-212.99744" font-weight="500"><font-face-src><font-face-name name="HelveticaNeue"/></font-face-src></font-face></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 1</title><rect fill="white" width="576.00002" height="733"/><g><title>Layer 1</title><circle cx="144" cy="303" r="27.000043" fill="white"/><circle cx="144" cy="303" r="27.000043" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(127.4 299)" fill="black"><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x="1.6935" y="7" textLength="29.813">DataGear</tspan></text><circle cx="315" cy="303" r="27.000043" fill="white"/><circle cx="315" cy="303" r="27.000043" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(298.4 299)" fill="black"><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x="1.6935" y="7" textLength="29.813">DataGear</tspan></text><line x1="171.00001" y1="303" x2="278.09999" y2="303" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><text transform="translate(212.66406 276)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".132" y="15" textLength="4.736">f</tspan></text><text transform="translate(140 330)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".356" y="15" textLength="8.288">x</tspan></text><text transform="translate(312 330)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="8">y</tspan></text><text transform="translate(202.5 311)" fill="black"><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x=".928" y="7" textLength="32.144">CodeGear</tspan><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x=".2735" y="15" textLength="4.403">fr</tspan><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x="4.5505" y="15" textLength="29.176">om x to y</tspan></text></g></g></svg>
Binary file fig/dataGear.graffle has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fig/dataGear.svg	Sun May 10 13:11:51 2015 +0900
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="106 268 247 98" width="247pt" height="98pt" xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata> Produced by OmniGraffle 6.2.1 <dc:date>2015-05-10 01:27:54 +0000</dc:date></metadata><defs><font-face font-family="Helvetica Neue" font-size="7" panose-1="2 0 5 3 0 0 0 2 0 4" units-per-em="1000" underline-position="-100" underline-thickness="50" slope="0" x-height="517" cap-height="714" ascent="951.99585" descent="-212.99744" font-weight="500"><font-face-src><font-face-name name="HelveticaNeue"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M 8 0 L 0 -3 L 0 3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><font-face font-family="Helvetica Neue" font-size="16" panose-1="2 0 5 3 0 0 0 2 0 4" units-per-em="1000" underline-position="-100" underline-thickness="50" slope="0" x-height="517" cap-height="714" ascent="951.99585" descent="-212.99744" font-weight="500"><font-face-src><font-face-name name="HelveticaNeue"/></font-face-src></font-face></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 1</title><rect fill="white" width="576.00002" height="733"/><g><title>Layer 1</title><circle cx="144" cy="306" r="27.000043" fill="white"/><circle cx="144" cy="306" r="27.000043" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(127.4 298)" fill="black"><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x=".528" y="7" textLength="32.144">CodeGear</tspan><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x="1.466" y="15" textLength="30.268">oupput=a</tspan></text><circle cx="315" cy="306" r="27.000043" fill="white"/><circle cx="315" cy="306" r="27.000043" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(298.4 298)" fill="black"><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x=".528" y="7" textLength="32.144">CodeGear</tspan><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x="4.5775" y="15" textLength="24.045">input=b</tspan></text><line x1="171.00001" y1="306" x2="278.09999" y2="306" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(202.96094 293.5)" fill="black"><tspan font-family="Helvetica Neue" font-size="7" font-weight="500" x=".0935" y="7" textLength="29.813">DataGear</tspan></text><text transform="translate(213.5625 315)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".132" y="15" textLength="4.736">f</tspan></text><text transform="translate(140 333)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".204" y="15" textLength="8.592">a</tspan></text><text transform="translate(310.5 333)" fill="black"><tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".256" y="15" textLength="9.488">b</tspan></text></g></g></svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gears.ind	Sun May 10 13:11:51 2015 +0900
@@ -0,0 +1,23 @@
+-title: Gears: Low level Formal Representation of code and data
+
+--abstract:
+
+--Reliable computation and predictablity
+
+Various softwares are used in real world. Each of them have to work in a reliable way. A peice of devie contains
+millons of lines of code. These programs are written in C, Haskell and so on. The unit of computation of
+conventional programming language is of course a function call.
+To assure its reliability, the computation of a function should be predictable, but unfortunately
+a function may call another functions and it comes back to the original function. 
+Proof theory such as Hoare Logic or model checking method is used to make the prediction, such as
+zero divide is never occured in a function.
+
+We propose new unit of computation, data segments and code segments. Computations in these segments are finite and
+predictable. We sometimes call these gears. A set of gears make programming system. This unit is larger then
+an machine instruction and smaller than a function call. Data segments and code segments are connected by
+meta data segments and meta code segments. The idea is construct system as a set of predictable unit of
+computation.
+
+--Definition of data segment and code segment
+
+We implment our Gears language in LLVM\cite{LLVM},