Mercurial > hg > Papers > 2019 > anatofuz-prosym
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_ --> |