comparison slide.md @ 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
comparison
equal deleted inserted replaced
1:b135f074e78c 2:41f44d102cf9
12 ## Perl6とは 12 ## Perl6とは
13 - 当初Perl5の時期バージョンとして開発されていたプログラミング言語 13 - 当初Perl5の時期バージョンとして開発されていたプログラミング言語
14 - 仕様と実装が分離しており, 現在はテストが仕様となっている 14 - 仕様と実装が分離しており, 現在はテストが仕様となっている
15 - 実装は複数存在しているが,現在主流な実装はRakudoとなっている 15 - 実装は複数存在しているが,現在主流な実装はRakudoとなっている
16 - 言語的にはスクリプト言語であり, 漸進的型付き言語となっている 16 - 言語的にはスクリプト言語であり, 漸進的型付き言語となっている
17 - MoarVM, JVMで動作する
17 18
19 <img src="2000px-Camelia.svg.png" alt="" style="width: 31%; height: auto;">
18 20
19 !SLIDE 21 !SLIDE
20 ## Perl6のソースコード概要 22 ## Perl6のソースコード概要
21 23
22 - Perl5の文法とは比較的変更が多い 24 - Perl5の文法とは比較的変更が多い
50 ``` 52 ```
51 53
52 !SLIDE 54 !SLIDE
53 ## Perl6の処理系の構成 55 ## Perl6の処理系の構成
54 56
55 - Perl6の処理系は現在はRakudoと呼ばれる 57 - Perl6の処理系は現在はRakudoと呼ばれる(歴史上複数存在する)
58 - Rakudoは3つのレイヤーから構成されている
59 - Perl6インタプリタ
60 - Perl6インタプリタを記述するPerl6のサブセットNQP
61 - Perl6のバイトコードを解釈するMoarVM
62 - このうちPerl6インタプリタとNQPはNQP自身で記述されている
63 - MoarVMはC言語で記述されている
64
65 !SLIDE
66 ## Perl6とNQP
67
68 - NQP(NotQuitPerl Perlっぽい別の言語)でRakudoを記述している
69 - NQPもNQPで記述されている為、 セルフビルド(自分自身で自分自身をコンパイルする)を行う
70 - NQPはPerl6の文法をベースにしているが、 制約がいくつか存在する
71
72 !SLIDE
73 ## バイトコード
74 - Rakudo/NQPはバイトコードにスクリプトを変換する
75 - バイトコードはMoarVMのドキュメントで制定されている
76 - バイトコード実行部分は、 命令に対応するバイト列を読み込み、 解釈し、 次の命令を読み取ることを繰り返す
77