前言:
今天大家对“代码转换伪代码”都比较看重,小伙伴们都想要剖析一些“代码转换伪代码”的相关资讯。那么小编也在网摘上收集了一些对于“代码转换伪代码””的相关内容,希望朋友们能喜欢,朋友们一起来了解一下吧!(本文来自《直觉泵》第二十七章,是阿绽的第42篇读书笔记。)
计算机和生命3.0
2019年的诺贝尔奖陆续揭晓,物理学奖由吉姆·皮布尔斯、米歇尔·麦耶和迪迪埃·奎洛兹三人平分,其中吉姆·皮布尔斯的获奖发现,是因为他在物理宇宙学方面的理论发现,他在采访中明确表示:真的有外星人存在。
对此,我们不禁要开始畅想,如果遇见了外星人,我们怎么跟他们交流呢?毕竟人家是异次元的生物。这样想的人可以休息了,人家科学家又说了,“我们永远无法看到这些生命。”好吧,幻想宣告破灭。
但是别灰心,在我们的世界里也有异次元生命体的存在,根据奥卡姆剃刀的“如无必要,勿增实体”的原则,我们与其去探索见不到的外星人,不如探索见得到的异次元生命体。这种异次元生命体就是计算机。
你或许会哑然失笑:别搞笑了,计算机是哪门子的异次元生命体?对不起,计算机还真就是生活在我们身边的异次元生命体,否则为什么我们对外星人的所有设想中都有计算机的影子?否则为什么我们对外星人占领地球跟计算机占领地球一样的心存警惕?
在《生命3.0》这本书里,作者麦克斯·泰格马克详细列出了所有生命体的有效特征:
生命1.0指的是硬件、软件都靠进化获得,且只能靠进化获得的生命体,除了人类以外,其他生物都属于生命1.0的范畴。
生命2.0指的是硬件靠进化,软件可以自己设计,比如人类,身体是由进化获得,但是软件可以通过学习知识、训练意志、锻炼技能等方式来自己设计。
生命3.0指的是硬件软件都能自己设计,即在人类能力的基础上增肌一个随意设计自己身体的能力。比如在电影《超体》中,女主由于误食一种毒品变成了超越人类的一个超体,她不但能够看到、阻隔电子信号,还可以随意改变自己的身体特征以躲避警察追捕。她就属于生命3.0。
以计算机为代表的人工智能就机器类似生命3.0。根据泰格马克的研究,人工智能不会慢慢到来,而是以爆炸式的出现将我们包围。
它会自动分解目标,把大目标分解成若干个次级目标。在执行这些次级目标的时候,计算机是没有道德情感的,因此对人类来说这是有风险的,计算机“没人性”。这就要求我们的科学家、工程师给这些计算机装上人类的伦理道德,以避免对人类造成危害。
对于计算机,我们自认为已经了解的够多了:上网冲浪、信息大爆发、全球大联结、网购、电信诈骗,但是我们应该了解得更多,正所谓“知己知彼,百战不殆”。
人工智能最终会称为人类的帮手还是人类的敌人,前景充满迷雾,那在当下,就需要我们多方位的去了解它。
计算机世界的语言:代码、源代码和伪代码
1.代码
计算机作为生命3.0的代表,既然是一种生命体,自然也有它的语言,就像人类世界有自己的语言一样,通过语言我们才能了解某个领域的行事逻辑和处事规则,我们把它叫做算法。
算法就是需要执行的一组一步一步的操作。如果拿到一个算法,编写代码执行这些操作,最后就会得到一个计算机程序。
因此,计算机的语言就叫代码,它是一种由字符、符号或信号码元来表示信息的明确的规则体系,主要应用离散形式,即分类的方式来表达。就跟自然语言对人类的作用一样。
自然语言是人类世界使用的,具有交流、规范、指代等作用,而代码是计算机使用的,指有指代作用的码。
我们日常生活中常见的代码就是付款二维码了。每一个付款二维码都有指定的收付款对象,这就是现实版的“一码归一码”。
2.源代码
但是代码不仅只有付款二维码,它还有很多种类。我们听得最多的就是源代码了。
源代码之所以大名鼎鼎,和它的同名电影《源代码》有很大关系。
《源代码》讲的是一个因公殉职但还未脑死亡的美国空军飞行员柯尔特史蒂文斯上尉,通过火车爆炸案死者死前8分钟的记忆制成的源代码,回到列车爆炸前八分钟,寻找将炸弹置于列车的嫌犯的线索,通过一次次的尝试,最终找到嫌犯,并阻止了一场更大的爆炸的故事。
这部电影的主题词是“平行世界”,但是电影名“源代码”却更让人们记忆深刻,因为电子计算机的普及,其程序语言之一的源代码也从专职工程师的世界飞入了寻常百姓家。
什么是源代码呢?源代码是一种源文件,指的是未编译的按照一定的程序设语言规范书写的文本文件,是一系列人类可读的计算机语言指令。也就是说,源代码是计算机最基础的部分,在计算机领域里是通用的,每一台计算机都可以通过源代码生成相同的电脑程序。
这就好比在人类世界里,父母的组成都是“爸爸”和“妈妈”,不论语种怎么变,不论在世界的哪个角落,但是对于父母的定义绝不会改变。
人类读取源代码的工具叫编译器,编译器通过编译,以2进制方式对源程序进行编译(因为电脑只认识0和1),制作成目标代码,以此发布具有明确意思和指代的指令。
就跟我们人类世界的26个英文字母差不多,我们的发音都可以通过对这26个英文字母的编译生成不同的语言,表达不同的意思,它们都具有确定性、标准化、通用性、可扩充和稳定性的特点。
3.伪代码
在生成源代码之前,还需要一个伪代码。就像我们人类一样,吹牛之前要先打个草稿,吹牛不打草稿的人说话是没人信的。伪代码就是源代码的草稿模式。
伪代码相当于一个蓝图,是一个程序的初始版本,是源代码的源代码,它即使不用写在纸上,也会有相应的思考流程,不是可以完全忽略不计的存在。
伪代码的作用就是把一个偶然性结果通过逻辑运算变成一个必然性结果。
就拿电梯实现自动控制的过程来说,最开始的电梯市人力和器械通的组合体,需要一个电梯操作员坐在电梯里摇动机械手臂控制电梯上下和停顿。
这样做的弊端是电梯地面往往和楼层地面有出入,做不到精确的水平对接,且如果人太多,操作员无法顺利操作,就会让一些人下去。
后来人们发明了自动电梯。
我们假设这部自动电梯的总量是4层楼,也就是说这里有4个变量,它们分别是:1 2 3 4,并且2、3楼都有两个状态上或下,1、4楼分别只有上和下,而载重量是1000KG,按每个人60KG算,这部电梯每次只能搭乘16到17个人。
那么它的伪代码就是这样的:
核载重量为1000KG,超过重量自动报警→1楼,停止/向上→2楼和3楼,向上/向下→4楼,停止/向下。如无人乘坐,回到1楼。
然后程序员根据这个伪代码编写源代码,再用编译器编译成关于电梯运行的目标代码,就可以使用了。
源代码是非常简洁的,因此在编写源代码的时候需要注释,否则很容易忘记代码所表示的意思,而伪代码就像是需求规格书一样,需要用详细的步骤和故事表达。
代码,源代码,伪代码,都是计算机的程序语言,是计算机程序运行的基础。这就让我想到了人类,作为生命2.0的人类其实也有很多代码,比如语言,比如肢体、眼神,甚至是公序良俗,它们都在我们的世界中扮演者各种代码角色。
这时,我们的大脑就承担了一个编译器的作用。但是对于大脑这个编译器,我们还有很多未解之谜,它不是简单的二进制算法就能解决的,因此认识我们自己对人类来说就是重中之重,但又困难重重。
面对大脑这个编译器的复杂性和人类世界代码的多样性,读懂生命2.0的人类,这是一个漫长且复杂的过程,我们需要砥砺前行。
而我们唯一能做的就是,在不断认识我们自己的同时,用人工智能对自我进行映照,不但要以史为鉴,还要以优秀者为鉴。只有这样,当生命3.0真的到来的时候,我们才不至于手足无措,甚至是一败涂地。
标签: #代码转换伪代码