程序的本质可以从多个角度来理解:
解决问题的步骤描述
程序是为了解决实际问题而存在的,从本质上而言,程序是解决问题的步骤描述。输入输出可以看作是数据结构的一部分,而程序的本质也可以被看作是数据结构加上算法。
二进制形式的机器指令
程序在物理硬件上执行和存储都是以二进制的形式来进行的,即由0和1组成。程序最终被编译成机器码,由CPU执行。
数据+算法
程序的本质就是“数据+算法”,这一本质一直没有改变。类的作用只是把散落在程序中的变量和函数进行归档封装并控制对它们的访问而已。被封装在类里的变量称为字段(Field),它表示的是类或实例的状态;被封装在类里的函数称为方法(Method),它表示类或实例的功能(即能做什么)。字段和方法构成了最原始的面向对象封装。
指令代码
程序的字面意思就是执行指令的过程和顺序,其实这种过程顺序的核心就是反应算法,即不是乱来的,算法就是有过程和顺序。
对真实世界的抽象和映射
程序是对真实世界的映射,真实世界的复杂度决定了程序的复杂度,而变化就是真实世界的本质。变量对应个体,时间是控制程序适应变化的唯一工具。程序的结构是输入、输出、逻辑处理。
编程语言的转化
从高级程序语言到汇编语言再到机器码,程序的本质全是01组成。根据某种汇编标准,将它们规范成汇编语言,然后高级程序语言可以通过编译变成汇编语言的程序,从而被执行。
问题转化为指令集合
编程的本质是将问题或任务转化为计算机可以理解和执行的指令集合。通过编程,我们可以使用特定的编程语言来创建程序,这些程序可以告诉计算机如何执行特定的任务。编程的本质是通过编写代码来实现算法和逻辑,以解决现实生活中的问题。
综合以上观点,可以认为程序的本质是对真实世界的抽象和映射,通过数据结构、算法、输入输出和处理逻辑来实现特定功能。程序的核心在于其解决问题的能力和对真实世界的适应性。