Mercurial > hg > Papers > 2021 > anatofuz-master
comparison paper/chapter/05-perl.tex @ 69:9950430ccc47
...
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 03 Feb 2021 21:29:14 +0900 |
parents | bb057c720016 |
children | d50a39e6e6a7 |
comparison
equal
deleted
inserted
replaced
68:bb057c720016 | 69:9950430ccc47 |
---|---|
33 従来はStubの生成や、 引数の変更などを行っていたが、 さらにメタレベルのコードをトランスコンパイラで作製したい。 | 33 従来はStubの生成や、 引数の変更などを行っていたが、 さらにメタレベルのコードをトランスコンパイラで作製したい。 |
34 トランスコンパイラ上でメタレベルのコードを作製することによって、 GearsOS上でのアプリケーションの記述が容易になり、かつメタレベルのコードを柔軟に扱うことができる。 | 34 トランスコンパイラ上でメタレベルのコードを作製することによって、 GearsOS上でのアプリケーションの記述が容易になり、かつメタレベルのコードを柔軟に扱うことができる。 |
35 本研究では様々なメタレベルのコードを、トランスコンパイラで生成することを検討した。 | 35 本研究では様々なメタレベルのコードを、トランスコンパイラで生成することを検討した。 |
36 | 36 |
37 | 37 |
38 \section{Perlによるトランスコンパイラ用のライブラリ作製} | 38 \section{トランスコンパイラ用のPerlライブラリ作製} |
39 従来のPerlトランスコンパイラはgenerate\_stub.plとgenerate\_context.plの2種類のスクリプトで構築されていた。 | 39 従来のPerlトランスコンパイラはgenerate\_stub.plとgenerate\_context.plの2種類のスクリプトで構築されていた。 |
40 これらのスクリプトはそれぞれ独立した処理を行っていた。 | 40 これらのスクリプトはそれぞれ独立した処理を行っていた。 |
41 | 41 |
42 しかし本研究を進めるにつれて、 Interfaceのパーサーやメタ計算部分の操作を行うAPIなど、 Perlスクリプトで共通した実装が見られた。 | 42 しかし本研究を進めるにつれて、 Interfaceのパーサーやメタ計算部分の操作を行うAPIなど、 Perlスクリプトで共通した実装が見られた。 |
43 さらにgenerate\_stub.plらPerlスクリプトの行数や処理の複雑度が上がり、 適切に処理をモジュール化する必要が生じた。 | 43 さらにgenerate\_stub.plらPerlスクリプトの行数や処理の複雑度が上がり、 適切に処理をモジュール化する必要が生じた。 |
74 \begin{itemize} | 74 \begin{itemize} |
75 \item Stub Code Gear生成時に呼び出されるモジュール | 75 \item Stub Code Gear生成時に呼び出されるモジュール |
76 \end{itemize} | 76 \end{itemize} |
77 \end{itemize} | 77 \end{itemize} |
78 | 78 |
79 これらはgenerate\_stub.plおよびgenerate\_context.plおよび、本研究で作製したPerlのツールセットからも呼び出される。 | |
80 | |
79 \section{context.hの自動生成} | 81 \section{context.hの自動生成} |
80 GearsOSのContextの定義はcontext.hにある。 | 82 GearsOSのContextの定義はcontext.hにある。 |
81 ContextはGearsOSの計算で使用されるすべてのCodeGear、 DataGearの情報を持っている。 | 83 ContextはGearsOSの計算で使用されるすべてのCodeGear、 DataGearの情報を持っている。 |
82 context.hではDataGearに対応する\texttt{union Data}型の定義も行っている。 | 84 context.hではDataGearに対応する\texttt{union Data}型の定義も行っている。 |
83 Data型はCの共用体であり、 Dataを構成する要素として各DataGearがある。 | 85 Data型はCの共用体であり、 Dataを構成する要素として各DataGearがある。 |