annotate Slide/Slide.pdf.html @ 8:3343b5914245

add Slide
author e165727 <e165727@ie.u-ryukyu.ac.jp>
date Wed, 25 Dec 2019 16:10:22 +0900
parents 126266fc2c30
children 480229d0ea65
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/screen.css" media="screen">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 <link rel="stylesheet" href="s6/themes/print.css" media="print">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 <link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 <!-- JS -->
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 <script src="s6/js/jquery-1.11.3.min.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 <script src="s6/js/jquery.slideshow.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 <script src="s6/js/jquery.slideshow.counter.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 <script src="s6/js/jquery.slideshow.controls.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 <script src="s6/js/jquery.slideshow.footer.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 <script src="s6/js/jquery.slideshow.autoplay.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 <!-- prettify -->
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 <link rel="stylesheet" href="scripts/prettify.css">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 <script src="scripts/prettify.js"></script>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 <style>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 .slide {page-break-after: always;}
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 </style>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35
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
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 </head>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 <body>
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 <div class="layout">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 <div id="header"></div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 <div id="footer">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 <div align="right">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 <img src="s6/images/logo.svg" width="200px">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 <div class="presentation">
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 <div class='slide cover'>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 <table width="90%" height="90%" border="0" align="center">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 <tr>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 <td>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 <div align="center">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 <h1><font color="#808db5">Perl6(Raku)のサーバーを使った高速実行</font></h1>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 </td>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 </tr>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 <tr>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 <td>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 <div align="left">
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 Kouki Fukuda, Shinji Kono
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 琉球大学
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 <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
68 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 </td>
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 </table>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 <div class='slide'>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 <!-- _S9SLIDE_ -->
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 <h2 id="研究背景">研究背景</h2>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 <ul>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 <li>現在開発の進んでいる言語に Perl6 がある.
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 スクリプト言語 Perl6 は任意の VM が選択できるようになっており, 主に利用されている VM に C で書かれた MoarVM が存在する.</li>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 <li>MoarVM は JIT コンパイルなどをサポートしているが, 全体的な起動時間及び処理速度が Perl5 や Python , Ruby などの他のスクリプト言語と比較し非常に低速である.
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 その為, 現在日本国内では Perl6 は実務としてあまり使われていない.</li>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 <li>Perl6 の持つ言語機能や型システムは非常に柔軟かつ強力であるため, 実用的な処理速度に達すれば, 言語の利用件数が向上することが期待される.</li>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 </ul>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87
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 </div>
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 <!-- _S9SLIDE_ -->
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 <h2 id="研究概要">研究概要</h2>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 <ul>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 <li>Perl6 の実装の一つであるRakudoは、Byte code である MoarVM と、それ上で動作する Perl6 のsubsetであるnqp (Not Quite Perl)上に構成されている。</li>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 <li>現状のPerl6の実行はPerl6で記述されたコンパイラをloadしてJITしながら実行すること自体に時間がかかっている。</li>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 <li>そこで、Perl6をサーバとして動作させ、実行するファイルをサーバに投げて実行する方法を検討する</li>
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
98 <li>同一ホスト内で終了せずに実行を続けるサーバープロセスを立ち上げ, このサーバープロセス上で立ち上げておいたコンパイラに実行するファイル名を転送し, サーバー上でコンパイルを行う手法を提案し実装する.</li>
7
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 </ul>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101
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 </div>
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 class='slide'>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 <!-- _S9SLIDE_ -->
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
107 <h2 id="perl6raku">Perl6(Raku)</h2>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
108
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
109
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
110
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
111 </div>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
112
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
113 <div class='slide'>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
114 <!-- _S9SLIDE_ -->
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
115 <h2 id="rakudo">Rakudo</h2>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
116 <ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
117 <li>Rakudoとは現在のPerl6の主力な実装である.</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
118 <li>Rakudo は MoarVM, と NQP と呼ばれる Perl6 のサブセット, NQP と Perl6 自身で記述された Perl6 という構成である.</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
119 </ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
120
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
121 <p><img src="fig/Rakudo.pdf" alt="" /></p>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
122 <ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
123 <li>Rakudoの構成</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
124 </ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
125
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
126
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
127
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
128 </div>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
129
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
130 <div class='slide'>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
131 <!-- _S9SLIDE_ -->
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
132 <h2 id="nqp">NQP</h2>
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="perl6-による-abyssサーバーの実装">Perl6 による Abyssサーバーの実装</h2>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
141 <ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
142 <li>提案手法に沿い『Abyssサーバー』を実装した.</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
143 <li>Abyssサーバーはクライアント側から投げられた Perl6 を実行するためのサーバーである.</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
144 <li>下記の図は,Abyss サーバーを用いたスクリプト言語の実行手順である.</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
145 </ul>
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 <p><img src="fig/abyss.pdf" alt="" /></p>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
148
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
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
151 </div>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
152
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
153 <div class='slide'>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
154 <!-- _S9SLIDE_ -->
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
155 <h2 id="abyss-server側の実装">Abyss Server側の実装</h2>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
156 <ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
157 <li>Abyss サーバーは起動すると, まず自身にファイル パスを転送するためのソケットを生成し, その後 ファイルを受け取るための待機ループに入る.</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
158 </ul>
7
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 <pre><code>unit class Abyss::Server:ver&lt;0.0.1&gt;;
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 use MONKEY-SEE-NO-EVAL;
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 method readeval {
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 my $listen = IO::Socket::INET.new(
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 :listen,
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 :localhost&lt;localhost&gt;,
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 :localport(3333)
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 );
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 loop {
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 my $conn = $listen.accept;
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 while my $buf = $conn.read(1024) {
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 EVALFILE $buf.decode;
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 }
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 $conn.close;
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 }
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 }
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 </code></pre>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
178
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
179
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
180
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
182
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 <div class='slide'>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 <!-- _S9SLIDE_ -->
8
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
185 <h2 id="abyss-client側の実装">Abyss Client側の実装</h2>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
186 <ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
187 <li>ユーザーはAbyssのサーバーを起動後,ファイルパスをサーバーに送信する.</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
188 </ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
189
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
190 <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
191 :port(3333) );
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
192
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
193 $conn.print: 'FILEPASS';
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
194 </code></pre>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
195
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
196
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
197
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
198 </div>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
199
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
200 <div class='slide'>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
201 <!-- _S9SLIDE_ -->
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
202 <h2 id="perl6のeval">Perl6のEVAL</h2>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
203 <ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
204 <li>Perl6 では EVAL 関数があり文字列を Perl6 のソースコード自身として評価できる</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
205 <li>Perl6 では, EVAL は通常は使用できないようになっており, MONKEY-SEE-NO-EVAL という pragma を実行することで使うことができるようになる.</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
206 </ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
207
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
208 <pre><code>use MONKEY-SEE-NO-EVAL;
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
209
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
210 EVAL "say { 5 + 5 }"; # OUTPUT: 10
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
211 </code></pre>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
212
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
213
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
214
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
215 </div>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
216
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
217 <div class='slide'>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
218 <!-- _S9SLIDE_ -->
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
219 <h2 id="まとめと今後の課題">まとめと今後の課題</h2>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
220 <ul>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
221 <li>Perl6 の新たな実行方法の提案,及び実装を行なった.</li>
3343b5914245 add Slide
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
222 </ul>
7
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 </div>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
225
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 </div><!-- presentation -->
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
228 </body>
126266fc2c30 Slide追加
e165727 <e165727@ie.u-ryukyu.ac.jp>
parents:
diff changeset
229 </html>