程序是有序执行的指令集合,其基本构成为:算法+数据结构
一,菜谱
材料: A、B、C
做法: 处理食材--处理--开火--调味料--等待一定时长--出锅
这也是一个程序
这个程序与计算机程序不一样在于程序的运行者
计算机程序的运行着是计算机。
人想干什么--写成英文程序--计算机上的编译器翻译成二进制数--开始运行程序
计算机认识程序文字,理解每句话的意义,获取材料和对应数据,按步骤执行。理解和执行语句
做菜程序运行者是人。人认识上面的文字,理解每句话的意义,获取材料,按步骤执行。
数学语言比较严谨,编程语言来规避歧义。
三,程序是什么
涉及数理逻辑。无论是递归函数论、图灵机模型、lambda演算都不是那么容易掌握的。这些远比学一门编程语言及掌握写程序更难。
程序就是一段编译器或解释器(这东西可能比任何人都要听你的话,只要你能用它懂的语言来指挥)能听懂的指令。
四,计算、同构、模拟
对于同一件事比如我们要计算3+5,那么我们可以有:
扳着手指头左手3个,右手5个放在一起是8个手指头
先拿出3个小球,再拿出5个小球放在一起是8个小球
我们在计算器输入3+5得出8
这三个方法都可以计算出3+5的值,他们用了不同方法的形式但在对于计算3+5这个核心上是计算等价的。也就是同构的概念。
有了同构我们就可以模拟了,比如你有小球,拿它做了一次加法运算。但是我没有小球我可以用手指头或者石子来代替小球模拟你用小球做加法运算,并且得出和你一样的结果。
我们是怎么用程序来事的呢?主要就是用计算机中的数据来模拟现实中的东西。
比如摄像头中的你脑袋往左移了一下,那么本质上计算机中代表脑袋的那些数据的x坐标减去了一定的值,最终再输出到显示器上。
比如你在纸上解了一个方程,那么在计算机也有一个模拟你每一步的计算的过程来得出和你一样的值。只是你用纸和笔来进行,而计算机用它的方式来进行。