第106章 程序立体化构想(2 / 2)

天才风暴 未语浅笑 2046 字 18天前

计算机是通过芯片来进行逻辑运算的,芯片上有成千上万个晶体管,对其中某些晶体管发出断电和通电的信号,计算机就能进行逻辑运算了,通电和断电的过程,其实就是逻辑运算的过程。

比如说数字1,在计算机的语言中是通过通电——通电——断电来表达的,转换成计算机语言,那就是110。

数字2是通电——通电——通电进行表达,转换成计算机语言,那就是111。

所以程序本质上全都是数字0和1的排列,更进一步的本质,其实是晶体管的通电和断电这两种状态。建立在这种机制上的所有程序,都需要十分严密的逻辑基础。

这里的逻辑基础,是指不能出现任何排列错误,否则的话计算机就会出错,得出错误的运算结果。

说了那么多,只想阐明程序所具有的两个特点,第一,程序从本质上来说都很刻板,不容许出现任何差错;第二,程序具有无数种可能,因为数字0和1的排列组合是无穷尽的。

第一点属于硬指标,只要编写程序,都必须要做到这点。第二点就不同了,在遵循第一点的情况下,你可以根据你的能力,开发出你想要的任何程序。

刘放现在考虑的就是这个问题:既然程序存在着无数种可能,为什么我就不能把它立体化呢?

很快的,刘放就有了一个初步的构想:想要把程序立体化,就必须把关联性发挥到极致。

关联性是什么?它是计算机汇编语言的重要组成部分。

比如用计算机出一道最简单的算术题,最少需要三行代码来表示,把它们转化成计算机语言,是这样的:

第一行:1+1=2是对的还是错的?字母a代表正确答案,字母b代表错误答案;

第二行:a=你回答正确;

第三行:b=你回答错误。

这么简单的一道题,计算机就需要三行代码来表达,如果是一百道题、一千道题,甚至是一万道题呢?

如果按照这种方式去编程的话,那么程序将无比繁杂,有人经过思考,大大的简化了编程语言。只要遇到跟上面类似的算术题,只需要编写一行代码就行了,然后在计算机系统中编入关联信息,只要计算机遇到这类题目,就不用重复第二行和第三行,它会根据逻辑运算的结果,自动跳转到上面的第二行或者第三行,显示你回答正确或回答错误。

这就是编程语言中的关联性,也可以被称之为关联法。真正的计算机程序比这个要复杂成百上千倍,因此,编程真的不是谁都可以干的工作,因为即便使用了关联法,一套计算机系统所包含的代码也有上千万条之多,这个数字想想都觉得恐怖!

刘放现在想把这种关联性提升到极致,所以他遇到的困难绝对超乎你的想象,好在他还有那颗聪明的大脑,也许这对于他来说确实很有难度,但还没到让他觉得不可能实现的地步。