本想摆烂却等来了系统
繁体版

第六十章 谍影重重(十五)

    不过计算的本质可并不只是加减乘除,计算的本质需要有递归。在图灵机之中就是一个可以随意移动的读写头,这样才能让读写头才有可能来回往复地进行循环。

    不过这个功能实际上冯唐刚才已经测试过了,毕竟刚才他记录的那些视频就是循环播放的。就算不是循环播放,想让视频之中一帧帧的画面动起来,也需要一个循环的便利。这属于是系统作为虚拟现实播放系统的内置功能,已经实现好了。

    如此说来,阻止冯唐在系统界面里自己造一个计算机的一切阻碍都没有了。剩下的知识亿点点简单的,重复的,单调的编程模拟工作罢了。先把逻辑门做出来,还有其他的算术逻辑单元,然后是时钟,存储器比如堆栈,输入输出……

    冯唐在大学的时候学了一门徒手造计算机的课程,虽然只是上个世纪的最简单的计算机,但是这些基础的东西他都还算熟悉。不就是肝吗?他有的是!

    这样一来,冯唐就可以用这个简单的计算机完成一些有意思的任务了。例如枚举素数,用最简单最暴力的埃拉托斯特尼筛法就行,它只要要求计算机可以进行循环。或者是用枚举法进行密码的暴力破解……

    以上这些都可以直接写点汇编解决。哦对了,冯唐还要把明确一下ISA。具体来说把计算机里面重重稀奇古怪的操作整理成一个表,抽象出一个汇编语言。不过冯唐在学校还学习了另外一门课,里面用到了一个非常经典的叫做MIPS的ISA。顺便一提,这个指令集系统的专利后来被国家买断了,用来研究自己的芯片……虽然最后还是失败了。

    冯唐计算机都可以手搓出来,整理整理指令集那也是轻轻松松了,这只是做减法的事情,一些可以直接烧掉计算机的后门指令可不能暴露给用户。

    然而就算是有了汇编,这也并不意味着冯唐就可以完成统计计算自己超凡视觉输出的任务了。因为这些图像信息的处理非常繁琐,它们是以像素点的方式存在的,具体来说是一个个矩阵,这和加减乘除并不一样。矩阵运算还需要一些更加通用的编程处理。

    不过好在冯唐又学过一门从零开始手搓编译器的课程,可以把一门简化版的Java语言编译到字节码,甚至是MIPS汇编代码。

    当然了,想要一步实现这个宏伟的功能是非常困难的,毕竟Java这样的高级语言是非常复杂的。不过这个问题冯唐在上课的时候遇到过,老师给出的解决方案比较暴力,那就是把Java这个语言拆分成多个小语言,然后一步步翻译过去。

    而冯唐现在面对的困难要比这个更加复杂一些,因为上课时这其中每个小语言都有自己的解释器,但是现在冯唐什么都没有。冯唐也不打算写虚拟机,他要直接编译到MIPS指令集上。

    冯唐想了一个非常聪明的笨办法,那就是将Java从功能上拆解成Java,Java1,Java2……JavaN最基础的Java0就是汇编语言,Java1有简单的寄存机抽象,并且Java1语言的编译器是用Java0语言(也就是汇编语言)写的。而Java2语言之中就有函数了,同时规定了函数调用的规则,而Java2语言的编译器是用Java1语言写得……到了最后JavaN语言就是真正的Java语言。

    你看,这不就又套娃了起来。冯唐成功地将写一个Java编译器的工作简化成了写N个Java编译器,工作量提升了N倍,但是好处是其中的每一个步骤都是可重复的,可控的,增量的。就算是Java3的编译器写错了也不影响Java2程序还能跑。

    总而言之,只需要这样亿点点努力,冯唐就可以写出来一个可以进行图像处理的软件了。不过图像处理是计算量非常庞大的任务,冯唐认为自己有必要进行并行化的处理,也就是将不同的任务同时跑。因为本来视频就已经拆成了一帧帧的样子,每一帧和其他帧都是独立的。现在冯唐的大脑记录了一个几秒的视频,有超过一千帧,只要同时跑一千个程序,那么这些帧不就能一下子处理完了吗?

    然而想要进行并行化处理就需要对资源进行更加精细的分配。这里的资源指的是计算资源和存储资源。

    存储资源比较好理解,系统界面里的空间如果不够用的话,那么就没办法同时处理一千张图片了,只能先处理一些,然后把处理完的中间过程擦掉,再处理其他。

    计算资源可以看成计算的时间。例如语文考试时有两章卷子,有一张是作文,有一张是其他,那么在有限的时间里,冯唐需要分配自己的时间,哪些给作文。

    这些惊喜的调度和分配就需要操作系统的帮助了。这不巧了吗?冯唐上学的时候又又学了一门手搓操作系统的课,不过用的是C语言。冯唐Java语言都可以搓出来,那么C语言也不在话下了。

    只能说冯唐的本科计算机教育净教了一些屠龙之术,没想到这些屠龙之术还真有能被用上的一天。

    冯唐一边想着,一边就动手开搓。不就是肝吗?冯唐就喜欢肝这个,只要不让他按部就班地锻炼超能力开发,让他肝到地老天荒都行。再说了,冯唐也进行了一下计划,他认为自己大概这么肝上两三年差不多就可以在大脑里肝出计算机,编译器和操作系统了,轻轻松松。

    不过冯唐也打算先尝尝鲜。操作系统这属于很高级的东西,专用计算机不搞那些通用计算,只运算一个任务,那就不需要操作系统了。C语言和Java语言都太复杂了,甚至冯唐连你汇编语言都嫌复杂。因为汇编语言实际上是计算机指令集的接口,而冯诺依曼计算机就已经很复杂了。

    其实还有一个和图灵机等价的,更加简单的计算模型,根本没有什么无限长纸带,没有什么读写头,他只需要进行复制和替换就行了。

    这个神奇的计算模型叫λ演算,冯唐现在就可以用起来。他同时是一个计算模型,也是一个门语言,并且还是自解释的所有不需要编译器和解释器。这下子计算机和编译器全部省下来。当然了,他的效率非常的低,这也就是简单带来的代价了。

    冯唐一边美滋滋地想着,一边随手花了十分钟写了一个埃拉托斯特尼筛法,准备随便地计算一下一亿以下的素数。虽然这个任务现代家用计算机大概要算个十几秒的时间,当然冯唐也不求它算得多快,全当一乐了……

    然后冯唐愣住,因为他刚写完程序,答案就算完了。冯唐改了改数字,改成了一百亿,依旧是瞬间算完。冯唐发狠了,开始疯狂地按0,他也不知道自己到底设置了多大的数量上限,结果还是一下子就算完了。

    计算得到的结果排了常常的一列,一直在系统界面上延伸。冯唐随意输入一个数字n,系统都可以跳转到指定位置,给出排在第n个的素数。

    冯唐意识到事情或许有点严重了。

    这个系统牌计算机,他的计算速度到底有多快?他的内存到底有多大?好像根本看不到边啊!

    考虑到系统可以直接开始人生重开游戏,那么他计算起来这么牛或许也情有可原?

    冯唐认为这或许是个好事,这样自己的三维视觉的输出分析那就可以更快地完成了。

    等等,冯唐呆住,他为什么要分析超凡视觉的输出来着?

    好像是为了检测自己三维视觉能力强度,所以才要分析自己计算力的强度,看看是不是超越了人脑的极限。

    但是,现在他冯唐在筛素数的时候好像已经进行了一次超越人脑极限的运算了。虽然这个计算和三维视觉没有半点关系,甚至和市松也没有关系,这是他冯唐自带的系统的力量。

    冯唐突然意识到:原来我自己本来就有亿点超能力啊,那没事了。

    以上的所有事情听上去很复杂,但是其实都只发生在冯唐的大脑之中,现实之中只过去了几秒钟的时间。冯唐在从兴奋,惊讶到平静之后,才有将自己的思维重新放回到了现实世界。

    “大叔,你刚才说什么?”

    “我是觉得这里有点不安全了。”胜往嘴里到了一口酒,然后忧心忡忡地说道,“我出去买东西的时候,感觉有一股恶意在监视着我,但是我却找不到源头。这很不妙!”

    “你之前不是说希米尔和本地的联盟特工们会监视我们的吗?”

    “那不像是特工的视线,反倒像是杀手的是视线。”胜说道,“这是我多年潜伏锻炼出来的直觉。”

    “宁信其有……就当做是有人想要除掉我们,但是为什么呢?”冯唐问道,“是不是我们在浮岛研究所的事发了。”

    “应该不会。帝国要是想要除掉我们两个小角色,直接带人上门把我们抓起来就行了,根本不用监视。如果不过这件事……现在会关注到我们的人并不多,我只能想出来两个……”胜说道,“有一个是佐佐木弘,他可能看在女儿的面子上,不直接把我们除掉。现在我们下了船,他就暗地里派人把我们杀掉……”

    “额,佐佐木老爷这么狠心的吗?”

    “他这样的商人背地里养几个干脏活的打手很正常。”胜耸了耸肩,“第二种可能性,那就是小林商会有问题,说不定是那个柜员已经背叛了联盟,亦或者是有人在监视小林商会……”

    情况听起来很复杂,不过冯唐却并不感到慌张。

    “没关系的,不怕,我已经升级了。”

    胜有些惊讶地看着冯唐,然后又看了看被冯唐随手丢在一边的手枪,眼中的怀疑不加遮掩。

    “这么快你就练会了枪法?我都没听到一声枪响,你可别是搞了一招华而不实,光说不练的假把式啊!这是要命的事情!”

    “真把式,真把式。”

    冯唐将枪拿在手中把弄了一会儿,动作极度僵硬,看得胜直呲牙。

    “嗯,不过还要再等个几分钟,再等等。”

    “等什么?”

    “等我修完这几个bug,修完之后就好了,马上了,马上了。”