Piet
出典: フリー百科事典『ウィキペディア(Wikipedia)』
| Piet | |
|---|---|
| パラダイム | 構造化プログラミング |
| 設計者 | David Morgan-Mar |
| 型付け | なし |
| 主な処理系 | PietDev, npiet, Piet::Interpreter |
| ウェブサイト | DM's Esoteric Programming Languages - Piet |
Pietで記述したHello worldプログラム
Piet(ピエト)は、プログラミング言語であり、難解プログラミング言語のひとつである。
Ook! などのいくつかの難解プログラミング言語を開発した David Morgan-Mar がピエト・モンドリアンの作品に影響を受けて考案した言語で、文字ではなく色を組み合わせて記述する。 サンプルソースコード[1]を一見すると、抽象画のように見える。
[編集] 言語仕様
色相と明度の変化の度合いによって命令や定義を表している。データの処理はスタックを用いて行う。
| 明度の変化 | |||
|---|---|---|---|
| 色相の変化 | 変化無し | 1段階変化 | 2段階変化 |
| 変化無し | push | pop | |
| 1段階変化 | add | subtract | multiply |
| 2段階変化 | divide | mod | not |
| 3段階変化 | greater | pointer | switch |
| 4段階変化 | duplicate | roll | in (number) |
| 5段階変化 | in (char) | out (number) | out (char) |
- push:値をスタックに詰め込む
- pop:値をスタックから取り出す
- add:値を2つスタックから取り出し、加算した結果をスタックに詰める。
- subtract:値を2つスタックから取り出し、2つ目の値から1つ目の値を減算した結果をスタックに詰める。
- multiply:値を2つスタックから取り出し、乗算した結果をスタックに詰める。
- divide:値を2つスタックから取り出し、2つ目の値を1つ目の値で除算した結果をスタックに詰める。
- mod:値を2つスタックから取り出し、2つ目の値を1つ目の値で除算した際の余りをスタックに詰める。
- not:スタックの一番上の値が0でなければ0、0であれば1に変更する。
- greater:値を2つスタックから取り出し、二番目の値が一番目の値より大きければ1、そうでなければ0をスタックに詰める。
- in:標準入力から値を取得する。 数値の入力と文字の入力は命令語が異なる。
- out:標準出力へ値を出力する。 数値の出力と文字の出力は命令語が異なる。
