Mercurial > hg > Papers > 2021 > anatofuz-master
view mindmap.mm @ 155:6f940582768f
...
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 16 Feb 2021 15:21:11 +0900 |
parents | 0a326d53e572 |
children |
line wrap: on
line source
<map version="freeplane 1.8.0"> <!--To view this file, download free mind mapping software Freeplane from http://freeplane.sourceforge.net --> <node TEXT="GearsOSのAPI" FOLDED="false" ID="ID_1391122564" CREATED="1607406106629" MODIFIED="1611909750513" STYLE="oval"> <font SIZE="18"/> <hook NAME="MapStyle" zoom="1.5"> <properties edgeColorConfiguration="#808080ff,#ff0000ff,#0000ffff,#00ff00ff,#ff00ffff,#00ffffff,#7c0000ff,#00007cff,#007c00ff,#7c007cff,#007c7cff,#7c7c00ff" fit_to_viewport="false"/> <map_styles> <stylenode LOCALIZED_TEXT="styles.root_node" STYLE="oval" UNIFORM_SHAPE="true" VGAP_QUANTITY="24.0 pt"> <font SIZE="24"/> <stylenode LOCALIZED_TEXT="styles.predefined" POSITION="right" STYLE="bubble"> <stylenode LOCALIZED_TEXT="default" ICON_SIZE="12.0 pt" COLOR="#000000" STYLE="fork"> <font NAME="SansSerif" SIZE="10" BOLD="false" ITALIC="false"/> </stylenode> <stylenode LOCALIZED_TEXT="defaultstyle.details"/> <stylenode LOCALIZED_TEXT="defaultstyle.attributes"> <font SIZE="9"/> </stylenode> <stylenode LOCALIZED_TEXT="defaultstyle.note" COLOR="#000000" BACKGROUND_COLOR="#ffffff" TEXT_ALIGN="LEFT"/> <stylenode LOCALIZED_TEXT="defaultstyle.floating"> <edge STYLE="hide_edge"/> <cloud COLOR="#f0f0f0" SHAPE="ROUND_RECT"/> </stylenode> </stylenode> <stylenode LOCALIZED_TEXT="styles.user-defined" POSITION="right" STYLE="bubble"> <stylenode LOCALIZED_TEXT="styles.topic" COLOR="#18898b" STYLE="fork"> <font NAME="Liberation Sans" SIZE="10" BOLD="true"/> </stylenode> <stylenode LOCALIZED_TEXT="styles.subtopic" COLOR="#cc3300" STYLE="fork"> <font NAME="Liberation Sans" SIZE="10" BOLD="true"/> </stylenode> <stylenode LOCALIZED_TEXT="styles.subsubtopic" COLOR="#669900"> <font NAME="Liberation Sans" SIZE="10" BOLD="true"/> </stylenode> <stylenode LOCALIZED_TEXT="styles.important"> <icon BUILTIN="yes"/> </stylenode> </stylenode> <stylenode LOCALIZED_TEXT="styles.AutomaticLayout" POSITION="right" STYLE="bubble"> <stylenode LOCALIZED_TEXT="AutomaticLayout.level.root" COLOR="#000000" STYLE="oval" SHAPE_HORIZONTAL_MARGIN="10.0 pt" SHAPE_VERTICAL_MARGIN="10.0 pt"> <font SIZE="18"/> </stylenode> <stylenode LOCALIZED_TEXT="AutomaticLayout.level,1" COLOR="#0033ff"> <font SIZE="16"/> </stylenode> <stylenode LOCALIZED_TEXT="AutomaticLayout.level,2" COLOR="#00b439"> <font SIZE="14"/> </stylenode> <stylenode LOCALIZED_TEXT="AutomaticLayout.level,3" COLOR="#990000"> <font SIZE="12"/> </stylenode> <stylenode LOCALIZED_TEXT="AutomaticLayout.level,4" COLOR="#111111"> <font SIZE="10"/> </stylenode> <stylenode LOCALIZED_TEXT="AutomaticLayout.level,5"/> <stylenode LOCALIZED_TEXT="AutomaticLayout.level,6"/> <stylenode LOCALIZED_TEXT="AutomaticLayout.level,7"/> <stylenode LOCALIZED_TEXT="AutomaticLayout.level,8"/> <stylenode LOCALIZED_TEXT="AutomaticLayout.level,9"/> <stylenode LOCALIZED_TEXT="AutomaticLayout.level,10"/> <stylenode LOCALIZED_TEXT="AutomaticLayout.level,11"/> </stylenode> </stylenode> </map_styles> </hook> <hook NAME="AutomaticEdgeColor" COUNTER="6" RULE="ON_BRANCH_CREATION"/> <node TEXT="プログラムの信頼性を保証するのは難しい" POSITION="right" ID="ID_182717011" CREATED="1607406127549" MODIFIED="1607409819862"> <edge COLOR="#ff0000"/> <node TEXT="テストプログラムで全ては証明できない" ID="ID_1642945466" CREATED="1607406143787" MODIFIED="1607409818771"/> <node TEXT="証明でアプローチしたい" ID="ID_328449335" CREATED="1607409771301" MODIFIED="1607409837716"> <node TEXT="agda" ID="ID_286995188" CREATED="1607409838103" MODIFIED="1607409841927"/> <node TEXT="coq" ID="ID_104059977" CREATED="1607409842548" MODIFIED="1607409844388"/> <node TEXT="モデル記述言語" ID="ID_1601862702" CREATED="1607409849304" MODIFIED="1607409856021"/> </node> <node TEXT="証明可能かつ動く実装が出来るのは限られる" ID="ID_1135633058" CREATED="1607409857312" MODIFIED="1607409869965"> <node TEXT="z" ID="ID_1351484358" CREATED="1607409870121" MODIFIED="1607409874526"/> <node TEXT="C言語のように自由にプログラミングできない" ID="ID_1179551403" CREATED="1607409874775" MODIFIED="1607409894985"/> </node> </node> <node TEXT="OSの信頼性" POSITION="right" ID="ID_14101489" CREATED="1607406133236" MODIFIED="1607410076159"> <edge COLOR="#0000ff"/> <node TEXT="OS側の信頼性は高く保証される必要がある" ID="ID_415782527" CREATED="1607409802404" MODIFIED="1607409803889"/> <node TEXT="アプリケーションはOSを前提にしている" ID="ID_1097881899" CREATED="1607409804234" MODIFIED="1607409808044"/> <node TEXT="高い拡張性も持つ必要がある" ID="ID_942895988" CREATED="1607409902688" MODIFIED="1607409923018"/> <node TEXT="証明可能かつ動くOSがほしい" ID="ID_1872416127" CREATED="1607409986379" MODIFIED="1607410002919"/> <node TEXT="Gears/CbCで解決したい" ID="ID_1762270235" CREATED="1607410009412" MODIFIED="1607410076159"> <node TEXT="CodeGear" ID="ID_1507339587" CREATED="1607410015920" MODIFIED="1607410018257"/> <node TEXT="MetaCodeGear" ID="ID_775893838" CREATED="1607410018670" MODIFIED="1607410023745"> <node TEXT="Metaで証明を挟む" ID="ID_566158152" CREATED="1607410026768" MODIFIED="1607410033878"/> <node TEXT="信頼性の保証はMetaで行う" ID="ID_4745358" CREATED="1607410034270" MODIFIED="1607410045242"/> </node> <node TEXT="Agda <-> CbCで相互変換をする" ID="ID_1273550084" CREATED="1607410085979" MODIFIED="1607410097425"> <node TEXT="agdaからCbCの一方方向?" ID="ID_41779345" CREATED="1607410098476" MODIFIED="1607410108129"/> </node> </node> </node> <node TEXT="GearsOS" POSITION="left" ID="ID_1651648479" CREATED="1607406135887" MODIFIED="1609837810229"> <edge COLOR="#00ff00"/> <node TEXT="GearsスタイルからCbCへの変換" ID="ID_1244075601" CREATED="1609837792112" MODIFIED="1609837836142"> <node TEXT="stubの作成" ID="ID_218099555" CREATED="1609837838247" MODIFIED="1609837842235"/> <node TEXT="メタ計算の作成" ID="ID_1788852251" CREATED="1609837842671" MODIFIED="1609837852512"/> <node TEXT="煩雑なCbCの変換" ID="ID_497430972" CREATED="1609837852929" MODIFIED="1609837862907"/> <node TEXT="Interfaceの型チェック" ID="ID_1508103733" CREATED="1609837868606" MODIFIED="1609837880782"> <node TEXT="未実装のCodeGearがある場合はエラー" ID="ID_1847394451" CREATED="1609837885333" MODIFIED="1609837895351"/> <node TEXT="対応するコンストラクタも自動生成" ID="ID_1786557666" CREATED="1609837896506" MODIFIED="1609837908386"/> </node> <node TEXT="" ID="ID_946596406" CREATED="1609837882084" MODIFIED="1609837882084"/> </node> <node TEXT="CbCで記述する" ID="ID_641565429" CREATED="1609837816689" MODIFIED="1609837822732"/> <node TEXT="Gearsプログラミング支援" ID="ID_617663523" CREATED="1609837930761" MODIFIED="1609837939906"> <node TEXT="Perlスクリプトが複数" ID="ID_1656547910" CREATED="1609837941674" MODIFIED="1609837948147"/> <node TEXT="static_gen_header.pl" ID="ID_345097738" CREATED="1609837948606" MODIFIED="1610798814512"> <node TEXT="ヘッダーファイルの雛形生成" ID="ID_1000317681" CREATED="1610798802760" MODIFIED="1610798810313"/> <node TEXT="Interface/Implを作成" ID="ID_35780263" CREATED="1610798810707" MODIFIED="1610798824117"/> <node TEXT="型構造の確認" ID="ID_1868906930" CREATED="1610798824540" MODIFIED="1610798834449"/> </node> <node TEXT="check" ID="ID_1489454833" CREATED="1610798837901" MODIFIED="1610798839720"> <node TEXT="context.hへの変換を確認" ID="ID_1374126086" CREATED="1610798842586" MODIFIED="1610798851232"/> <node TEXT="ユーザーデバッグ用" ID="ID_1296414310" CREATED="1610798851801" MODIFIED="1610798857209"/> <node TEXT="プログラマレベルでもデバッグ可能" ID="ID_1841644186" CREATED="1610798857588" MODIFIED="1610798869511"/> </node> <node TEXT="trans_impl.pl" ID="ID_92911291" CREATED="1610798840032" MODIFIED="1610798876883"> <node TEXT="型からCbCを作成する" ID="ID_429966766" CREATED="1610798877807" MODIFIED="1610798886059"/> <node TEXT="入力はImplのヘッダファイル" ID="ID_1539817420" CREATED="1610798886594" MODIFIED="1610798905341"/> <node TEXT="コンストラクタも自動生成される" ID="ID_975576594" CREATED="1610798905698" MODIFIED="1610798913421"> <node TEXT="削除しても問題ない" ID="ID_69222688" CREATED="1610798914473" MODIFIED="1610798926796"/> <node TEXT="ovverwriteする場合は直接編集" ID="ID_1735584338" CREATED="1610798927168" MODIFIED="1610798941091"/> </node> <node TEXT="ヘッダファイル側を更新した場合は、アップデートされる" ID="ID_255644807" CREATED="1610798955704" MODIFIED="1610798976628"/> </node> </node> <node TEXT="Interface" ID="ID_111711637" CREATED="1611909760905" MODIFIED="1611909768652"> <node TEXT="モジュール化のしくみ" ID="ID_270020594" CREATED="1611909769914" MODIFIED="1611909774458"> <node TEXT="実装と分離" ID="ID_899199598" CREATED="1611909811289" MODIFIED="1611909815346"/> <node TEXT="実装内で使いたい値はImplに書き込む" ID="ID_1283189873" CREATED="1611909815846" MODIFIED="1611909831274"/> </node> <node TEXT="goto metaする際の引数書き込み" ID="ID_148149632" CREATED="1611909774937" MODIFIED="1611909789400"> <node TEXT="Contextに格納" ID="ID_169852895" CREATED="1611909790577" MODIFIED="1611909797381"/> <node TEXT="enumの番号で管理" ID="ID_1116903119" CREATED="1611909797944" MODIFIED="1611909802303"/> </node> <node TEXT="Interfaceの型" ID="ID_618159776" CREATED="1611909839730" MODIFIED="1611909844737"> <node TEXT="headerファイルで定義(昔から" ID="ID_1530280048" CREATED="1611909847731" MODIFIED="1611909858088"/> <node TEXT="Implの型は不定" ID="ID_1409555565" CREATED="1611909858716" MODIFIED="1611909863810"> <node TEXT="contextに直接書き込み(以前)" ID="ID_266895831" CREATED="1611909866488" MODIFIED="1611909876149"/> <node TEXT="headerファイルを作成(今回)" ID="ID_45565008" CREATED="1611909876480" MODIFIED="1611909887165"/> <node TEXT="実装の型はCbCで指定する" ID="ID_228155313" CREATED="1611909890897" MODIFIED="1611909902405"/> </node> </node> <node TEXT="" ID="ID_659656641" CREATED="1611909845049" MODIFIED="1611909845049"/> </node> </node> <node TEXT="GearsOSのトランスコンパイラ" POSITION="left" ID="ID_1641267398" CREATED="1609837808837" MODIFIED="1611555634865"> <edge COLOR="#7c0000"/> <node TEXT="context" ID="ID_626163141" CREATED="1610799004456" MODIFIED="1610799006023"> <node TEXT="すべてのCodeGearとDataGearの組" ID="ID_116856033" CREATED="1610799007096" MODIFIED="1610799015889"/> <node TEXT="使われるデータ構造をすべて管理" ID="ID_1431340983" CREATED="1610799016422" MODIFIED="1610799025839"/> <node TEXT="" ID="ID_397901455" CREATED="1610799028369" MODIFIED="1610799028369"/> </node> <node TEXT="contextの生成" ID="ID_142064842" CREATED="1610799037651" MODIFIED="1610799048671"> <node TEXT=".cbcで使われている型から作成" ID="ID_1264134662" CREATED="1610799044277" MODIFIED="1610799062228"/> <node TEXT="従来は手書き" ID="ID_1021123996" CREATED="1610799062640" MODIFIED="1610799069785"/> <node TEXT="__codeをenum Codeに変換する" ID="ID_1920059346" CREATED="1610799076485" MODIFIED="1610799095429"/> </node> <node TEXT="trans_impl" ID="ID_445569997" CREATED="1610799041195" MODIFIED="1611555644361"> <node TEXT="既存言語" ID="ID_1480614077" CREATED="1611555659875" MODIFIED="1611555663249"> <node TEXT="Java" ID="ID_360165652" CREATED="1611555663771" MODIFIED="1611555665765"> <node TEXT="満たしていないとコンパイルエラー" ID="ID_93338973" CREATED="1611555670092" MODIFIED="1611555681132"/> <node TEXT="IntelliJ IDE" ID="ID_1756918635" CREATED="1611555681569" MODIFIED="1611555687306"/> </node> <node TEXT="golang" ID="ID_1760072778" CREATED="1611555666055" MODIFIED="1611555667943"> <node TEXT="コンパイルエラー" ID="ID_760702846" CREATED="1611555689920" MODIFIED="1611555693550"/> <node TEXT="impl" ID="ID_213890247" CREATED="1611555693966" MODIFIED="1611555697202"/> <node TEXT="vscode" ID="ID_1701370642" CREATED="1611555697471" MODIFIED="1611555698810"/> </node> </node> <node TEXT="GearsOS" ID="ID_1562949372" CREATED="1611555702818" MODIFIED="1611555706688"> <node TEXT="今回作成" ID="ID_1375511077" CREATED="1611555707865" MODIFIED="1611555714076"/> <node TEXT="Implの型をいれれば良い" ID="ID_1933132029" CREATED="1611555714450" MODIFIED="1611555722838"/> <node TEXT="Interfaceは自動で検索 or 静的に指定" ID="ID_1314051121" CREATED="1611555723253" MODIFIED="1611555736752"/> </node> </node> <node TEXT="generate_stub.pl" ID="ID_1288980250" CREATED="1611909051834" MODIFIED="1611909057701"> <node TEXT="Cmakeから呼び出される" ID="ID_1187142003" CREATED="1611909060932" MODIFIED="1611909069108"/> <node TEXT="Gears(*.cbc) -> CbC (*.c)への変換系" ID="ID_415006908" CREATED="1611909069563" MODIFIED="1611909083397"> <node TEXT="各CbCファイルごとに呼び出される" ID="ID_997384321" CREATED="1611909092632" MODIFIED="1611909103080"/> <node TEXT="変換結果はオプションで指定" ID="ID_1460216686" CREATED="1611909103658" MODIFIED="1611909113324"/> <node TEXT="以前は単純なスクリプト?" ID="ID_1549402452" CREATED="1611909113609" MODIFIED="1611909127510"/> <node TEXT="" ID="ID_260554999" CREATED="1611909407051" MODIFIED="1611909407051"/> </node> <node TEXT="Interfaceの解析" ID="ID_1056610181" CREATED="1611909083727" MODIFIED="1611909396270"> <node TEXT="ライブラリを使用" ID="ID_429244613" CREATED="1611909410133" MODIFIED="1611909419186"/> <node TEXT="使っているInterfaceのメソッドの整合性" ID="ID_1245044371" CREATED="1611909419560" MODIFIED="1611909434683"/> <node TEXT="out put valueがあるかどうかの確認" ID="ID_1713446258" CREATED="1611909435120" MODIFIED="1611909448213"/> <node TEXT="method nameの自動変換" ID="ID_1730605261" CREATED="1611909459337" MODIFIED="1611909470188"/> <node TEXT="construcorの自動生成" ID="ID_273908561" CREATED="1611909470563" MODIFIED="1611909477799"/> </node> <node TEXT="use warnings, use strict" ID="ID_1085657332" CREATED="1611909490015" MODIFIED="1611909496148"/> </node> </node> <node TEXT="GearsOS" POSITION="left" ID="ID_1469562629" CREATED="1607410324461" MODIFIED="1611909754800"> <edge COLOR="#ff00ff"/> </node> <node TEXT="GearsのAPI" POSITION="right" ID="ID_164532708" CREATED="1607410326821" MODIFIED="1607410339785"> <edge COLOR="#00ffff"/> <node TEXT="context" ID="ID_221503071" CREATED="1607410340389" MODIFIED="1607410345184"> <node TEXT="createContext" ID="ID_1897722231" CREATED="1607410347503" MODIFIED="1607410350601"> <node TEXT="コンストラクタに相当する" ID="ID_1993397173" CREATED="1607410359489" MODIFIED="1607410367244"/> <node TEXT="構造体の初期化" ID="ID_145693211" CREATED="1607410375763" MODIFIED="1607410419367"/> <node TEXT="enumの設定" ID="ID_929172173" CREATED="1607410419707" MODIFIED="1607410424172"/> <node TEXT="現在は自動生成" ID="ID_1917526305" CREATED="1607410464668" MODIFIED="1607410469829"/> </node> <node TEXT="Meta計算" ID="ID_1460127604" CREATED="1607410350903" MODIFIED="1607410357673"> <node TEXT="Perlで生成される" ID="ID_1187821600" CREATED="1607410471357" MODIFIED="1607410475684"/> <node TEXT="ほとんどはstub" ID="ID_1187732606" CREATED="1607410476147" MODIFIED="1607410491112"> <node TEXT="prevCodeGear" ID="ID_1246312422" CREATED="1607410492527" MODIFIED="1607410507814"/> <node TEXT="contextから値を取り出す" ID="ID_539268101" CREATED="1607410508120" MODIFIED="1607410515547"/> <node TEXT="contextへ値を積むのはCodeGearの末尾" ID="ID_958749071" CREATED="1607410521360" MODIFIED="1607410537963"/> </node> </node> </node> <node TEXT="" ID="ID_1080105775" CREATED="1607410345523" MODIFIED="1607410345523"/> </node> </node> </map>