diff slide.pdf.html @ 2:41f44d102cf9

update
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Tue, 16 Apr 2019 18:59:34 +0900
parents b135f074e78c
children e43f47edd11a
line wrap: on
line diff
--- a/slide.pdf.html	Mon Apr 15 17:59:44 2019 +0900
+++ b/slide.pdf.html	Tue Apr 16 18:59:34 2019 +0900
@@ -70,7 +70,7 @@
 <!-- === begin markdown block ===
 
       generated by markdown/1.2.0 on Ruby 2.4.2 (2017-09-14) [x86_64-darwin16]
-                on 2019-04-15 17:44:28 +0900 with Markdown engine kramdown (1.16.2)
+                on 2019-04-16 18:12:19 +0900 with Markdown engine kramdown (1.16.2)
                   using options {}
   -->
 <h2 id="section">このセッションの内容</h2>
@@ -90,8 +90,11 @@
   <li>仕様と実装が分離しており, 現在はテストが仕様となっている</li>
   <li>実装は複数存在しているが,現在主流な実装はRakudoとなっている</li>
   <li>言語的にはスクリプト言語であり, 漸進的型付き言語となっている</li>
+  <li>MoarVM, JVMで動作する</li>
 </ul>
 
+<p><img src="2000px-Camelia.svg.png" alt="" style="width: 31%; height: auto;" /></p>
+
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_  -->
@@ -133,6 +136,49 @@
 <pre><code>my Int $int_value  = 31;
 $int_value = "hello"; # Compile error!
 </code></pre>
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_  -->
+
+<h2 id="perl6-3">Perl6の処理系の構成</h2>
+
+<ul>
+  <li>Perl6の処理系は現在はRakudoと呼ばれる(歴史上複数存在する)</li>
+  <li>Rakudoは3つのレイヤーから構成されている
+    <ul>
+      <li>Perl6インタプリタ</li>
+      <li>Perl6インタプリタを記述するPerl6のサブセットNQP</li>
+      <li>Perl6のバイトコードを解釈するMoarVM</li>
+    </ul>
+  </li>
+  <li>このうちPerl6インタプリタとNQPはNQP自身で記述されている</li>
+  <li>MoarVMはC言語で記述されている</li>
+</ul>
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_  -->
+
+<h2 id="perl6nqp">Perl6とNQP</h2>
+
+<ul>
+  <li>NQP(NotQuitPerl Perlっぽい別の言語)でRakudoを記述している</li>
+  <li>NQPもNQPで記述されている為、 セルフビルド(自分自身で自分自身をコンパイルする)を行う</li>
+  <li>NQPはPerl6の文法をベースにしているが、 制約がいくつか存在する</li>
+</ul>
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_  -->
+
+<h2 id="section-1">バイトコード</h2>
+<ul>
+  <li>Rakudo/NQPはバイトコードにスクリプトを変換する</li>
+  <li>バイトコードはMoarVMのドキュメントで制定されている</li>
+  <li>バイトコード実行部分は、 命令に対応するバイト列を読み込み、 解釈し、 次の命令を読み取ることを繰り返す</li>
+</ul>
+
 <!-- === end markdown block === -->
 </div>