comparison Slide/slide.html @ 86:2c38abf2c77d

add poster
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Wed, 09 Jan 2019 19:13:02 +0900
parents 1f4e174f0f1a
children 632f160ccbd0
comparison
equal deleted inserted replaced
85:1f4e174f0f1a 86:2c38abf2c77d
92 92
93 <!-- _S9SLIDE_ --> 93 <!-- _S9SLIDE_ -->
94 <h2 id="研究目的">研究目的</h2> 94 <h2 id="研究目的">研究目的</h2>
95 <ul> 95 <ul>
96 <li>スクリプト言語であるPerl5の後継言語としてPerl6が現在開発されている.</li> 96 <li>スクリプト言語であるPerl5の後継言語としてPerl6が現在開発されている.</li>
97 <li>Perl6は設計と実装が区分されており様々な処理系が開発されている.現在主流なPerl6はRakudoと言われるプロジェクトである.</li> 97 <li>現在主流なPerl6はRakudoと言われるプロジェクトである.</li>
98 <li>RakudoではPerl6自体をNQP(NotQuitPerl)と言われるPerl6のサブセットで記述し, NQPをVMが解釈するという処理の流れになっている.</li> 98 <li>RakudoではPerl6自体をNQP(NotQuitPerl)と言われるPerl6のサブセットで記述し, NQPをVMが解釈するという処理の流れになっている.</li>
99 <li>このVMは任意のVMが選択できるようになっており, 現在はMoarVM, JavaVM, JavaScriptが動作環境として選択可能である.</li> 99 <li>主に利用されているVMに, Cで書かれたMoarVMが存在する.</li>
100 <li>主に利用されているVMにCで書かれたMoarVMが存在する.</li> 100 <li>MoarVMは全体的な起動時間及び処理速度が, Perl5と比較し非常に低速である.</li>
101 <li>MoarVMはJITコンパイルなどをサポートしているが, 全体的な起動時間及び処理速度がPerl5と比較し非常に低速である.</li>
102 <li>この問題を解決するためにContinuation based C (CbC)という言語を一部用いてMoarVMの書き換えを行う.</li> 101 <li>この問題を解決するためにContinuation based C (CbC)という言語を一部用いてMoarVMの書き換えを行う.</li>
103 <li>CbCを用いたMoarVMの書き換えを検討し,並列デバッグ方法などについて検討する.</li> 102 <li>CbCを用いたMoarVMの書き換えを検討し,並列デバッグ方法などについて検討する.</li>
104 </ul> 103 </ul>
105 104
106 105
188 <!-- _S9SLIDE_ --> 187 <!-- _S9SLIDE_ -->
189 <h2 id="perl6の概要">Perl6の概要</h2> 188 <h2 id="perl6の概要">Perl6の概要</h2>
190 189
191 <ul> 190 <ul>
192 <li>Perl6とはPerl5の後継言語として当初開発が開始された言語である.</li> 191 <li>Perl6とはPerl5の後継言語として当初開発が開始された言語である.</li>
193 <li>仕様と実装が分離しており, 仕様は公式テストスイートであるRoastそのものとなっている.</li> 192 <li>仕様と実装が分離しており, 仕様は公式テストスーツであるRoastそのものとなっている.</li>
194 <li>歴史的にHaskellで実装されたPugs, Pythonとの共同基盤を目指したParrotなどの実装が存在する.</li> 193 <li>歴史的にHaskellで実装されたPugs, Pythonとの共同基盤を目指したParrotなどの実装が存在する.</li>
195 <li>言語仕様としては漸進的型付け言語であり, 従来のPerl5とは互換性が無い.</li> 194 <li>言語仕様としては漸進的型付け言語であり, 従来のPerl5とは互換性が無い.</li>
196 <li>現在の主要な実装はRakudoと呼ばれる実装である.</li> 195 <li>現在の主要な実装はRakudoと呼ばれる実装である.</li>
197 </ul> 196 </ul>
198 197
657 53 : 53 656 53 : 53
658 *54 : 8 657 *54 : 8
659 </code></pre> 658 </code></pre>
660 659
661 660
661 </div>
662
663 <div class='slide'>
664 <!-- _S9SLIDE_ -->
665 <h2 id="現在のcbcmoarvm">現在のCbCMoarVM</h2>
666
667 <ul>
668 <li>現在はNQP, Rakudoのセルフビルドが達成でき, オリジナルと同等のテスト達成率を持っている</li>
669 <li>moarの起動時のオプションとして <code>--cbc</code> を与えることによりCbCで動き, そうでない場合は通常のCで記述された箇所で実行される</li>
670 </ul>
671
672
673
674 </div>
675
676 <div class='slide'>
677 <!-- _S9SLIDE_ -->
678 <h2 id="cbcmoarvmの利点">CbCMoarVMの利点</h2>
679
680 <ul>
681 <li>バイトコードインタプリタの箇所をモジュール化する事が可能となり, CodeGearの再利用性や記述生が高まる</li>
682 <li>デバッグ時にラベルではなくCodeGearにbreakpointを設定可能となり,デバッグが安易となる</li>
683 <li>ThreadedCodeを実装する場合, CodeGearを組み合わせることにより実装する事が可能となる</li>
684 </ul>
685
686
687
688 </div>
689
690 <div class='slide'>
691 <!-- _S9SLIDE_ -->
692 <h2 id="cbcmoarvmの欠点">CbCMoarVMの欠点</h2>
693
694 <ul>
695 <li>CbCコンパイラがバグを発生させやすく, 意図しない挙動を示す事がある</li>
696 <li>MoarVMのオリジナルの更新頻度が高い為, 追従していく必要がある</li>
697 <li>CodeGear側からCに戻る際に手順が複雑となる</li>
698 <li>CodeGearを単位として用いる事で複雑なプログラミングが要求される.</li>
699 </ul>
700
701
662 702
663 </div> 703 </div>
664 704
665 <div class='slide'> 705 <div class='slide'>
666 <!-- _S9SLIDE_ --> 706 <!-- _S9SLIDE_ -->