comparison Paper/anatofuz.tex @ 64:39906cf074cf

update
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Mon, 19 Nov 2018 14:28:37 +0900
parents 98f4d19f474d
children 1b870498dedb
comparison
equal deleted inserted replaced
63:98f4d19f474d 64:39906cf074cf
138 138
139 \subsection{言語処理系におけるCbCの応用} 139 \subsection{言語処理系におけるCbCの応用}
140 CbCを言語処理系, 特にスクリプト言語に応用すると幾つかの箇所に置いて利点があると推測される. 140 CbCを言語処理系, 特にスクリプト言語に応用すると幾つかの箇所に置いて利点があると推測される.
141 CbCにおけるCodeGearはコンパイラの基本ブロックに相当する. 141 CbCにおけるCodeGearはコンパイラの基本ブロックに相当する.
142 その為従来のスクリプト言語では主にcase文で記述していた命令コードディスパッチの箇所をCodeGearの遷移として記述する事が可能である. 142 その為従来のスクリプト言語では主にcase文で記述していた命令コードディスパッチの箇所をCodeGearの遷移として記述する事が可能である.
143 通常の言語処理系では命令コードディスパッチ部分は巨大なcase文となり, この部分を実装したCファイルが巨大化してしまう.
144 CodeGearを導入することで巨大なcase文をCodeGearとして分割する事が可能となり, 処理のモジュール化が可能となる.
143 CbCは状態を単位として記述が可能であるため, 命令コードなどにおける状態を利用するスクリプト言語の実装は応用例として適していると考えられる. 145 CbCは状態を単位として記述が可能であるため, 命令コードなどにおける状態を利用するスクリプト言語の実装は応用例として適していると考えられる.
144 146
145 \section{Perl6の概要} 147 \section{Perl6の概要}
146 この章では現在までのPerl6の遍歴及びPerl6の言語的な特徴について記載する. 148 この章では現在までのPerl6の遍歴及びPerl6の言語的な特徴について記載する.
147 149
394 上記Code\ref{cbc_codesegs_c}ではcbc\_const\_i8などがcase文の下のcase部分に該当するcbc\_const\_i64に遷移する様に変換されている. 396 上記Code\ref{cbc_codesegs_c}ではcbc\_const\_i8などがcase文の下のcase部分に該当するcbc\_const\_i64に遷移する様に変換されている.
395 またcbc\_pushcompscではMVMROOTに局所変数scを渡している為, これをstaticで宣言し直している. 397 またcbc\_pushcompscではMVMROOTに局所変数scを渡している為, これをstaticで宣言し直している.
396 398
397 現在CbCで記述されたOSであるGearsOSにはInterfaceが導入されている. 399 現在CbCで記述されたOSであるGearsOSにはInterfaceが導入されている.
398 これはJavaのinterface, Haskellの型クラスに該当する概念であり, 次のCodeGearにInterface経由で継続する事が可能である. 400 これはJavaのinterface, Haskellの型クラスに該当する概念であり, 次のCodeGearにInterface経由で継続する事が可能である.
399 Interfaceは現在のMoarVMには実装されていない為, 今後ThreadedCodeの実装を行うにあたり導入を検討している. 401 Interfaceは現在のCbCMoarVMの実装には用いていないが, 今後ThreadedCodeの実装を行うにあたり命令コードディスパッチ箇所に導入を検討している.
400 402
401 \section{MoarVMのデバッグ} 403 \section{MoarVMのデバッグ}
402 404
403 MoarVM自体のデバッグはMoarVMのリポジトリにテストコードが付随していない為単体では実行不可能である. 405 MoarVM自体のデバッグはMoarVMのリポジトリにテストコードが付随していない為単体では実行不可能である.
404 本研究ではMoarVMのデバッグにおけるCデバッガの使用方法とMoarVMのテスト方法についても示す. 406 本研究ではMoarVMのデバッグにおけるCデバッガの使用方法とMoarVMのテスト方法についても示す.