Home

Awesome

TSP

TSPは巡回セールスマン問題から着想を得た難解プログラミング言語である。

セールスマンがxy平面の格子点上を動く経路によってグラフが構築され、グラフの頂点に対応する命令が実行される。

言語仕様

方位命令説明
東北東push NN をスタックにpushする
北北東dup$1 と同じ値をスタックにpushする
北北西swap Nスタックの $1$N の値を入れ替える
西北西sub$1$2 をスタックからpopし、$2 - $1 をpushする
西南西greater$1$2 をスタックからpopし、$2 > $1 なら1を、そうでなければ0をpushする
南南西jump-zero Nスタックの $1 を参照し、0ならジャンプする(*)
南南東getchar標準入力から1文字読み込み、スタックにpushする
東南東putcharスタックから $1 をpopし、標準出力に出力する

Usage

Requirements: Go 1.13 or later

$ go get -u github.com/nakario/tsp/cmd/tsp
$ tsp [-debug] [-strict] code.tsp

Examples