Mercurial > hg > Events > OSC2019
comparison slide.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 |
comparison
equal
deleted
inserted
replaced
1:b135f074e78c | 2:41f44d102cf9 |
---|---|
84 | 84 |
85 <div class='slide '> | 85 <div class='slide '> |
86 <!-- === begin markdown block === | 86 <!-- === begin markdown block === |
87 | 87 |
88 generated by markdown/1.2.0 on Ruby 2.4.2 (2017-09-14) [x86_64-darwin16] | 88 generated by markdown/1.2.0 on Ruby 2.4.2 (2017-09-14) [x86_64-darwin16] |
89 on 2019-04-15 17:44:28 +0900 with Markdown engine kramdown (1.16.2) | 89 on 2019-04-16 18:12:19 +0900 with Markdown engine kramdown (1.16.2) |
90 using options {} | 90 using options {} |
91 --> | 91 --> |
92 <h2 id="section">このセッションの内容</h2> | 92 <h2 id="section">このセッションの内容</h2> |
93 | 93 |
94 <ul> | 94 <ul> |
104 <ul> | 104 <ul> |
105 <li>当初Perl5の時期バージョンとして開発されていたプログラミング言語</li> | 105 <li>当初Perl5の時期バージョンとして開発されていたプログラミング言語</li> |
106 <li>仕様と実装が分離しており, 現在はテストが仕様となっている</li> | 106 <li>仕様と実装が分離しており, 現在はテストが仕様となっている</li> |
107 <li>実装は複数存在しているが,現在主流な実装はRakudoとなっている</li> | 107 <li>実装は複数存在しているが,現在主流な実装はRakudoとなっている</li> |
108 <li>言語的にはスクリプト言語であり, 漸進的型付き言語となっている</li> | 108 <li>言語的にはスクリプト言語であり, 漸進的型付き言語となっている</li> |
109 </ul> | 109 <li>MoarVM, JVMで動作する</li> |
110 </ul> | |
111 | |
112 <p><img src="2000px-Camelia.svg.png" alt="" style="width: 31%; height: auto;" /></p> | |
110 | 113 |
111 </div> | 114 </div> |
112 <div class='slide '> | 115 <div class='slide '> |
113 <!-- _S9SLIDE_ --> | 116 <!-- _S9SLIDE_ --> |
114 | 117 |
147 </ul> | 150 </ul> |
148 | 151 |
149 <pre><code>my Int $int_value = 31; | 152 <pre><code>my Int $int_value = 31; |
150 $int_value = "hello"; # Compile error! | 153 $int_value = "hello"; # Compile error! |
151 </code></pre> | 154 </code></pre> |
155 | |
156 </div> | |
157 <div class='slide '> | |
158 <!-- _S9SLIDE_ --> | |
159 | |
160 <h2 id="perl6-3">Perl6の処理系の構成</h2> | |
161 | |
162 <ul> | |
163 <li>Perl6の処理系は現在はRakudoと呼ばれる(歴史上複数存在する)</li> | |
164 <li>Rakudoは3つのレイヤーから構成されている | |
165 <ul> | |
166 <li>Perl6インタプリタ</li> | |
167 <li>Perl6インタプリタを記述するPerl6のサブセットNQP</li> | |
168 <li>Perl6のバイトコードを解釈するMoarVM</li> | |
169 </ul> | |
170 </li> | |
171 <li>このうちPerl6インタプリタとNQPはNQP自身で記述されている</li> | |
172 <li>MoarVMはC言語で記述されている</li> | |
173 </ul> | |
174 | |
175 </div> | |
176 <div class='slide '> | |
177 <!-- _S9SLIDE_ --> | |
178 | |
179 <h2 id="perl6nqp">Perl6とNQP</h2> | |
180 | |
181 <ul> | |
182 <li>NQP(NotQuitPerl Perlっぽい別の言語)でRakudoを記述している</li> | |
183 <li>NQPもNQPで記述されている為、 セルフビルド(自分自身で自分自身をコンパイルする)を行う</li> | |
184 <li>NQPはPerl6の文法をベースにしているが、 制約がいくつか存在する</li> | |
185 </ul> | |
186 | |
187 </div> | |
188 <div class='slide '> | |
189 <!-- _S9SLIDE_ --> | |
190 | |
191 <h2 id="section-1">バイトコード</h2> | |
192 <ul> | |
193 <li>Rakudo/NQPはバイトコードにスクリプトを変換する</li> | |
194 <li>バイトコードはMoarVMのドキュメントで制定されている</li> | |
195 <li>バイトコード実行部分は、 命令に対応するバイト列を読み込み、 解釈し、 次の命令を読み取ることを繰り返す</li> | |
196 </ul> | |
197 | |
152 <!-- === end markdown block === --> | 198 <!-- === end markdown block === --> |
153 </div> | 199 </div> |
154 | 200 |
155 | 201 |
156 </div><!-- presentation --> | 202 </div><!-- presentation --> |