このページの短縮URLは http://chiraura.hhiro.net/tettette/ です。
「てってってー」で書くプログラム言語です。
Brainf*ckのパクリですが、若干拡張仕様があります。
{「てってってーてってっててー」と出力するプログラム}
ーてってってー {「てってっ」をメモリに書き込む}
てっててーてっててーてっててーてっててー {ポインタを4つ戻す}
てってっーてってっーてってっーてってっー {標準出力へ4文字出力する}
ーててーてっててーてってっー {「て」をメモリに書き込み、ポインタを戻してから標準出力へ出力する}
ーーてってっててー {「ーてってって」をメモリに書き込む}
てっててーてっててーてっててーてっててーてっててーてっててー {ポインタを6つ戻す}
てってっーてってっーてってっーてってっーてってっーてってっー {標準出力へ6文字出力する}
ーててーてっててーてってっー {「て」をメモリに書き込み、ポインタを戻してから標準出力へ出力する}
ーーてーてっててーてってっー {「ー」をメモリに書き込み、ポインタを戻してから標準出力へ出力する}
以下の環境ならば、OSに関わらず動作させられると思われます。
※64bit機での検証は出来ていません。ひょっとしたらそのままコンパイル出来るかもしれません。
「動作した/しなかった」「そのままだと動作しなかったが、部分的に変更することで動作した」など、分かったことがありましたらご連絡お願いします。
Windows用実行ファイル(実行にはVisual C++ 2008のランタイムが必要)、ソースコード、サンプルコードを同梱しています。
まだアルファ版という位置づけです。
なお現在のところ、ソースコードはUTF-16 little endianのみ対応してます(BOMはあってもなくてもよい)。
作成途中の仕様に従って作成されている模様のため、若干挙動が違うかもしれません。例えば「"てってってー"による記法とBrainf*ck風の記法を混ぜたコード」には対応してないかもしれません。
404 Blog Not Found:javascript - てってってー言語を移植してみた
さっそくC#でプログラム言語「てってってー」のインタプリタを書いたよ - Bug Catharsis
この言語の元ネタである、Brainf*ckも利用可能。
ただし、B[P]でBのP番目の値(0〜65535)を示す。
ソースコードを先頭から読み込み、以下のいずれかの文字列に合致したら、それに応じた処理を行います。
(2009.4.7追記)
てってってー言語で特殊な意味を持つ文字列は、ASCIIでも表記できるようにしてあります。ほとんどBrainf*ckに合わせてます。
| 基本の表記法 | ASCII文字での表記法 | 意味 |
|---|---|---|
| ー | ` | 文字列リテラルの始点 |
| てー | '" | 文字列リテラルの終点 |
| ててー | + | バッファの値を1増やす |
| てっー | - | バッファの値を1減らす |
| てってー | > | ポインタを1進める |
| てっててー | < | ポインタを1戻す |
| てってっー | ) | バッファの値を標準出力に出力したのち、ポインタを1進める |
| (なし) | . | バッファの値を標準出力に出力する |
| てってってー | ( | 標準入力から読んだ文字をバッファに書き込んだのち、ポインタを1進める |
| (なし) | , | 標準入力から読んだ文字をバッファに書き込む |
| てってっててー | [ | ループの開始 |
| てってってっー | ] | ループの終了 |
main(あっとまーく)hhiro.net