changeset 17:9d5db297d154

use listings for chapter2.tex
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Fri, 08 Feb 2019 15:32:41 +0900
parents 6be34793a3e2
children b2978e820356
files paper/chapter2.tex paper/main.pdf
diffstat 2 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/paper/chapter2.tex	Fri Feb 08 15:23:31 2019 +0900
+++ b/paper/chapter2.tex	Fri Feb 08 15:32:41 2019 +0900
@@ -11,7 +11,7 @@
 RakudoはParrot時代に考案された、 NQP(NotQuitPerl)を用いてPerl6を実装し、 NQPはVMによって評価される。
 RakudoのVMはPerl6専用のVMであるMoarVM、 Java実行環境であるJVM、 Javascriptが選択可能である。
 JVM、 Javascriptの動作環境はMoarVMと比較して実装されていない処理などが多数あり、 現在はMoarVMが主流なVMとして利用されている。
-MoarVMはC言語で実装されており、 NQPはNQP自身で記述されている。
+MoarVMはC言語で実装されており、 NQPはNQP自身で実装されている。
 
 
 \section{NQP}
@@ -20,10 +20,12 @@
 基本文法などはPerl6に準拠しているが、 変数を束縛で宣言する。インクリメント演算子が一部利用できない。
 Perl6に存在する関数などが一部利用できないなどの制約が存在する。
 
-実際にNQPで記述したコードを に示す。
+NQPのコード例を示す。
+\lstinputlisting[frame=lrbt, label=fib_nqp,  caption=フィボナッチ数列を求めるNQPのソースコード]{./codes/fib.nqp}
 
-Perl6はNQPで記述されている為、 Perl6におけるVMはNQPの実行を目標として開発されている。
-NQP自体もNQPで記述されており、 NQPのビルドには予め用意されたMoarVMなどのVMバイトコードによるNQPインタプリタが必要となる。
+
+Perl6はNQPで実装されている為、 Perl6におけるVMはNQPの実行を目標として開発されている。
+NQP自体もNQPで実装されており、 NQPのビルドには予め用意されたMoarVMなどのVMバイトコードによるNQPインタプリタが必要となる。
 MoarVMを利用する場合、 MoarVMの実行バイナリであるmoarに対して、 ライブラリパスなどを予め用意したNQPインタプリタのバイトコードに設定する。
 設定はオプションで与える事が可能であり、 moarを実行することでNQPのインタプリタが起動する。
 NQPのビルドには、 このNQPインタプリタをまず利用し、 NQP自体のソースコードを入力して与え、 ターゲットとなるVMのバイトコードを生成する。
Binary file paper/main.pdf has changed