============================================================ プログラム言語「てってってー」(Tettette Language) 利用方法の説明 (C)2009- H.Hiro(Maraigue) http://kugyu.info/tettette/ ============================================================ ==== 1. はじめに =============================================================== プログラム言語「てってってー」(以下「てってってー言語」)は、「てってってー」を テーマにしたプログラム言語です。 ※「てってってー」そのものについては、こちらをご参照下さい。  てってってーとは - ニコニコ大百科  http://dic.nicovideo.jp/a/%E3%81%A6%E3%81%A3%E3%81%A6%E3%81%A3%E3%81%A6%E3%83%BC 特徴は、ソースコードが以下のように「てってってー」だらけになることです。   ーてってってー   てっててーてっててーてっててーてっててー   てってっーてってっーてってっーてってっー   ーててーてっててーてってっー   ーーてってっててー   てっててーてっててーてっててーてっててーてっててーてっててー   てってっーてってっーてってっーてってっーてってっーてってっー   ーててーてっててーてってっー   ーーてーてっててーてってっー これをソースコードとしててってってー言語のインタプリタに与えると、   てってってーてってっててー を出力します。 てってってー言語の構造は、Brainf*ck(http://ja.wikipedia.org/wiki/Brainfuck)が 元になっています。ただし、数点仕様を拡張しています。 詳細な言語仕様・チュートリアルについては、同梱しているHelp.txtをご参照下さい。 ==== 2. 起動方法 =============================================================== ---- 2.1. Windowsの場合(そのまま利用する)------------------------------------- ※Windows 2000/XP/Vistaのみ対応となります。Windows 7でも動くかもしれません。 ※動作確認はWindows Vistaでのみ行っています。 同梱されている tettette.bat が、てってってー言語のインタプリタを動かす部分と なります(インタプリタの実体は tettette_run.exe です)。 コマンドプロンプトを開き、カレントディレクトリをこのアーカイブを展開した ディレクトリに移動させます。そしてコマンドプロンプト上で   tettette sample-base.ttt のように指定すると、sample-base.ttt の内容が実行され、この場合   てってってーてってっててー と出力されます。 なお同梱されている tettette_run.exe および nkf.exe は、Visual Studio 2008 Express Edition(http://www.microsoft.com/japan/msdn/vstudio/Express/)を用いて コンパイルされています。 動作しない場合は、「Visual C++ 2008 再頒布可能パッケージ」 (http://www.microsoft.com/downloads/details.aspx?familyid=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=ja) をインストールすると(おそらく)動作します。 ※nkf.exe は、The nkf Projectによる、文字コードの変換を行うプログラムです。 詳細は以下のサイトをご覧下さい。  http://sourceforge.jp/projects/nkf/ tettette_run.exe はUTF-8でしか結果を出力できず、コマンドプロンプトにおける 文字化けを回避するために nkf.exe を利用しています。 ---- 2.2. Windowsの場合(ソースコードからコンパイルする)----------------------- Visual Studioが利用できる場合、nmakeを利用することでコンパイルが可能です。 (1)プログラム一覧から   「Visual Studio」(お持ちのバージョンのもの)   →「Visual Studio ツール」(あるいは「Visual Studio Tools」などの名称)   →「Visual Studio **** コマンド プロンプト」  を選択する。 (2)カレントディレクトリを、このアーカイブを展開したディレクトリに移動させます。 (3)Makefile を編集し、先頭の「For Windows」の部分のコメントアウトを解除し、  続く「For Unix(-like OS)」の部分をコメントアウトします。  ※Makefile においては、「#」から行末までがコメントとなります。 (4)「nmake」を実行する。少し警告が出ますがそのままで大丈夫です。  問題がなければ、tettette_run.exe が生成されます。 (5)プログラム実行に必要のないファイルが要らなければ、「nmake clean-sub」で  消去できます。またコンパイルして生成した全ファイルを消してコンパイルをやり直す  場合は、「nmake clean」で消去できます。 ---- 2.3. Unix系OS(Linux, *BSD, Mac OS Xなど)の場合 (ソースコードからコンパイルする) ---------------------------- 上記「2.2.」とほぼ同様となります(「nmake」を「make」と読み換えて下さい。また (3)の手順は不要となります)。 C++のコンパイラが必要です。なお当方では、Ubuntu 8.04+gcc4.2.4にて動作を確認して います。 コンパイルが正常に行われると、実行ファイル(インタプリタの本体)tettette_run が 生成されます。 同梱している tettette.euc.sh あるいは tettette.utf8.sh を用いて  chmod u+x tettette.utf8.sh  ./tettette.utf8.sh sourcecode.ttt のように実行すると、結果が出力されます。tettette.euc.sh と tettette.utf8.sh の 違いは、出力がどの文字コードで行われるかです(EUC-JPあるいはUTF-8)。お使いの シェルの設定に合わせてお選び下さい。 ---- 2.4. ソースコードからのコンパイルが出来る条件など ------------------------- * 内部の数値の扱いがリトルエンディアンの場合で決め打ちになっているため、数値を  ビッグエンディアンで表現するアーキテクチャ上では正常に動作しないです  (おそらく)。 * 「unsigned shortが16ビット整数である」という状況を想定しています。そうでない  場合、tettette_run のコンパイル前のチェックで引っかかって失敗します。  unsigned shortが16ビットでない環境では、ttt-type.hpp を適宜修正した上で  コンパイルして下さい。 ---- 2.5. ソースコードの各ファイルの役割 --------------------------------------- * tettette.{cpp,hpp} インタプリタの中心部です。 * tettette_run.cpp コマンドラインから受け取ったコマンドをインタプリタに 渡す役割を担っています。 * get_content.{cpp,hpp} ファイル全体を読み込んでメモリに格納する部分です。 * trie.{cpp,hpp} TRIE木(複数の文字列を木構造に格納したもの)の定義です。 当言語において特別な意味を持つ文字列をソースコード中から 検出するために用いています。 * ttt-type.hpp tettette.{cpp,hpp} が利用する型の定義を行います。 * check.cpp ttt-type.hpp にて、tettette.{cpp,hpp} が求める型が正しく 定義されているかを調べるためのプログラムです。 ==== 3. 著作権表示 ============================================================= (C)2009- H.Hiro(Maraigue) メールアドレス main@hhiro.net 配布サイト http://kugyu.info/tettette/ ドキュメントも含め、クリエイティブ・コモンズの「表示 2.1 日本」に従う限りに おいて、自由に利用することを認めます。 http://creativecommons.org/licenses/by/2.1/jp/ ただし、H.Hiro(Maraigue)が制作した以外のファイルはこの限りではありません。 具体的には以下のファイルが該当します。 ・nkf.exe   Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa)   Copyright (C) 1996-2009, The nkf Project   http://sourceforge.jp/projects/nkf/   ライセンスは zlib/libpng License です。   http://opensource.org/licenses/zlib-license.php