架构思维训练之自己推导图灵机( 七 )

第一个问题:题目的内容是啥?

嗯,是四则混合运算,由多个加减乘除组成,需要进行多步计算。如果把混合运算看做一个计算任务,每一步计算(如加法)就是一个子任务。

好,先看子任务。每个子任务有操作数、操作符及运算结果,就像加法:加数和被加数是操作数,加号是操作符,和是结果。由此可知,每个子任务由功能(即操作符)、输入(即操作数)和输出(即结果)三部分组成。

再看混合计算任务,计算需要遵循规则:先算括号内,再算乘除,再算加减。这说明子任务之间是有顺序的,且可以存在数据依赖即子任务的输出结果可作为下个子任务的一个操作数。子任务按照顺序全部执行完成后计算任务结束。

经由上述分析可以讲解算法和指令的概念了,其中算法对应于计算任务,指令对应于子任务,具体内容如下:

算法包含有限个计算步骤,计算步骤之间存在一定的运行顺序和可能的数据依赖,计算步骤全部执行完成后算法结束。每个计算步骤称为一个指令,指令由指令功能、输入、输出构成。每个指令必须在有限时间内完成以确保算法结束。

推荐阅读