算法中的指令描述的是一个计算，当其时能从一个初始状态和初始输入（可能爲空）开始，经过一系列有限而清晰定义的状态最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。包括随机化算法在内的一些算法，都包含了一些随机输入。早在尝试解决希尔伯特提出的判定问题时，关于算法的一个不完全的概念已经初步定型，并在其后的正式化阶段中尝试定义“”或者“”。这些尝试包括库尔特·哥德尔、雅克·埃尔布朗和斯蒂芬·科尔·克莱尼分别于1930年、1934年和1935年提出的递归函数，阿隆佐·邱奇于1936年提出的