changeset 105:1a0210c2814b

update
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Tue, 19 Feb 2019 17:26:03 +0900
parents bc2c556987de
children e3c459b29e98
files presen/slide.html presen/slide.md presen/slide.pdf presen/slide.pdf.html
diffstat 4 files changed, 55 insertions(+), 80 deletions(-) [+]
line wrap: on
line diff
--- a/presen/slide.html	Tue Feb 19 17:20:34 2019 +0900
+++ b/presen/slide.html	Tue Feb 19 17:26:03 2019 +0900
@@ -93,13 +93,15 @@
 <!-- _S9SLIDE_ -->
 <h2 id="研究目的">研究目的</h2>
 <ul>
-  <li>現在開発されているPerl6の実装にRakudoがあり, RakudoはNQP(Perl6のサブセット)で記述されたPerl6, NQPで記述されたNQPコンパイラ, NQPを解釈するVMで構成されている</li>
-  <li>NQPコンパイラはRakudoのVMであるMoarVM用のバイトコードを生成する</li>
-  <li>MoarVMはこのバイトコードを解釈, 実行する</li>
+  <li>Continuation based C (CbC)という言語は継続を基本とするC言語であり, 言語処理系に応用出来ると考えられる</li>
+  <li>スクリプト言語などは, バイトコードを扱うが, この実行にcae文や, ラベルgotoなどを利用している。
+    <ul>
+      <li>この部分はCbCの機能で書き換える事が可能である</li>
+    </ul>
+  </li>
+  <li>命令実行処理部分をモジュール化することで、各命令ごとの最適化や、 命令ディスパッチ部分の最適化を行う事が可能であると考える。</li>
 </ul>
 
-<img src="fig/perl6nqp.svg" alt="" />
-
 
 
 </div>
@@ -108,16 +110,14 @@
   <!-- _S9SLIDE_ -->
 <h2 id="研究目的-1">研究目的</h2>
 <ul>
-  <li>Continuation based C (CbC)という言語は継続を基本とするC言語であり, 言語処理系に応用出来ると考えられる</li>
-  <li>スクリプト言語などは, バイトコードを扱うが, この実行にcae文や, ラベルgotoなどを利用している。
-    <ul>
-      <li>この部分はCbCの機能で書き換える事が可能である</li>
-    </ul>
-  </li>
-  <li>命令実行処理部分をモジュール化することで、各命令ごとの最適化や、 命令ディスパッチ部分の最適化を行う事が可能であると考える。</li>
-  <li>従って, CbC一部用いてPerl6にC処理系であるMoarVMの書き換えを行い, 処理を検討する.</li>
+  <li>現在開発されているPerl6の実装にRakudoがあり, RakudoはNQP(Perl6のサブセット)で記述されたPerl6, NQPで記述されたNQPコンパイラ, NQPを解釈するVMで構成されている</li>
+  <li>NQPコンパイラはRakudoのVMであるMoarVM用のバイトコードを生成する</li>
+  <li>MoarVMはこのバイトコードを解釈, 実行する</li>
+  <li>本研究では, CbC用いてPerl6にC処理系であるMoarVMの一部書き換えを行い, 命令のモジュール化を検討する.</li>
 </ul>
 
+<img src="fig/perl6nqp.svg" alt="" />
+
 
 
 </div>
@@ -170,7 +170,7 @@
 
 <div class='slide'>
   <!-- _S9SLIDE_ -->
-<h2 id="言語処理系の応用">言語処理系の応用</h2>
+<h2 id="スクリプト言語処理系">スクリプト言語処理系</h2>
 <ul>
   <li>スクリプト言語は入力として与えられたソースコードを、 直接評価せずにバイトコードにコンパイルする形式が主流となっている</li>
   <li>その為スクリプト言語の実装は大きく2つで構成されている
@@ -571,18 +571,6 @@
 
 <div class='slide'>
   <!-- _S9SLIDE_ -->
-<h2 id="threadedcodeの実装">ThreadedCodeの実装</h2>
-
-<ul>
-  <li>MoarVM内のバイトコードに対応する処理が分離出来たことにより, バイトコードに該当するCodeGearを書き連ねることによってThreadedCodeが実装可能となる</li>
-</ul>
-
-
-
-</div>
-
-<div class='slide'>
-  <!-- _S9SLIDE_ -->
 <h2 id="cbcmoarvmと通常のmoarvmの比較">CbCMoarVMと通常のMoarVMの比較</h2>
 
 <ul>
@@ -622,9 +610,9 @@
 	<tbody>
 		<tr style="border: 2px solid #595959;">
 			<td style="border: 2px solid #595959;">[単位 sec]</td>
-            <td></td>
-            <td></td>
-            <td></td>
+            <td style="border: 2px solid #595959;"></td>
+            <td style="border: 2px solid #595959;"></td>
+            <td style="border: 2px solid #595959;"></td>
 		</tr>
 		<tr style="border: 2px solid #595959;">
 			<td style="border: 2px solid #595959;">MoarVM</td>
@@ -688,9 +676,9 @@
 	<tbody>
 		<tr style="border: 2px solid #595959;">
 			<td style="border: 2px solid #595959;">[単位 sec]</td>
-			<td></td>
-			<td></td>
-			<td></td>
+            <td style="border: 2px solid #595959;"></td>
+            <td style="border: 2px solid #595959;"></td>
+            <td style="border: 2px solid #595959;"></td>
 		</tr>
 		<tr>
 			<td style="border: 2px solid #595959;">MoarVM</td>
@@ -753,7 +741,8 @@
 <ul>
   <li>継続と基本としたC言語 Continuation Based Cを用いてPerl6の処理系の一部を書き直した
     <ul>
-      <li>Cの持つCodeGearによって, 本来はモジュール化出来ない箇所をモジュール化が可能となった</li>
+      <li>CodeGearによって, 本来はモジュール化出来ない箇所をモジュール化が可能となった</li>
+      <li>デバッグが通常のディスパッチと比較して安易になった</li>
       <li>CPUキャッシュに収まるループなどの命令の場合は、 通常のMoarVMよりも高速に動作する</li>
     </ul>
   </li>
--- a/presen/slide.md	Tue Feb 19 17:20:34 2019 +0900
+++ b/presen/slide.md	Tue Feb 19 17:26:03 2019 +0900
@@ -5,19 +5,20 @@
 code-engine: coderay
 
 
-## 研究目的
-- 現在開発されているPerl6の実装にRakudoがあり, RakudoはNQP(Perl6のサブセット)で記述されたPerl6, NQPで記述されたNQPコンパイラ, NQPを解釈するVMで構成されている
-- NQPコンパイラはRakudoのVMであるMoarVM用のバイトコードを生成する
-- MoarVMはこのバイトコードを解釈, 実行する
-
-![](fig/perl6nqp.svg)
 
 ## 研究目的
 - Continuation based C (CbC)という言語は継続を基本とするC言語であり, 言語処理系に応用出来ると考えられる
 - スクリプト言語などは, バイトコードを扱うが, この実行にcae文や, ラベルgotoなどを利用している。
     - この部分はCbCの機能で書き換える事が可能である
 - 命令実行処理部分をモジュール化することで、各命令ごとの最適化や、 命令ディスパッチ部分の最適化を行う事が可能であると考える。
-- 従って, CbC一部用いてPerl6にC処理系であるMoarVMの書き換えを行い, 処理を検討する.
+
+## 研究目的
+- 現在開発されているPerl6の実装にRakudoがあり, RakudoはNQP(Perl6のサブセット)で記述されたPerl6, NQPで記述されたNQPコンパイラ, NQPを解釈するVMで構成されている
+- NQPコンパイラはRakudoのVMであるMoarVM用のバイトコードを生成する
+- MoarVMはこのバイトコードを解釈, 実行する
+- 本研究では, CbC用いてPerl6にC処理系であるMoarVMの一部書き換えを行い, 命令のモジュール化を検討する.
+
+![](fig/perl6nqp.svg)
 
 
 ## Continuation Based C (CbC)
@@ -52,7 +53,7 @@
 }
 ```
 
-## 言語処理系の応用
+## スクリプト言語処理系
 - スクリプト言語は入力として与えられたソースコードを、 直接評価せずにバイトコードにコンパイルする形式が主流となっている
 - その為スクリプト言語の実装は大きく2つで構成されている
     - バイトコードに変換するフロントエンド部分
@@ -316,11 +317,6 @@
      /mnt/dalmore-home/one/src/Perl6/Optimize/llvm/build_perl6/share/nqp/lib/nqp.moarvm "$@"
 ```
 
-## ThreadedCodeの実装
-
-- MoarVM内のバイトコードに対応する処理が分離出来たことにより, バイトコードに該当するCodeGearを書き連ねることによってThreadedCodeが実装可能となる
-
-
 ## CbCMoarVMと通常のMoarVMの比較
 
 - CbCMoarVMと通常のMoarVMの速度比較を行った
@@ -446,6 +442,7 @@
 
 ## まとめ
 - 継続と基本としたC言語 Continuation Based Cを用いてPerl6の処理系の一部を書き直した
-    - Cの持つCodeGearによって, 本来はモジュール化出来ない箇所をモジュール化が可能となった
+    - CodeGearによって, 本来はモジュール化出来ない箇所をモジュール化が可能となった
+    - デバッグが通常のディスパッチと比較して安易になった
     - CPUキャッシュに収まるループなどの命令の場合は、 通常のMoarVMよりも高速に動作する
 - 今後はCodeGearの特性を活用し、 直接次の命令を実行する処理を実装する
Binary file presen/slide.pdf has changed
--- a/presen/slide.pdf.html	Tue Feb 19 17:20:34 2019 +0900
+++ b/presen/slide.pdf.html	Tue Feb 19 17:26:03 2019 +0900
@@ -77,13 +77,15 @@
 <!-- _S9SLIDE_ -->
 <h2 id="研究目的">研究目的</h2>
 <ul>
-  <li>現在開発されているPerl6の実装にRakudoがあり, RakudoはNQP(Perl6のサブセット)で記述されたPerl6, NQPで記述されたNQPコンパイラ, NQPを解釈するVMで構成されている</li>
-  <li>NQPコンパイラはRakudoのVMであるMoarVM用のバイトコードを生成する</li>
-  <li>MoarVMはこのバイトコードを解釈, 実行する</li>
+  <li>Continuation based C (CbC)という言語は継続を基本とするC言語であり, 言語処理系に応用出来ると考えられる</li>
+  <li>スクリプト言語などは, バイトコードを扱うが, この実行にcae文や, ラベルgotoなどを利用している。
+    <ul>
+      <li>この部分はCbCの機能で書き換える事が可能である</li>
+    </ul>
+  </li>
+  <li>命令実行処理部分をモジュール化することで、各命令ごとの最適化や、 命令ディスパッチ部分の最適化を行う事が可能であると考える。</li>
 </ul>
 
-<p><img src="fig/perl6nqp.svg" alt="" /></p>
-
 
 
 </div>
@@ -92,16 +94,14 @@
   <!-- _S9SLIDE_ -->
 <h2 id="研究目的-1">研究目的</h2>
 <ul>
-  <li>Continuation based C (CbC)という言語は継続を基本とするC言語であり, 言語処理系に応用出来ると考えられる</li>
-  <li>スクリプト言語などは, バイトコードを扱うが, この実行にcae文や, ラベルgotoなどを利用している。
-    <ul>
-      <li>この部分はCbCの機能で書き換える事が可能である</li>
-    </ul>
-  </li>
-  <li>命令実行処理部分をモジュール化することで、各命令ごとの最適化や、 命令ディスパッチ部分の最適化を行う事が可能であると考える。</li>
-  <li>従って, CbC一部用いてPerl6にC処理系であるMoarVMの書き換えを行い, 処理を検討する.</li>
+  <li>現在開発されているPerl6の実装にRakudoがあり, RakudoはNQP(Perl6のサブセット)で記述されたPerl6, NQPで記述されたNQPコンパイラ, NQPを解釈するVMで構成されている</li>
+  <li>NQPコンパイラはRakudoのVMであるMoarVM用のバイトコードを生成する</li>
+  <li>MoarVMはこのバイトコードを解釈, 実行する</li>
+  <li>本研究では, CbC用いてPerl6にC処理系であるMoarVMの一部書き換えを行い, 命令のモジュール化を検討する.</li>
 </ul>
 
+<p><img src="fig/perl6nqp.svg" alt="" /></p>
+
 
 
 </div>
@@ -154,7 +154,7 @@
 
 <div class='slide'>
   <!-- _S9SLIDE_ -->
-<h2 id="言語処理系の応用">言語処理系の応用</h2>
+<h2 id="スクリプト言語処理系">スクリプト言語処理系</h2>
 <ul>
   <li>スクリプト言語は入力として与えられたソースコードを、 直接評価せずにバイトコードにコンパイルする形式が主流となっている</li>
   <li>その為スクリプト言語の実装は大きく2つで構成されている
@@ -555,18 +555,6 @@
 
 <div class='slide'>
   <!-- _S9SLIDE_ -->
-<h2 id="threadedcodeの実装">ThreadedCodeの実装</h2>
-
-<ul>
-  <li>MoarVM内のバイトコードに対応する処理が分離出来たことにより, バイトコードに該当するCodeGearを書き連ねることによってThreadedCodeが実装可能となる</li>
-</ul>
-
-
-
-</div>
-
-<div class='slide'>
-  <!-- _S9SLIDE_ -->
 <h2 id="cbcmoarvmと通常のmoarvmの比較">CbCMoarVMと通常のMoarVMの比較</h2>
 
 <ul>
@@ -606,9 +594,9 @@
 	<tbody>
 		<tr style="border: 2px solid #595959;">
 			<td style="border: 2px solid #595959;">[単位 sec]</td>
-            <td></td>
-            <td></td>
-            <td></td>
+            <td style="border: 2px solid #595959;"></td>
+            <td style="border: 2px solid #595959;"></td>
+            <td style="border: 2px solid #595959;"></td>
 		</tr>
 		<tr style="border: 2px solid #595959;">
 			<td style="border: 2px solid #595959;">MoarVM</td>
@@ -672,9 +660,9 @@
 	<tbody>
 		<tr style="border: 2px solid #595959;">
 			<td style="border: 2px solid #595959;">[単位 sec]</td>
-			<td></td>
-			<td></td>
-			<td></td>
+            <td style="border: 2px solid #595959;"></td>
+            <td style="border: 2px solid #595959;"></td>
+            <td style="border: 2px solid #595959;"></td>
 		</tr>
 		<tr>
 			<td style="border: 2px solid #595959;">MoarVM</td>
@@ -737,7 +725,8 @@
 <ul>
   <li>継続と基本としたC言語 Continuation Based Cを用いてPerl6の処理系の一部を書き直した
     <ul>
-      <li>Cの持つCodeGearによって, 本来はモジュール化出来ない箇所をモジュール化が可能となった</li>
+      <li>CodeGearによって, 本来はモジュール化出来ない箇所をモジュール化が可能となった</li>
+      <li>デバッグが通常のディスパッチと比較して安易になった</li>
       <li>CPUキャッシュに収まるループなどの命令の場合は、 通常のMoarVMよりも高速に動作する</li>
     </ul>
   </li>