0
|
1 <map version="freeplane 1.8.0">
|
|
2 <!--To view this file, download free mind mapping software Freeplane from http://freeplane.sourceforge.net -->
|
18
|
3 <node TEXT="GearsOSのAPI" FOLDED="false" ID="ID_1391122564" CREATED="1607406106629" MODIFIED="1611909750513" STYLE="oval">
|
0
|
4 <font SIZE="18"/>
|
5
|
5 <hook NAME="MapStyle" zoom="1.5">
|
0
|
6 <properties edgeColorConfiguration="#808080ff,#ff0000ff,#0000ffff,#00ff00ff,#ff00ffff,#00ffffff,#7c0000ff,#00007cff,#007c00ff,#7c007cff,#007c7cff,#7c7c00ff" fit_to_viewport="false"/>
|
|
7
|
|
8 <map_styles>
|
|
9 <stylenode LOCALIZED_TEXT="styles.root_node" STYLE="oval" UNIFORM_SHAPE="true" VGAP_QUANTITY="24.0 pt">
|
|
10 <font SIZE="24"/>
|
|
11 <stylenode LOCALIZED_TEXT="styles.predefined" POSITION="right" STYLE="bubble">
|
|
12 <stylenode LOCALIZED_TEXT="default" ICON_SIZE="12.0 pt" COLOR="#000000" STYLE="fork">
|
|
13 <font NAME="SansSerif" SIZE="10" BOLD="false" ITALIC="false"/>
|
|
14 </stylenode>
|
|
15 <stylenode LOCALIZED_TEXT="defaultstyle.details"/>
|
|
16 <stylenode LOCALIZED_TEXT="defaultstyle.attributes">
|
|
17 <font SIZE="9"/>
|
|
18 </stylenode>
|
|
19 <stylenode LOCALIZED_TEXT="defaultstyle.note" COLOR="#000000" BACKGROUND_COLOR="#ffffff" TEXT_ALIGN="LEFT"/>
|
|
20 <stylenode LOCALIZED_TEXT="defaultstyle.floating">
|
|
21 <edge STYLE="hide_edge"/>
|
|
22 <cloud COLOR="#f0f0f0" SHAPE="ROUND_RECT"/>
|
|
23 </stylenode>
|
|
24 </stylenode>
|
|
25 <stylenode LOCALIZED_TEXT="styles.user-defined" POSITION="right" STYLE="bubble">
|
|
26 <stylenode LOCALIZED_TEXT="styles.topic" COLOR="#18898b" STYLE="fork">
|
|
27 <font NAME="Liberation Sans" SIZE="10" BOLD="true"/>
|
|
28 </stylenode>
|
|
29 <stylenode LOCALIZED_TEXT="styles.subtopic" COLOR="#cc3300" STYLE="fork">
|
|
30 <font NAME="Liberation Sans" SIZE="10" BOLD="true"/>
|
|
31 </stylenode>
|
|
32 <stylenode LOCALIZED_TEXT="styles.subsubtopic" COLOR="#669900">
|
|
33 <font NAME="Liberation Sans" SIZE="10" BOLD="true"/>
|
|
34 </stylenode>
|
|
35 <stylenode LOCALIZED_TEXT="styles.important">
|
|
36 <icon BUILTIN="yes"/>
|
|
37 </stylenode>
|
|
38 </stylenode>
|
|
39 <stylenode LOCALIZED_TEXT="styles.AutomaticLayout" POSITION="right" STYLE="bubble">
|
|
40 <stylenode LOCALIZED_TEXT="AutomaticLayout.level.root" COLOR="#000000" STYLE="oval" SHAPE_HORIZONTAL_MARGIN="10.0 pt" SHAPE_VERTICAL_MARGIN="10.0 pt">
|
|
41 <font SIZE="18"/>
|
|
42 </stylenode>
|
|
43 <stylenode LOCALIZED_TEXT="AutomaticLayout.level,1" COLOR="#0033ff">
|
|
44 <font SIZE="16"/>
|
|
45 </stylenode>
|
|
46 <stylenode LOCALIZED_TEXT="AutomaticLayout.level,2" COLOR="#00b439">
|
|
47 <font SIZE="14"/>
|
|
48 </stylenode>
|
|
49 <stylenode LOCALIZED_TEXT="AutomaticLayout.level,3" COLOR="#990000">
|
|
50 <font SIZE="12"/>
|
|
51 </stylenode>
|
|
52 <stylenode LOCALIZED_TEXT="AutomaticLayout.level,4" COLOR="#111111">
|
|
53 <font SIZE="10"/>
|
|
54 </stylenode>
|
|
55 <stylenode LOCALIZED_TEXT="AutomaticLayout.level,5"/>
|
|
56 <stylenode LOCALIZED_TEXT="AutomaticLayout.level,6"/>
|
|
57 <stylenode LOCALIZED_TEXT="AutomaticLayout.level,7"/>
|
|
58 <stylenode LOCALIZED_TEXT="AutomaticLayout.level,8"/>
|
|
59 <stylenode LOCALIZED_TEXT="AutomaticLayout.level,9"/>
|
|
60 <stylenode LOCALIZED_TEXT="AutomaticLayout.level,10"/>
|
|
61 <stylenode LOCALIZED_TEXT="AutomaticLayout.level,11"/>
|
|
62 </stylenode>
|
|
63 </stylenode>
|
|
64 </map_styles>
|
|
65 </hook>
|
1
|
66 <hook NAME="AutomaticEdgeColor" COUNTER="6" RULE="ON_BRANCH_CREATION"/>
|
0
|
67 <node TEXT="プログラムの信頼性を保証するのは難しい" POSITION="right" ID="ID_182717011" CREATED="1607406127549" MODIFIED="1607409819862">
|
|
68 <edge COLOR="#ff0000"/>
|
|
69 <node TEXT="テストプログラムで全ては証明できない" ID="ID_1642945466" CREATED="1607406143787" MODIFIED="1607409818771"/>
|
|
70 <node TEXT="証明でアプローチしたい" ID="ID_328449335" CREATED="1607409771301" MODIFIED="1607409837716">
|
|
71 <node TEXT="agda" ID="ID_286995188" CREATED="1607409838103" MODIFIED="1607409841927"/>
|
|
72 <node TEXT="coq" ID="ID_104059977" CREATED="1607409842548" MODIFIED="1607409844388"/>
|
|
73 <node TEXT="モデル記述言語" ID="ID_1601862702" CREATED="1607409849304" MODIFIED="1607409856021"/>
|
|
74 </node>
|
|
75 <node TEXT="証明可能かつ動く実装が出来るのは限られる" ID="ID_1135633058" CREATED="1607409857312" MODIFIED="1607409869965">
|
|
76 <node TEXT="z" ID="ID_1351484358" CREATED="1607409870121" MODIFIED="1607409874526"/>
|
|
77 <node TEXT="C言語のように自由にプログラミングできない" ID="ID_1179551403" CREATED="1607409874775" MODIFIED="1607409894985"/>
|
|
78 </node>
|
|
79 </node>
|
|
80 <node TEXT="OSの信頼性" POSITION="right" ID="ID_14101489" CREATED="1607406133236" MODIFIED="1607410076159">
|
|
81 <edge COLOR="#0000ff"/>
|
|
82 <node TEXT="OS側の信頼性は高く保証される必要がある" ID="ID_415782527" CREATED="1607409802404" MODIFIED="1607409803889"/>
|
|
83 <node TEXT="アプリケーションはOSを前提にしている" ID="ID_1097881899" CREATED="1607409804234" MODIFIED="1607409808044"/>
|
|
84 <node TEXT="高い拡張性も持つ必要がある" ID="ID_942895988" CREATED="1607409902688" MODIFIED="1607409923018"/>
|
|
85 <node TEXT="証明可能かつ動くOSがほしい" ID="ID_1872416127" CREATED="1607409986379" MODIFIED="1607410002919"/>
|
|
86 <node TEXT="Gears/CbCで解決したい" ID="ID_1762270235" CREATED="1607410009412" MODIFIED="1607410076159">
|
|
87 <node TEXT="CodeGear" ID="ID_1507339587" CREATED="1607410015920" MODIFIED="1607410018257"/>
|
|
88 <node TEXT="MetaCodeGear" ID="ID_775893838" CREATED="1607410018670" MODIFIED="1607410023745">
|
|
89 <node TEXT="Metaで証明を挟む" ID="ID_566158152" CREATED="1607410026768" MODIFIED="1607410033878"/>
|
|
90 <node TEXT="信頼性の保証はMetaで行う" ID="ID_4745358" CREATED="1607410034270" MODIFIED="1607410045242"/>
|
|
91 </node>
|
|
92 <node TEXT="Agda <-> CbCで相互変換をする" ID="ID_1273550084" CREATED="1607410085979" MODIFIED="1607410097425">
|
|
93 <node TEXT="agdaからCbCの一方方向?" ID="ID_41779345" CREATED="1607410098476" MODIFIED="1607410108129"/>
|
|
94 </node>
|
|
95 </node>
|
|
96 </node>
|
1
|
97 <node TEXT="GearsOS" POSITION="left" ID="ID_1651648479" CREATED="1607406135887" MODIFIED="1609837810229">
|
0
|
98 <edge COLOR="#00ff00"/>
|
1
|
99 <node TEXT="GearsスタイルからCbCへの変換" ID="ID_1244075601" CREATED="1609837792112" MODIFIED="1609837836142">
|
|
100 <node TEXT="stubの作成" ID="ID_218099555" CREATED="1609837838247" MODIFIED="1609837842235"/>
|
|
101 <node TEXT="メタ計算の作成" ID="ID_1788852251" CREATED="1609837842671" MODIFIED="1609837852512"/>
|
|
102 <node TEXT="煩雑なCbCの変換" ID="ID_497430972" CREATED="1609837852929" MODIFIED="1609837862907"/>
|
|
103 <node TEXT="Interfaceの型チェック" ID="ID_1508103733" CREATED="1609837868606" MODIFIED="1609837880782">
|
|
104 <node TEXT="未実装のCodeGearがある場合はエラー" ID="ID_1847394451" CREATED="1609837885333" MODIFIED="1609837895351"/>
|
|
105 <node TEXT="対応するコンストラクタも自動生成" ID="ID_1786557666" CREATED="1609837896506" MODIFIED="1609837908386"/>
|
|
106 </node>
|
|
107 <node TEXT="" ID="ID_946596406" CREATED="1609837882084" MODIFIED="1609837882084"/>
|
|
108 </node>
|
|
109 <node TEXT="CbCで記述する" ID="ID_641565429" CREATED="1609837816689" MODIFIED="1609837822732"/>
|
|
110 <node TEXT="Gearsプログラミング支援" ID="ID_617663523" CREATED="1609837930761" MODIFIED="1609837939906">
|
|
111 <node TEXT="Perlスクリプトが複数" ID="ID_1656547910" CREATED="1609837941674" MODIFIED="1609837948147"/>
|
|
112 <node TEXT="static_gen_header.pl" ID="ID_345097738" CREATED="1609837948606" MODIFIED="1610798814512">
|
|
113 <node TEXT="ヘッダーファイルの雛形生成" ID="ID_1000317681" CREATED="1610798802760" MODIFIED="1610798810313"/>
|
|
114 <node TEXT="Interface/Implを作成" ID="ID_35780263" CREATED="1610798810707" MODIFIED="1610798824117"/>
|
|
115 <node TEXT="型構造の確認" ID="ID_1868906930" CREATED="1610798824540" MODIFIED="1610798834449"/>
|
|
116 </node>
|
|
117 <node TEXT="check" ID="ID_1489454833" CREATED="1610798837901" MODIFIED="1610798839720">
|
|
118 <node TEXT="context.hへの変換を確認" ID="ID_1374126086" CREATED="1610798842586" MODIFIED="1610798851232"/>
|
|
119 <node TEXT="ユーザーデバッグ用" ID="ID_1296414310" CREATED="1610798851801" MODIFIED="1610798857209"/>
|
|
120 <node TEXT="プログラマレベルでもデバッグ可能" ID="ID_1841644186" CREATED="1610798857588" MODIFIED="1610798869511"/>
|
|
121 </node>
|
|
122 <node TEXT="trans_impl.pl" ID="ID_92911291" CREATED="1610798840032" MODIFIED="1610798876883">
|
|
123 <node TEXT="型からCbCを作成する" ID="ID_429966766" CREATED="1610798877807" MODIFIED="1610798886059"/>
|
|
124 <node TEXT="入力はImplのヘッダファイル" ID="ID_1539817420" CREATED="1610798886594" MODIFIED="1610798905341"/>
|
|
125 <node TEXT="コンストラクタも自動生成される" ID="ID_975576594" CREATED="1610798905698" MODIFIED="1610798913421">
|
|
126 <node TEXT="削除しても問題ない" ID="ID_69222688" CREATED="1610798914473" MODIFIED="1610798926796"/>
|
|
127 <node TEXT="ovverwriteする場合は直接編集" ID="ID_1735584338" CREATED="1610798927168" MODIFIED="1610798941091"/>
|
|
128 </node>
|
|
129 <node TEXT="ヘッダファイル側を更新した場合は、アップデートされる" ID="ID_255644807" CREATED="1610798955704" MODIFIED="1610798976628"/>
|
|
130 </node>
|
|
131 </node>
|
18
|
132 <node TEXT="Interface" ID="ID_111711637" CREATED="1611909760905" MODIFIED="1611909768652">
|
|
133 <node TEXT="モジュール化のしくみ" ID="ID_270020594" CREATED="1611909769914" MODIFIED="1611909774458">
|
|
134 <node TEXT="実装と分離" ID="ID_899199598" CREATED="1611909811289" MODIFIED="1611909815346"/>
|
|
135 <node TEXT="実装内で使いたい値はImplに書き込む" ID="ID_1283189873" CREATED="1611909815846" MODIFIED="1611909831274"/>
|
|
136 </node>
|
|
137 <node TEXT="goto metaする際の引数書き込み" ID="ID_148149632" CREATED="1611909774937" MODIFIED="1611909789400">
|
|
138 <node TEXT="Contextに格納" ID="ID_169852895" CREATED="1611909790577" MODIFIED="1611909797381"/>
|
|
139 <node TEXT="enumの番号で管理" ID="ID_1116903119" CREATED="1611909797944" MODIFIED="1611909802303"/>
|
|
140 </node>
|
|
141 <node TEXT="Interfaceの型" ID="ID_618159776" CREATED="1611909839730" MODIFIED="1611909844737">
|
|
142 <node TEXT="headerファイルで定義(昔から" ID="ID_1530280048" CREATED="1611909847731" MODIFIED="1611909858088"/>
|
|
143 <node TEXT="Implの型は不定" ID="ID_1409555565" CREATED="1611909858716" MODIFIED="1611909863810">
|
|
144 <node TEXT="contextに直接書き込み(以前)" ID="ID_266895831" CREATED="1611909866488" MODIFIED="1611909876149"/>
|
|
145 <node TEXT="headerファイルを作成(今回)" ID="ID_45565008" CREATED="1611909876480" MODIFIED="1611909887165"/>
|
|
146 <node TEXT="実装の型はCbCで指定する" ID="ID_228155313" CREATED="1611909890897" MODIFIED="1611909902405"/>
|
|
147 </node>
|
|
148 </node>
|
|
149 <node TEXT="" ID="ID_659656641" CREATED="1611909845049" MODIFIED="1611909845049"/>
|
|
150 </node>
|
1
|
151 </node>
|
5
|
152 <node TEXT="GearsOSのトランスコンパイラ" POSITION="left" ID="ID_1641267398" CREATED="1609837808837" MODIFIED="1611555634865">
|
1
|
153 <edge COLOR="#7c0000"/>
|
|
154 <node TEXT="context" ID="ID_626163141" CREATED="1610799004456" MODIFIED="1610799006023">
|
|
155 <node TEXT="すべてのCodeGearとDataGearの組" ID="ID_116856033" CREATED="1610799007096" MODIFIED="1610799015889"/>
|
|
156 <node TEXT="使われるデータ構造をすべて管理" ID="ID_1431340983" CREATED="1610799016422" MODIFIED="1610799025839"/>
|
|
157 <node TEXT="" ID="ID_397901455" CREATED="1610799028369" MODIFIED="1610799028369"/>
|
|
158 </node>
|
|
159 <node TEXT="contextの生成" ID="ID_142064842" CREATED="1610799037651" MODIFIED="1610799048671">
|
|
160 <node TEXT=".cbcで使われている型から作成" ID="ID_1264134662" CREATED="1610799044277" MODIFIED="1610799062228"/>
|
|
161 <node TEXT="従来は手書き" ID="ID_1021123996" CREATED="1610799062640" MODIFIED="1610799069785"/>
|
|
162 <node TEXT="__codeをenum Codeに変換する" ID="ID_1920059346" CREATED="1610799076485" MODIFIED="1610799095429"/>
|
|
163 </node>
|
5
|
164 <node TEXT="trans_impl" ID="ID_445569997" CREATED="1610799041195" MODIFIED="1611555644361">
|
|
165 <node TEXT="既存言語" ID="ID_1480614077" CREATED="1611555659875" MODIFIED="1611555663249">
|
|
166 <node TEXT="Java" ID="ID_360165652" CREATED="1611555663771" MODIFIED="1611555665765">
|
|
167 <node TEXT="満たしていないとコンパイルエラー" ID="ID_93338973" CREATED="1611555670092" MODIFIED="1611555681132"/>
|
|
168 <node TEXT="IntelliJ IDE" ID="ID_1756918635" CREATED="1611555681569" MODIFIED="1611555687306"/>
|
|
169 </node>
|
|
170 <node TEXT="golang" ID="ID_1760072778" CREATED="1611555666055" MODIFIED="1611555667943">
|
|
171 <node TEXT="コンパイルエラー" ID="ID_760702846" CREATED="1611555689920" MODIFIED="1611555693550"/>
|
|
172 <node TEXT="impl" ID="ID_213890247" CREATED="1611555693966" MODIFIED="1611555697202"/>
|
|
173 <node TEXT="vscode" ID="ID_1701370642" CREATED="1611555697471" MODIFIED="1611555698810"/>
|
|
174 </node>
|
|
175 </node>
|
|
176 <node TEXT="GearsOS" ID="ID_1562949372" CREATED="1611555702818" MODIFIED="1611555706688">
|
|
177 <node TEXT="今回作成" ID="ID_1375511077" CREATED="1611555707865" MODIFIED="1611555714076"/>
|
|
178 <node TEXT="Implの型をいれれば良い" ID="ID_1933132029" CREATED="1611555714450" MODIFIED="1611555722838"/>
|
|
179 <node TEXT="Interfaceは自動で検索 or 静的に指定" ID="ID_1314051121" CREATED="1611555723253" MODIFIED="1611555736752"/>
|
|
180 </node>
|
|
181 </node>
|
18
|
182 <node TEXT="generate_stub.pl" ID="ID_1288980250" CREATED="1611909051834" MODIFIED="1611909057701">
|
|
183 <node TEXT="Cmakeから呼び出される" ID="ID_1187142003" CREATED="1611909060932" MODIFIED="1611909069108"/>
|
|
184 <node TEXT="Gears(*.cbc) -> CbC (*.c)への変換系" ID="ID_415006908" CREATED="1611909069563" MODIFIED="1611909083397">
|
|
185 <node TEXT="各CbCファイルごとに呼び出される" ID="ID_997384321" CREATED="1611909092632" MODIFIED="1611909103080"/>
|
|
186 <node TEXT="変換結果はオプションで指定" ID="ID_1460216686" CREATED="1611909103658" MODIFIED="1611909113324"/>
|
|
187 <node TEXT="以前は単純なスクリプト?" ID="ID_1549402452" CREATED="1611909113609" MODIFIED="1611909127510"/>
|
|
188 <node TEXT="" ID="ID_260554999" CREATED="1611909407051" MODIFIED="1611909407051"/>
|
0
|
189 </node>
|
18
|
190 <node TEXT="Interfaceの解析" ID="ID_1056610181" CREATED="1611909083727" MODIFIED="1611909396270">
|
|
191 <node TEXT="ライブラリを使用" ID="ID_429244613" CREATED="1611909410133" MODIFIED="1611909419186"/>
|
|
192 <node TEXT="使っているInterfaceのメソッドの整合性" ID="ID_1245044371" CREATED="1611909419560" MODIFIED="1611909434683"/>
|
|
193 <node TEXT="out put valueがあるかどうかの確認" ID="ID_1713446258" CREATED="1611909435120" MODIFIED="1611909448213"/>
|
|
194 <node TEXT="method nameの自動変換" ID="ID_1730605261" CREATED="1611909459337" MODIFIED="1611909470188"/>
|
|
195 <node TEXT="construcorの自動生成" ID="ID_273908561" CREATED="1611909470563" MODIFIED="1611909477799"/>
|
|
196 </node>
|
|
197 <node TEXT="use warnings, use strict" ID="ID_1085657332" CREATED="1611909490015" MODIFIED="1611909496148"/>
|
|
198 </node>
|
|
199 </node>
|
|
200 <node TEXT="GearsOS" POSITION="left" ID="ID_1469562629" CREATED="1607410324461" MODIFIED="1611909754800">
|
0
|
201 <edge COLOR="#ff00ff"/>
|
|
202 </node>
|
|
203 <node TEXT="GearsのAPI" POSITION="right" ID="ID_164532708" CREATED="1607410326821" MODIFIED="1607410339785">
|
|
204 <edge COLOR="#00ffff"/>
|
|
205 <node TEXT="context" ID="ID_221503071" CREATED="1607410340389" MODIFIED="1607410345184">
|
|
206 <node TEXT="createContext" ID="ID_1897722231" CREATED="1607410347503" MODIFIED="1607410350601">
|
|
207 <node TEXT="コンストラクタに相当する" ID="ID_1993397173" CREATED="1607410359489" MODIFIED="1607410367244"/>
|
|
208 <node TEXT="構造体の初期化" ID="ID_145693211" CREATED="1607410375763" MODIFIED="1607410419367"/>
|
|
209 <node TEXT="enumの設定" ID="ID_929172173" CREATED="1607410419707" MODIFIED="1607410424172"/>
|
|
210 <node TEXT="現在は自動生成" ID="ID_1917526305" CREATED="1607410464668" MODIFIED="1607410469829"/>
|
|
211 </node>
|
|
212 <node TEXT="Meta計算" ID="ID_1460127604" CREATED="1607410350903" MODIFIED="1607410357673">
|
|
213 <node TEXT="Perlで生成される" ID="ID_1187821600" CREATED="1607410471357" MODIFIED="1607410475684"/>
|
|
214 <node TEXT="ほとんどはstub" ID="ID_1187732606" CREATED="1607410476147" MODIFIED="1607410491112">
|
|
215 <node TEXT="prevCodeGear" ID="ID_1246312422" CREATED="1607410492527" MODIFIED="1607410507814"/>
|
|
216 <node TEXT="contextから値を取り出す" ID="ID_539268101" CREATED="1607410508120" MODIFIED="1607410515547"/>
|
|
217 <node TEXT="contextへ値を積むのはCodeGearの末尾" ID="ID_958749071" CREATED="1607410521360" MODIFIED="1607410537963"/>
|
|
218 </node>
|
|
219 </node>
|
|
220 </node>
|
|
221 <node TEXT="" ID="ID_1080105775" CREATED="1607410345523" MODIFIED="1607410345523"/>
|
|
222 </node>
|
|
223 </node>
|
|
224 </map>
|