@article{oai:nagoya.repo.nii.ac.jp:00021417, author = {安藤, 聡 and 酒井, 正彦 and 坂部, 俊樹 and 草刈, 圭一朗 and 西田, 直樹 and ANDO, Satoshi and SAKAI, Masahiko and SAKABE, Toshiki and KUSAKARI, Keiichirou and NISHIDA, Naoki}, issue = {373}, journal = {電子情報通信学会技術研究報告. SS, ソフトウェアサイエンス}, month = {Jan}, note = {Malbolgeは最も難解なプログラミング言語として知られている。低級アセンブリ言語の開発によりMalbolgeのループプログラムの作成が可能になったものの、低級アセンブリプログラムでは変数を引数とする命令はその変数宣言の直前に記述しなければならず実行制御が必要不可欠なことと、制御命令には無条件ジャンプとアクセスの度にジャンプとスルーが入れ替わるフリップフロップジャンプしか存在しないことから、低級アセンブリ言語でのプログラミングにも困難が伴う。これまで制御命令の配置設計は手作業により行われており、実行トレーサを利用しているものの、非常に困難であった。本稿では、Malbolgeの低級アセンブリプログラミングにおける制御命令の配置設計にSATソルバを利用した手法を提案することで、この問題の解決を試みる。そのため、制御命令の配置問題を定式化し、その問題のSATエンコーディングを提案する。実験により、提案手法を利用した制御命令配置設計ツールの性能を評価する。, Malbolge is known as one of the most esoteric programming languages. Although it became possible to write programs in Malbolge due to the development of the low-level assembly language, we still have a problem that the programming in the low-level assembly language is difficult. This is because for each variable, instructions that take the variable in their arguments are allowed to be placed just above of the variable in the low-level assembly programs, and control-instructions in the low-level assembly language are only unconditional jumps and flip-flop jumps, where the latter alternate jump and no-operations. So far we have to design control structures, i.e., layout of control-instructions, by hand, which is very difficult even if we have an execution tracer for low-level assembly programs. In this paper, to solve this problem, we propose a method to design layout of control-instructions of the low-level assembly language efficiently by using state-of-art SAT solvers. We define a control-instruction layout problem, and propose a SAT encoding for this problem. We also evaluate the performance of control-instruction layout tools based on our method., IEICE Technical Report;SS2012-50}, pages = {25--30}, title = {Malbolge低級アセンブリプログラミングにおける制御命令の配置設計のためのSATソルバの利用}, volume = {112}, year = {2013} }