# HG changeset patch # User Takahiro SHIMIZU # Date 1555643448 -32400 # Node ID f8f9af788fa7deb867dd5586caa16ca48220ac3b # Parent e87cc0746622a40ba98cc63e6d8459badc2d3a17 remove !#SLIDE for use slideshow latest version diff -r e87cc0746622 -r f8f9af788fa7 slide.html --- a/slide.html Thu Apr 18 17:23:28 2019 +0900 +++ b/slide.html Fri Apr 19 12:10:48 2019 +0900 @@ -1,11 +1,16 @@ + + + + + Perl6の内部表現 - - + + @@ -37,7 +42,6 @@ prettyPrint(); } ); - @@ -45,7 +49,7 @@ - + @@ -66,15 +70,15 @@
-

Perl6の内部表現

+

Perl6の内部表現

- Takahiro Shimizu - + Takahiro Shimizu +
@@ -82,14 +86,12 @@ -
- -

このセッションの内容

+
+ + +

このセッションの内容

  • Perl6の主要な実装であるRakudoの内部構造を探ります
  • @@ -97,11 +99,13 @@
  • スクリプト言語で主に使われているバイトコードインタプリタの気持ちになります
+ +
-
- -

Perl6とは

+
+ +

Perl6とは

  • 当初Perl5の時期バージョンとして開発されていたプログラミング言語
  • 仕様と実装が分離しており, 現在はテストが仕様となっている
  • @@ -112,11 +116,13 @@

    + +
-
- -

Perl6のソースコード概要

+
+ +

Perl6のソースコード概要

  • Perl5の文法とは比較的変更が多い
  • @@ -140,11 +146,13 @@ say($sample_value * 3); + +
-
- -

Perl6の言語的な特徴

+
+ +

Perl6の言語的な特徴

  • 漸進的型付き言語である為, 型を強制することも可能となる
  • @@ -154,18 +162,20 @@ $int_value = "hello"; # Compile error! + +
-
- -

Perl6の言語的な特徴

+
+ +

Perl6の言語的な特徴

  • 型を独自に定義することも可能
  • 入力の型によって実行する関数を変える事などができる
-
my subset Fizz of Int where * %% 3;
+
my subset Fizz of Int where * %% 3;
 my subset Buzz of Int where * %% 5;
 my subset FizzBuzz of Int where Fizz&Buzz;
 my subset Number of Int where none Fizz|Buzz;
@@ -179,11 +189,13 @@
 fizzbuzz($_).say for 1..15;
 
+ +
-
- -

Perl6の処理系の構成

+
+ +

Perl6の処理系の構成

  • Perl6の処理系は現在はRakudoと呼ばれる(歴史上複数存在する)
  • @@ -198,11 +210,13 @@
  • MoarVMはC言語で記述されている
+ +
-
- -

Perl6とNQP

+
+ +

Perl6とNQP

  • NQP(NotQuitPerl Perlっぽい別の言語)でRakudoを記述している
  • @@ -225,11 +239,13 @@ nqp::say("time = " ~ ($t1-$t0));
    + +
-
- -

バイトコード

+
+ +

バイトコード

  • 最近のスクリプト言語は、 ソースコードを直接解釈せず、バイトコードに変換する
      @@ -260,7 +276,7 @@
    • バイトコード実行部分は、 命令に対応するバイト列を読み込み、 解釈し、 次の命令を読み取ることを繰り返す
    - +
diff -r e87cc0746622 -r f8f9af788fa7 slide.md --- a/slide.md Thu Apr 18 17:23:28 2019 +0900 +++ b/slide.md Fri Apr 19 12:10:48 2019 +0900 @@ -9,7 +9,6 @@ - Rakudoの内部で利用されているVMや, Perl6のサブセットなどについて探索します - スクリプト言語で主に使われているバイトコードインタプリタの気持ちになります -!SLIDE ## Perl6とは - 当初Perl5の時期バージョンとして開発されていたプログラミング言語 - 仕様と実装が分離しており, 現在はテストが仕様となっている @@ -19,7 +18,6 @@ -!SLIDE ## Perl6のソースコード概要 - Perl5の文法とは比較的変更が多い @@ -42,7 +40,6 @@ say($sample_value * 3); ``` -!SLIDE ## Perl6の言語的な特徴 - 漸進的型付き言語である為, 型を強制することも可能となる @@ -52,7 +49,6 @@ $int_value = "hello"; # Compile error! ``` -!SLIDE ## Perl6の言語的な特徴 - 型を独自に定義することも可能 @@ -73,7 +69,6 @@ fizzbuzz($_).say for 1..15; ``` -!SLIDE ## Perl6の処理系の構成 - Perl6の処理系は現在はRakudoと呼ばれる(歴史上複数存在する) @@ -84,7 +79,6 @@ - このうちPerl6インタプリタとNQPはNQP自身で記述されている - MoarVMはC言語で記述されている -!SLIDE ## Perl6とNQP - NQP(NotQuitPerl Perlっぽい別の言語)でRakudoを記述している @@ -107,7 +101,6 @@ nqp::say("time = " ~ ($t1-$t0)); ``` -!SLIDE ## バイトコード - 最近のスクリプト言語は、 ソースコードを直接解釈せず、バイトコードに変換する - 全体的な処理速度の向上の為 diff -r e87cc0746622 -r f8f9af788fa7 slide.pdf.html --- a/slide.pdf.html Thu Apr 18 17:23:28 2019 +0900 +++ b/slide.pdf.html Fri Apr 19 12:10:48 2019 +0900 @@ -1,11 +1,16 @@ + + + + + Perl6の内部表現 - - + + @@ -50,15 +55,15 @@
-

Perl6の内部表現

+

Perl6の内部表現

- Takahiro Shimizu - + Takahiro Shimizu +
@@ -66,14 +71,11 @@
-
- -

このセッションの内容

+
+ + +

このセッションの内容

  • Perl6の主要な実装であるRakudoの内部構造を探ります
  • @@ -81,11 +83,13 @@
  • スクリプト言語で主に使われているバイトコードインタプリタの気持ちになります
+ +
-
- -

Perl6とは

+
+ +

Perl6とは

  • 当初Perl5の時期バージョンとして開発されていたプログラミング言語
  • 仕様と実装が分離しており, 現在はテストが仕様となっている
  • @@ -96,11 +100,13 @@

    + +
-
- -

Perl6のソースコード概要

+
+ +

Perl6のソースコード概要

  • Perl5の文法とは比較的変更が多い
  • @@ -124,11 +130,13 @@ say($sample_value * 3); + +
-
- -

Perl6の言語的な特徴

+
+ +

Perl6の言語的な特徴

  • 漸進的型付き言語である為, 型を強制することも可能となる
  • @@ -138,18 +146,20 @@ $int_value = "hello"; # Compile error! + +
-
- -

Perl6の言語的な特徴

+
+ +

Perl6の言語的な特徴

  • 型を独自に定義することも可能
  • 入力の型によって実行する関数を変える事などができる
-
my subset Fizz of Int where * %% 3;
+
my subset Fizz of Int where * %% 3;
 my subset Buzz of Int where * %% 5;
 my subset FizzBuzz of Int where Fizz&Buzz;
 my subset Number of Int where none Fizz|Buzz;
@@ -163,11 +173,13 @@
 fizzbuzz($_).say for 1..15;
 
+ +
-
- -

Perl6の処理系の構成

+
+ +

Perl6の処理系の構成

  • Perl6の処理系は現在はRakudoと呼ばれる(歴史上複数存在する)
  • @@ -182,11 +194,13 @@
  • MoarVMはC言語で記述されている
+ +
-
- -

Perl6とNQP

+
+ +

Perl6とNQP

  • NQP(NotQuitPerl Perlっぽい別の言語)でRakudoを記述している
  • @@ -209,11 +223,13 @@ nqp::say("time = " ~ ($t1-$t0));
    + +
-
- -

バイトコード

+
+ +

バイトコード

  • 最近のスクリプト言語は、 ソースコードを直接解釈せず、バイトコードに変換する
      @@ -244,7 +260,7 @@
    • バイトコード実行部分は、 命令に対応するバイト列を読み込み、 解釈し、 次の命令を読み取ることを繰り返す
    - +