changeset 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
files 2000px-Camelia.svg.png Per6_rakudo_OSC2019.mm slide.html slide.md slide.pdf.html
diffstat 5 files changed, 150 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
Binary file 2000px-Camelia.svg.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Per6_rakudo_OSC2019.mm	Tue Apr 16 18:59:34 2019 +0900
@@ -0,0 +1,33 @@
+<map version="1.1.0">
+<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
+<node CREATED="1555404713709" ID="ID_1727409716" MODIFIED="1555404722904" TEXT="Perl6 Rakudo&#x306e;&#x5185;&#x90e8;&#x69cb;&#x9020;">
+<node CREATED="1555404724612" ID="ID_1448234108" MODIFIED="1555404744931" POSITION="right" TEXT="&#x30b4;&#x30fc;&#x30eb;">
+<node CREATED="1555404750635" ID="ID_1533140732" MODIFIED="1555404756371" TEXT="Perl6&#x81ea;&#x4f53;&#x3092;&#x77e5;&#x3063;&#x3066;&#x3082;&#x3089;&#x3046;"/>
+<node CREATED="1555404757182" ID="ID_857678938" MODIFIED="1555404763884" TEXT="&#x30d0;&#x30a4;&#x30c8;&#x30b3;&#x30fc;&#x30c9;&#x30a4;&#x30f3;&#x30bf;&#x30d7;&#x30ea;&#x30bf;&#x306e;&#x96f0;&#x56f2;&#x6c17;&#x3092;&#x77e5;&#x308b;"/>
+</node>
+<node CREATED="1555404729587" ID="ID_70708845" MODIFIED="1555404733899" POSITION="left" TEXT="Perl6&#x81ea;&#x4f53;">
+<node CREATED="1555404736717" ID="ID_646086543" MODIFIED="1555404779128" TEXT="&#x6b74;&#x53f2;"/>
+<node CREATED="1555404767414" ID="ID_46599809" MODIFIED="1555404776988" TEXT="&#x30b5;&#x30f3;&#x30d7;&#x30eb;&#x30b9;&#x30af;&#x30ea;&#x30d7;&#x30c8;"/>
+<node CREATED="1555404810932" ID="ID_1856672723" MODIFIED="1555404834351" TEXT="Perl6&#x3092;&#x30d0;&#x30a4;&#x30c8;&#x30b3;&#x30fc;&#x30c9;&#x5316;"/>
+</node>
+<node CREATED="1555404734607" ID="ID_419856625" MODIFIED="1555404749342" POSITION="left" TEXT="NQP">
+<node CREATED="1555404780245" ID="ID_1883651519" MODIFIED="1555404787994" TEXT="Rakudo&#x3082;NQP"/>
+<node CREATED="1555404788447" ID="ID_1662711907" MODIFIED="1555404793569" TEXT="NQP&#x3082;NQP&#x3067;&#x66f8;&#x304b;&#x308c;&#x3066;&#x3044;&#x308b;"/>
+<node CREATED="1555404793966" ID="ID_63625923" MODIFIED="1555404805773" TEXT="&#x7c21;&#x5358;&#x306a;&#x30b9;&#x30af;&#x30ea;&#x30d7;&#x30c8;&#x3068;&#x30d0;&#x30a4;&#x30c8;&#x30b3;&#x30fc;&#x30c9;&#x306b;&#x5909;&#x63db;&#x3057;&#x305f;&#x3082;&#x306e;"/>
+<node CREATED="1555404835654" ID="ID_773903016" MODIFIED="1555404835654" TEXT=""/>
+</node>
+<node CREATED="1555404837556" ID="ID_1630681009" MODIFIED="1555404903665" POSITION="left" TEXT="MoarVM">
+<node CREATED="1555404843257" ID="ID_1381838788" MODIFIED="1555404847514" TEXT="C&#x3067;&#x66f8;&#x304b;&#x308c;&#x3066;&#x3044;&#x308b;"/>
+<node CREATED="1555404872770" ID="ID_965642057" MODIFIED="1555404878522" TEXT="&#x30d0;&#x30a4;&#x30c8;&#x30b3;&#x30fc;&#x30c9;&#x30a4;&#x30f3;&#x30bf;&#x30d7;&#x30ea;&#x30bf;">
+<node CREATED="1555408273658" ID="ID_110803697" MODIFIED="1555408277841" TEXT="goto&#x6587;"/>
+<node CREATED="1555408278562" ID="ID_1317536742" MODIFIED="1555408316716" TEXT="&#x69cb;&#x9020;&#x4f53;&#x306e;&#x89e3;&#x8aac;...?"/>
+</node>
+<node CREATED="1555404878965" ID="ID_1481298678" MODIFIED="1555404884151" TEXT="&#x30d0;&#x30a4;&#x30c8;&#x30b3;&#x30fc;&#x30c9;&#x306e;&#x30c0;&#x30f3;&#x30d7;&#x3082;&#x53ef;&#x80fd;"/>
+<node CREATED="1555404884530" ID="ID_981470558" MODIFIED="1555404887483" TEXT="&#x30c8;&#x30ec;&#x30fc;&#x30b9;&#x3059;&#x308b;?"/>
+<node CREATED="1555404904050" ID="ID_1948908407" MODIFIED="1555404910029" TEXT="&#x5909;&#x6570;&#x306e;&#x4ed5;&#x7d44;&#x307f;">
+<node CREATED="1555408259482" ID="ID_885124990" MODIFIED="1555408262629" TEXT="&#x30ec;&#x30b8;&#x30b9;&#x30bf;?"/>
+<node CREATED="1555408262980" ID="ID_1866148061" MODIFIED="1555408266509" TEXT="&#x578b;?"/>
+</node>
+</node>
+</node>
+</map>
--- a/slide.html	Mon Apr 15 17:59:44 2019 +0900
+++ b/slide.html	Tue Apr 16 18:59:34 2019 +0900
@@ -86,7 +86,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>
@@ -106,8 +106,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_  -->
@@ -149,6 +152,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>
 
--- a/slide.md	Mon Apr 15 17:59:44 2019 +0900
+++ b/slide.md	Tue Apr 16 18:59:34 2019 +0900
@@ -14,7 +14,9 @@
 - 仕様と実装が分離しており, 現在はテストが仕様となっている
 - 実装は複数存在しているが,現在主流な実装はRakudoとなっている
 - 言語的にはスクリプト言語であり, 漸進的型付き言語となっている
+- MoarVM, JVMで動作する
 
+<img src="2000px-Camelia.svg.png" alt=""  style="width: 31%; height: auto;">
 
 !SLIDE
 ## Perl6のソースコード概要
@@ -52,4 +54,24 @@
 !SLIDE
 ## Perl6の処理系の構成
 
-- Perl6の処理系は現在はRakudoと呼ばれる
+- Perl6の処理系は現在はRakudoと呼ばれる(歴史上複数存在する)
+- Rakudoは3つのレイヤーから構成されている
+    - Perl6インタプリタ
+    - Perl6インタプリタを記述するPerl6のサブセットNQP
+    - Perl6のバイトコードを解釈するMoarVM
+- このうちPerl6インタプリタとNQPはNQP自身で記述されている
+- MoarVMはC言語で記述されている
+
+!SLIDE
+## Perl6とNQP
+
+- NQP(NotQuitPerl Perlっぽい別の言語)でRakudoを記述している
+- NQPもNQPで記述されている為、 セルフビルド(自分自身で自分自身をコンパイルする)を行う
+- NQPはPerl6の文法をベースにしているが、 制約がいくつか存在する
+
+!SLIDE
+## バイトコード
+- Rakudo/NQPはバイトコードにスクリプトを変換する
+- バイトコードはMoarVMのドキュメントで制定されている
+- バイトコード実行部分は、 命令に対応するバイト列を読み込み、 解釈し、 次の命令を読み取ることを繰り返す
+
--- 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>