Mercurial > hg > Events > OSC2019
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 |