泽雨轩 > 科幻未来 > 核芯位面 > 第96章 程式入门(八):类型系统

第96章 程式入门(八):类型系统(1 / 2)

程式是什么?

不同的人或许会给出不同的定义。不过如果让程远用最简单的话语来描述的话,那么程式便是“输入,处理,输出”!

没有输出的程式当然是存在的,只不过它没有任何意义。以计算机为例,无论一个程序是要计算一个数字还是绘制一个图形,它总要将结果输出到屏幕、打印机或者其它的输出设备上,否则这个程式的作用也就只有让芯片发热而已了——甚至严格说来,产生热量也算是输出的一种。

没有输入的程式当然也存在,然而如果换一种说法的话,我们也可以认为它们是“输入为一个空集”的程式,而每次调用一个这样的程式时,它都会返回完全相同的结果。什么,你说有那种产生随机数的程式?不好意思,严格地来说,这类程式需要一个隐含的“随机数生成种子”作为输入……它不能算是“没有输入”的程式。

除此之外,其它的程式都可以看做是接收一到多个输入参数,最终产生一到多个输出的演算过程。而且曾经有数学家证明过,每个“接收多个参数”的程式都可以被化简为数个接收“单一参数”的程式的形式——当然,这个说法并不严谨,而且那也是后话了。

程式间是可以进行组合的。

只要类型相同,那么我们便可以将一个程式的输出接到第二个程式的输入上,从而将二者组成一个更大的程式。那如何理解“类型相同”这个概念呢?举个例子:其实除了集成电路之外,其它的物件也是可以用于演算的——例如帕斯卡的计算齿轮组,而只有当齿轮的模数(即齿的间距)相同时,两个齿轮才能卡到一起。那么如果我们将一组齿轮看做执行一类演算的程式的话,那这组齿轮中的第一个齿轮的属性,便相当于这类程式允许接收的参数的类型。而同理,芯片的引脚电压,以及计算机程序中的字符数字,它们都有各自的类型。如果不关注运算过程是否正确的话,只要类型相同,那多个程式或者说计算系统间便可以借此进行组合了。

当成千上万,成百上千万的程式组合后,便形成了一个巨大的系统。这个系统也是一个程式,只不过它可以接收很多类型的输入,并借由各种各样的输出实现多种多样的功能,譬如我们常按的计算器,常玩的电子游戏,常用的操作系统……支撑它们正常工作的,正是它们内部运转的程式。

而在这个神奇的位面中,虽然载体不同,但是这里所特有的各种各样的神奇魔法,奥术,技能……

它们的内核,亦是如此。

——

——

程远用好奇的目光打量着浮现在他眼前的“源代码”。

虽然构成这段代码的并不是他所熟悉的任何一种地球位面的程序语言,不过幸运的是,构成这种语言的文字和算符,他绝大部分都认得。

不知道为什么,这个位面,或者说至少这个小镇所使用的文字和符号,都是标准的中文、英文、阿拉伯数字以及数学运算符,而他面前的程式也是如此。

说起来,地球位面的很多华国人总是对那些写满了英文字母的程序感到不满,并且希望出现一种使用中文的编程语言。然而可惜的是,这种做法实际上并没有太多的好处……或者说正因为中文的能力太过强大了,所以它并不适合进行编程。打个比方,一名外国人可能很难想象“中国队大胜韩国队”和“中国队大败韩国队”表达的是同一个含义,而这种二义性正是程序的天敌。因此,即使使用中文编程,人们也必须使用一种没有二义性的语法。

但这样的话还是会有问题:按照目前的键盘输入方式,中文字符的输入难度远大于英文字符,再打个比方:我们平时在做计算题时一般没有人会愿意写汉字的“壹加贰等于叁”,同样,写程式的人也很少有人愿意去使用“设甲为乙的平方与丙之和”这种写法。而且话又说回来,现代的很多程序语言已经完全支持中文命名了,只不过很少有人会这样用而已。

甚至如果要进一步来说的话,程序语言其实根本就不是英语,它们其实是一种独立的符号语言,只不过是设计语言的工程师在挑选符号时,恰好使用了他们熟悉的英文字母而已。对于程式来说,真正重要的是它所代表的执行逻辑,只要逻辑相同,那使用什么文字来编写程式其实都是无所谓的。

“怎么样大笨蛋,看明白了嘛?”望着似有所悟的程远,依灵调皮地戳了戳他的肩膀并问道。

“嗯,似乎能看懂一点。”程远一边审视着这些普通人看一眼就会觉得眼花的符号,一边下意识地回答道。与此同时,他想尝试用意念翻动一下面前的文字,可惜,他的操作没有成功。

“大笨蛋你肯定是在吹牛皮!”依灵白了他一眼。就算是品学兼优的高中生,面对这么多的程式指令时也会感觉头痛,更何况是程远这个从来没有接触过程式的菜鸟呢?

“这个还是很好懂的啊。”程远不以为意地回答道:“不过这段程式有点长,我这一时半会可能还看不完。”

“那这样吧。”依灵想了想后,收起了展示在程远面前的弹窗。

“哎等等,我还没看完呐!”程远手舞足蹈,不对,张牙舞爪地抗议道。

“初学者不要好高骛远。”依灵敲了一下青年的脑袋:“你先看明白这段入门程式再说吧。”

依灵一边说着,又一边在她的核芯系统中重新打开了另一个界面,随后,另一段“源代码”展示在了程远的面前。

如果将这段源代码翻译成中文的话,它的逻辑是这样的:

##

导入标准信息操作程式库;

导入超距作用程式库;

导入【花火】程式库;

定义程式:【SequentialSpark-连环花火】,接收输入参数:[能量],[信息点],“目标位置”,“攻击强度”:

1-如果目标位置在超距作用场外,则退出程式,返回“法术施放失败”。

2-执行程式【花火】,传入:[能量],[信息点],目标位置,攻击强度,并记录“执行结果”。

最新小说: 一切从做梦开始 起源:三千万光年之外 从零开始的沙盒生存游戏 绝对防御装甲 穿越到世界之初 争霸岚缇域 星舰之上我狩猎怪异 神之代号零 天灾领主:开局成为恶魔大公 无为之王