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 -->