# HG changeset patch # User Takahiro SHIMIZU # Date 1540806911 -32400 # Node ID 06f3183ef6c3764fa2e281ffb749767b20f9b1ba # Parent 1035c41fc2db1ccc125dc435159e13ddab51f659 add about Perl6 diff -r 1035c41fc2db -r 06f3183ef6c3 anatofuz.tex --- a/anatofuz.tex Thu Oct 25 18:38:14 2018 +0900 +++ b/anatofuz.tex Mon Oct 29 18:55:11 2018 +0900 @@ -49,6 +49,29 @@ 本稿ではまずPerl6の特徴及び実装について述べ,次に改良を行うMoarVMの一連の処理流れについて述べる. そして今回改良した一部分と今後の展開について記す. +\section{Perl6} +この章では現在までのPerl6の遍歴及びPerl6の言語的な特徴について記載する. +\subsection{現在までのPerl6} +Perl6は2002年にLarryWallがPerlを置き換える言語として開発を開始した. +Perl5の言語的な問題点である純粋なオブジェクト指向言語としての機能などを取り入れた言語として設計された. +Perl5は設計と実装が同一であり,Larryらによって書かれたC実装のみだった.Perl6は設計と実装が分離しており様々な処理系が開発されきた. +まず2005年に唐鳳によってHaskellで実装されたPugs\footnote{http://hackage.haskell.org/package/Pugs}が登場した. +Pugsは最初に登場したPerl6実装であり,この実装を基にしてPerl6の仕様も修正された. +その後Pythonとの共同動作環境としてParrot\footnote{http://parrot.org/}が実装された. +ParrotはPASMと呼ばれるアセンブリを解釈可能なレジスタマシンである. +ParrotでのPerl6の実装はNQP(NotQuitPerl)と呼ばれるPerl6のサブセットでPerl6を記述するというアイディアの基実装された. +ParrotVMは2006年のversion8.1.0を最後に開発が終了した. +現在主に使用されている実装であるRakudoは2010年にRakudo-Starという一連のツール郡としてリリースされた. + +\subsection{Rakudo} + +RakudoとはParrotで使用されていたNQP,Perl6を基にしたプロジェクトである. +RakudoプロジェクトがPerl6のコンパイラと考えても良い. +Rakudoの構成はNQPで記述されたPerl6,NQP自身,そしてNQPを解釈するVMという構成である. +このVMは現在MoarVM,JavaVM,Javascript,GraalVMを選択可能である. +RakudoStarとはこのMoarVM,NQP,Perl6が一体となったコマンドラインの事である. + + \section{論文1ページ目の情報}