图灵机模拟程序源代码

源代码在线查看: 一个turing machine的模拟程序.txt

软件大小: 2 K
上传用户: LANCEZHANGL
关键词: 模拟 程序 源代码
下载地址: 免注册下载 普通下载 VIP

相关代码

				/*
				    一个Turing Machine的模拟程序
				该程序从turing.txt文件中读入图灵机,然后从屏幕读入输入数据
				输入数据按字符串读入,每行一个输入,按ctrl-z 结束输入。
				接着将运行结果输出到屏幕。如果发生死锁(死循环),会自动判断。
				
				输入文件turing.txt的格式是,每一行表示TM的表格的某一行
				如果某个格子不存在,该位置上是一个*,如果某个状态不存在,该位置上也是一个*
				
				例如,对于TM = S+的输入文件turing.txt内容为:
				
				1L2 1R1
				0R3 1L2
				
				对于TM = P- 输入文件为:
				
				*   0R2
				103 *
				
				下面这个TM将输入n复制一份
				
				0R6 0R2
				0R3 1R2
				1L4 1R3
				0L5 1L4
				1R1 1L5
				
				下面这个TM把输入n变为2n
				
				0R* 0R2
				0R3 1R2
				1R4 1R3
				1L5 *
				0L6 1L5
				0R1 1L6
				
				预编译参数 TRACE_EXECUTION 可以控制是否输出执行过程
				如果将其注释掉再编译就可以不显示TM执行的中间过程。
				
				*/
				
				#define TRACE_EXECUTION
				
				#include 
				#include 
				#include 
				#include 
				using namespace std;
				
				const char* TM_FILE = "turing.txt";
				
				const int MAX_STATE = 100;
				
				struct Command {
				    char data, movement;
				};
				
				istream& operator>>(istream& in, Command& cmd)
				{
				    char ch;
				}
				
				#ifdef DEBUG
				ostream& operator				{
				    if (cmd.undefine) {
				}
				#endif
				
				struct Config {
				    int pointer, state;
				};
				
				bool operator==(const Config& left, const Config& right)
				{
				    return ( (left.pointer == right.pointer) &&
				}
				
				ostream& operator				{
				    out 				}
				
				////////////////////////////////////////////////////////////
				
							

相关资源