annotate Slide/Slide.html @ 9:480229d0ea65

fig修正
author e165727 <e165727@ie.u-ryukyu.ac.jp>
date Thu, 26 Dec 2019 16:26:58 +0900
parents 3343b5914245
children 4627ec7c3d1b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 <!DOCTYPE html>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 <html>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 <head>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 <meta http-equiv="content-type" content="text/html;charset=utf-8">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 <title>Perl6(Raku)のサーバーを使った高速実行</title>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 <meta name="generator" content="Slide Show (S9) v4.0.1 on Ruby 2.3.7 (2018-03-28) [universal.x86_64-darwin18]">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 <meta name="author" content="Kouki Fukuda, Shinji Kono" >
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 <!-- style sheet links -->
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 <link rel="stylesheet" href="s6/themes/projection.css" media="screen,projection">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 <link rel="stylesheet" href="s6/themes/screen.css" media="screen">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 <link rel="stylesheet" href="s6/themes/print.css" media="print">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 <link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 <!-- JS -->
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 <script src="s6/js/jquery-1.11.3.min.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 <script src="s6/js/jquery.slideshow.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 <script src="s6/js/jquery.slideshow.counter.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 <script src="s6/js/jquery.slideshow.controls.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 <script src="s6/js/jquery.slideshow.footer.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 <script src="s6/js/jquery.slideshow.autoplay.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 <!-- prettify -->
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 <link rel="stylesheet" href="scripts/prettify.css">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 <script src="scripts/prettify.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 <script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 $(document).ready( function() {
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 Slideshow.init();
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 $('code').each(function(_, el) {
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 if (!el.classList.contains('noprettyprint')) {
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 el.classList.add('prettyprint');
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 }
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 });
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 prettyPrint();
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 } );
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 </script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 <!-- Better Browser Banner for Microsoft Internet Explorer (IE) -->
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 <!--[if IE]>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 <script src="s6/js/jquery.microsoft.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 <![endif]-->
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 </head>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 <body>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 <div class="layout">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 <div id="header"></div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 <div id="footer">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 <div align="right">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 <img src="s6/images/logo.svg" width="200px">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 <div class="presentation">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 <div class='slide cover'>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 <table width="90%" height="90%" border="0" align="center">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 <tr>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 <td>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 <div align="center">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 <h1><font color="#808db5">Perl6(Raku)のサーバーを使った高速実行</font></h1>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 </td>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 </tr>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 <tr>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 <td>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 <div align="left">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 Kouki Fukuda, Shinji Kono
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 琉球大学
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 </td>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 </tr>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 </table>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 <div class='slide'>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 <!-- _S9SLIDE_ -->
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 <h2 id="研究背景">研究背景</h2>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 <ul>
9
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
96 <li>現在開発の進んでいる言語に Raku がある.
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
97 スクリプト言語 Raku は任意の VM が選択できるようになっており, 主に利用されている VM に C で書かれた MoarVM が存在する.</li>
7
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 <li>MoarVM は JIT コンパイルなどをサポートしているが, 全体的な起動時間及び処理速度が Perl5 や Python , Ruby などの他のスクリプト言語と比較し非常に低速である.
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 その為, 現在日本国内では Perl6 は実務としてあまり使われていない.</li>
9
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
100 <li>Raku の持つ言語機能や型システムは非常に柔軟かつ強力であるため, 実用的な処理速度に達すれば, 言語の利用件数が向上することが期待される.</li>
7
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 </ul>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 <div class='slide'>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 <!-- _S9SLIDE_ -->
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 <h2 id="研究概要">研究概要</h2>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 <ul>
9
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
111 <li>Raku の実装の一つであるRakudoは、Byte code である MoarVM と、それ上で動作する Raku のsubsetであるnqp (Not Quite Perl)上に構成されている。</li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
112 <li>現状のRakuの実行はRakuで記述されたコンパイラをloadしてJITしながら実行すること自体に時間がかかっている。</li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
113 <li>そこで、Rakuをサーバとして動作させ、実行するファイルをサーバに投げて実行する方法を検討する</li>
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
114 <li>同一ホスト内で終了せずに実行を続けるサーバープロセスを立ち上げ, このサーバープロセス上で立ち上げておいたコンパイラに実行するファイル名を転送し, サーバー上でコンパイルを行う手法を提案し実装する.</li>
7
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 </ul>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 <div class='slide'>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 <!-- _S9SLIDE_ -->
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
123 <h2 id="rakudo">Rakudo</h2>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
124 <ul>
9
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
125 <li>Rakudoとは現在のRakuの主力な実装である.</li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
126 <li>Rakudo は MoarVM, と NQP と呼ばれる Raku のサブセット, NQP と Raku 自身で記述された Raku という構成である.</li>
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
127 </ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
128
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
129 <p><img src="fig/Rakudo.pdf" alt="" /></p>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
130 <ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
131 <li>Rakudoの構成</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
132 </ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
133
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
134
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
135
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
136 </div>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
137
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
138 <div class='slide'>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
139 <!-- _S9SLIDE_ -->
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
140 <h2 id="nqp">NQP</h2>
9
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
141 <ul>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
142 <li>NQPとはNot Quite Perl の略で Raku のサブセットである</li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
143 <li>基本的な文法などは Perl6 に準拠しているが, 変数を束縛で宣言するなどの違いがある.</li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
144 </ul>
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
145
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
146
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
147
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
148 </div>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
149
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
150 <div class='slide'>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
151 <!-- _S9SLIDE_ -->
9
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
152 <h2 id="moarvm">MoarVM</h2>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
153 <ul>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
154 <li>MoarVM は Perl6 に特化した VM</li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
155 <li>C 言 語で実装されている</li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
156 <li>JIT コンパイルなどが現在導入されているが, 起動時間などが低速である問題がある</li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
157 </ul>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
158
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
159
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
160
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
161 </div>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
162
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
163 <div class='slide'>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
164 <!-- _S9SLIDE_ -->
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
165 <h2 id="raku-による-abyssサーバーの実装">Raku による Abyssサーバーの実装</h2>
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
166 <ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
167 <li>提案手法に沿い『Abyssサーバー』を実装した.</li>
9
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
168 <li>Abyssサーバーはクライアント側から投げられた Raku を実行するためのサーバーである.</li>
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
169 <li>下記の図は,Abyss サーバーを用いたスクリプト言語の実行手順である.</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
170 </ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
171
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
172 <p><img src="fig/abyss.pdf" alt="" /></p>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
173
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
174
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
175
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
176 </div>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
177
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
178 <div class='slide'>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
179 <!-- _S9SLIDE_ -->
9
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
180 <h2 id="abyss-serverの利点">Abyss Serverの利点</h2>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
181 <ul>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
182 <li>Abyss Serverを用いて実行することで, サーバー上で事前に起動した Rakudo を再利用し, 投げられた Perl6 スクリプトの実行を行うため, Rakudo の全体的な処理時間を短縮できる.</li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
183 </ul>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
184
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
185
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
186
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
187 </div>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
188
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
189 <div class='slide'>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
190 <!-- _S9SLIDE_ -->
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
191 <h2 id="abyss-serverの欠点">Abyss Serverの欠点</h2>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
192 <ul>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
193 <li></li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
194 </ul>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
195
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
196
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
197
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
198 </div>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
199
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
200 <div class='slide'>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
201 <!-- _S9SLIDE_ -->
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
202 <h2 id="abyss-server側の実装">Abyss Server側の実装</h2>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
203 <ul>
9
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
204 <li>Abyss サーバーは起動すると, まず自身にファイルパスを転送するためのソケットを生成し, その後 ファイルを受け取るための待機ループに入る.</li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
205 <li>ファイルパスを受け取ると,ファイルを開き実行する.</li>
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
206 </ul>
7
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
207
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
208 <pre><code>unit class Abyss::Server:ver&lt;0.0.1&gt;;
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
209 use MONKEY-SEE-NO-EVAL;
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
210
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
211 method readeval {
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
212 my $listen = IO::Socket::INET.new(
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
213 :listen,
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
214 :localhost&lt;localhost&gt;,
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
215 :localport(3333)
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
216 );
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
217 loop {
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
218 my $conn = $listen.accept;
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
219 while my $buf = $conn.read(1024) {
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
220 EVALFILE $buf.decode;
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
221 }
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
222 $conn.close;
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
223 }
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
224 }
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
225 </code></pre>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
226
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
227
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
228
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
229 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
230
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
231 <div class='slide'>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
232 <!-- _S9SLIDE_ -->
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
233 <h2 id="abyss-client側の実装">Abyss Client側の実装</h2>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
234 <ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
235 <li>ユーザーはAbyssのサーバーを起動後,ファイルパスをサーバーに送信する.</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
236 </ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
237
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
238 <pre><code>my $conn = IO::Socket::INET.new( :host&lt;localhost&gt;,
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
239 :port(3333) );
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
240
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
241 $conn.print: 'FILEPASS';
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
242 </code></pre>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
243
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
244
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
245
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
246 </div>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
247
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
248 <div class='slide'>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
249 <!-- _S9SLIDE_ -->
9
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
250 <h2 id="raku-のeval">Raku のEVAL</h2>
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
251 <ul>
9
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
252 <li>Raku では EVAL 関数があり文字列を Perl6 のソースコード自身として評価できる</li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
253 <li>Raku では, EVAL は通常は使用できないようになっており, MONKEY-SEE-NO-EVAL という pragma を実行することで使うことができるようになる.</li>
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
254 </ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
255
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
256 <pre><code>use MONKEY-SEE-NO-EVAL;
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
257
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
258 EVAL "say { 5 + 5 }"; # OUTPUT: 10
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
259 </code></pre>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
260
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
261
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
262
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
263 </div>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
264
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
265 <div class='slide'>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
266 <!-- _S9SLIDE_ -->
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
267 <h2 id="まとめと今後の課題">まとめと今後の課題</h2>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
268 <ul>
9
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
269 <li>Raku の新たな実行方法の提案,及び実装を行なった.</li>
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
270 </ul>
7
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
271
9
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
272
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
273
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
274 </div>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
275
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
276 <div class='slide'>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
277 <!-- _S9SLIDE_ -->
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
278 <h2 id="perl6の実装に関わる様々な言語">Perl6の実装に関わる様々な言語</h2>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
279 <ul>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
280 <li>Raku は,Larry wallにより設計されたオブジェクト指向スクリプト言語である.</li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
281 <li>また Raku は漸進的型付け言語である.</li>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
282 </ul>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
283
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
284 <p><img src="fig/Raku.pdf" alt="" /></p>
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
285
480229d0ea65 fig修正
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
286
7
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
287 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
288
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
289
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
290 </div><!-- presentation -->
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
291 </body>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
292 </html>