# HG changeset patch # User anatofuz # Date 1550575047 -32400 # Node ID 0bdadb2a7355341f455238146e8f8284eaa98836 # Parent 327fc13703d9ac181bd803373aef25ddc5facc7f update diff -r 327fc13703d9 -r 0bdadb2a7355 paper/chapter1.tex --- a/paper/chapter1.tex Tue Feb 19 19:40:03 2019 +0900 +++ b/paper/chapter1.tex Tue Feb 19 20:17:27 2019 +0900 @@ -7,16 +7,16 @@ %\section{メタ計算の重要性} -現在開発が進んでいるプログラミング言語にPerl6がある。 -Perl6は設計と実装が分離しており、 現在の主要な実装はRakudoと呼ばれている。 -RakudoはPerl6のサブセットである、NQPと呼ばれる言語を中心に 記述されている。 +現在開発が進んでいるプログラミング言語にPerl6がある。\cite{perl6doc} +Perl6は設計と実装が分離しており\cite{perl6design}、 現在の主要な実装はRakudoと呼ばれている。 +RakudoはPerl6のサブセットである、NQP\cite{nqp}と呼ばれる言語を中心に 記述されている。 NQP自体はプロセス仮想機械と呼ばれる、 言語処理系の仮想機械で実行される。 Rakudoの場合実行する仮想機械は、 Perl6専用の処理系であるMoarVM、 Java環境のJVMが選択可能である。 Rakudoはインタプリタの起動時間及び、 全体的な処理時間が他のスクリプト言語と比較して非常に低速である。 また、 実行環境であるMoarVMの実装事態も複雑であり、 巨大なcase文が利用されているなど見通しが悪くなっている。 -当研究室で開発しているプログラミング言語に、 Continuation Based C (CbC) がある。 +当研究室で開発しているプログラミング言語に、 Continuation Based C (CbC)\cite{gcccbc} がある。 CbCはCと互換性のある言語であり、 関数より細かな単位である、 CodeGearを用いて記述することが可能となる。 CbCでは各CodeGear間の移動に、 環境などを保存せず次の状態に移動する軽量継続を用いている。 この為、 C言語におけるループや関数呼び出しを排除する事が可能となる。 diff -r 327fc13703d9 -r 0bdadb2a7355 paper/chapter2.tex --- a/paper/chapter2.tex Tue Feb 19 19:40:03 2019 +0900 +++ b/paper/chapter2.tex Tue Feb 19 20:17:27 2019 +0900 @@ -1,7 +1,7 @@ \chapter{Continuation Based C} \section{CbCの概要} -Continuation Based C (CbC) は当研究室で開発を行っているプログラミング言語である。 -現在はCコンパイラであるgcc及びllvmをバックエンドとしたclang、 MicroCコンパイラ上の3種類の実装がある。 +Continuation Based C (CbC) は当研究室で開発を行っているプログラミング言語である。\cite{gcccbc}\cite{llvmcbc} +現在はCコンパイラであるgcc及びllvmをバックエンドとしたclang、 MicroCコンパイラ上の3種類の実装がある。\cite{cbcgcc}\cite{cbcllvm} C言語を用いてプログラミングを行い場合、本来プログラマが行いたい処理の他に、 mallocなどの関数を利用したメモリのアロケートなどのメモリ管理が必要となる。 他にもエラーハンドリングなどの雑多な処理が必要となる。 diff -r 327fc13703d9 -r 0bdadb2a7355 paper/chapter3.tex --- a/paper/chapter3.tex Tue Feb 19 19:40:03 2019 +0900 +++ b/paper/chapter3.tex Tue Feb 19 20:17:27 2019 +0900 @@ -3,9 +3,9 @@ Perl6は2002年にLarryWallが、 Perl5を置き換える言語として設計を開始したプログラミング言語である。 Perl5の言語的な問題点である、 オブジェクト指向機能の強力なサポートや、 正規表現の表現力の拡大などを取り入れた言語として設計された。 Perl5は設計と実装が同一であり、 Unixベースの環境で主に利用されている perl はLarryらによって開発されているC言語による実装のみである。 -Perl6は仕様と実装が分離されており、 現在はテストスーツであるRoastが仕様となっている。 +Perl6は仕様と実装が分離されており、 現在はテストスーツであるRoast\cite{roast}が仕様となっている。 -実装は歴史的に様々なものが開発されており、 Haskellで実装されたPugs、 Pythonとの共同実行環境を目指したParrotなどが存在する。 +実装は歴史的に様々なものが開発されており、 Haskellで実装されたPugs\cite{pugs}、 Pythonとの共同実行環境を目指したParrot\cite{parrot}などが存在する。 PugsやParrotは現在は歴史的な実装となっており、 開発は行われていない。 現在の主要な実装であるRakudoは、 Parrotと入れ替わる形で実装が進んでいる。 diff -r 327fc13703d9 -r 0bdadb2a7355 paper/main.pdf Binary file paper/main.pdf has changed