为什么那么多人出国有那么多的为什么那么多人出国?

一些新闻:&br&&a href=&/a/954.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&霍金:人工智能会导致人类灭亡&i class=&icon-external&&&/i&&/a&&br&&a href=&/15/0129/05/AH3Q194F00094P0U.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&比尔?盖茨:人类需要敬畏人工智能的崛起&i class=&icon-external&&&/i&&/a&&br&&a href=&/a/396.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&马斯克称人工智能是人类生存最大威胁&i class=&icon-external&&&/i&&/a&&br&&br&这是因为人工智能要进入新阶段了?这些名人是不是可能比较先得到信息,所以向人们预警?&br&或者是每年都有很多人提出这个问题,只是今年报道的比较多?&br&有人说在人工智能的发展上存在一个奇点,越过这个奇点就能通过图灵测试。&br&如果人工智能已经越过了这个奇点,这个世界会发生怎样的质变?&br&超体和超验骇客都出现过类似越过奇点后,科技的突然爆发。&br&这又让我想起三体里面,宇宙丛林法则中,由于对对方的不了解,又担心对方文明的突然爆发,所以选择了摧毁。&br&如果人工智能突然越过奇点,瞬间产生了意识,可以迅速吸收人类的文明,发展出新的文明。&br&人类跟人工智能之间,会不会出现类似三体里面的博弈?&br&--------------------------------------------------------------------------------------------------------------------------------------------&br&感谢大家的回答。特别是看完@&b&尚之森&/b&的回答有很大的启发。&br&--------------------------------------------------------------------------------------------------------------------------------------------&br&但是,我还有一个问题:&br&&br&弱人工智能是不是只是模拟了人思维的一部分?并且这部分能力是足够应付图灵测试。&br&&br&换句话说,图灵测试并不能测试完整的人的思维能力?它只能测试人思维的一部分。&br&&br&或者说,只通过语言交流是不能够得到被测试物的完整信息?那么这是语言交流的缺陷?或者说人类语言在交流过程中会带来信息流失?&br&&br&还有一个想法:&br&是否可以开发出强图灵测试:&br&比如有针对的出一系列问题,对人工智能作一些全方位的思维能力测试,最后得出它在各个方面的水平,比如在创新能力上,几乎为零,虽然它可以采用插科打诨的方法来避免正面回答,但是最终我们可以得到它在创新能力上的水平。
一些新闻:这是因为人工智能要进入新阶段了?这些名人是不是可能比较先得到信息,所以向人们预警?或者是每年都有很多人提出这个问题,只是今年报道的比较多?有人说在人工智能的发展上存在一个奇点,越过这个奇点就能通过图灵测试。如果人工智能已经越过了这个奇点,这个世界会发生怎样的质变?超体和超验骇客都出现过类似越过奇点后,科技的突然爆发。这又让我想起三体里面,宇宙丛林法则中,由于对对方的不了解,又担心对方文明的突然爆发,所以选择了摧毁。如果人工智能突然越过奇点,瞬间产生了意识,可以迅速吸收人类的文明,发展出新的文明。人类跟人工智能之间,会不会出现类似三体里面的博弈?--------------------------------------------------------------------------------------------------------------------------------------------感谢大家的回答。特别是看完@尚之森的回答有很大的启发。--------------------------------------------------------------------------------------------------------------------------------------------但是,我还有一个问题:…
人工智能很可能导致人类的永生或者灭绝,而这一切很可能在我们的有生之年发生。上面这句话不是危言耸听,请耐心的看完本文再发表意见。这篇翻译稿翻译完一共三万五千字,我从上星期开始翻,熬了好几个夜才翻完,因为我觉得这篇东西非常有价值。希望你们能够耐心读完,读完后也许你的世界观都会被改变。======================内容翻译自原文地址:自日起转载请务必私信咨询,否则视为未授权转载 知乎 =======================因为知乎的字数限制,这里只能发截图,字数太多错别字难免,已经在知友帮助下修改了很多,截图修改不方便,一切以文字版为准。转载请转载文字版。如果想要看文字版的可以移步我的知乎专栏:======================相关阅读:相关来源:The most rigorous and thorough look at the dangers of AI:Nick Bostrom – The best overall overview of the whole topic and fun to read:James Barrat – Controversial and a lot of fun. Packed with facts and charts and mind-blowing future projections:Ray Kurzweil – Articles and Papers:J. Nils Nilsson – Steven Pinker – Vernor Vinge – Nick Bostrom – Nick Bostrom – Nick Bostrom – Moshe Y. Vardi – Russ Roberts, EconTalk –
and Stuart Armstrong and Kaj Sotala, MIRI – Susan Schneider – Stuart Russell and Peter Norvig – Theodore Modis – Gary Marcus – Steven Pinker – Carl Shulman – World Economic Forum – Global Risks 2015John R. Searle – What Your Computer Can’t KnowJaron Lanier – Bill Joy – Kevin Kelly – Paul Allen –
(and )Stephen Hawking – Kurt Andersen – Ben Goertzel – Arthur C. Clarke – Hubert L. Dreyfus – Stuart Armstrong – Ted Greenwald – Kaj Sotala and Roman V. Yampolskiy – Jeremy Howard TED Talk –
反对@谢熊猫君 的高票答案。翻译得很辛苦,也确实提供了有趣的视角,但应该注明这是作家写的,而不是科学家写的。文章引用的都是畅销书,而不是peer reviewed论文。这种貌似严谨的文章最容易造成误导。以下批评针对原文,不针对翻译。没有回答“为什么名人让我们警惕人工智能”,只是提醒大家,不一定要警惕人工智能。--------------------------------------- 文中引用主要来自作家、哲学家、企业家,比如:“未来学家”Ray Kurzweil,哲学家兼畅销作家Nick Bostrom,畅销书作家James Barrat,作家Carl Shulman,企业家Jeremy Howard。虽然上面的部分人曾经做过技术,不过后来都跑去卖概念了。引用这些人真的没问题吗?美国是个极端爱好bullshit的国家,工业界金融界文化界很多人吹牛逼是不打草稿的。 全篇那么长,居然全是脑补,没有严谨论据和专家观点,挺不容易的。引用的参考文献几乎全是畅销书,点开全是amazon上的卖书链接。。咳咳,作家生活不易啊。--------------------------------------------文中真正“专家”的言论只有两处:2013年的时候,Bostrom做了个问卷调查,涵盖了数百位人工智能专家,问卷的内容是“你预测人类级别的强人工智能什么时候会实现”,并且让回答者给出一个乐观估计(强人工智能有10%的可能在这一年达成),正常估计(有50%的可能达成),和悲观估计(有90%可能达成)。和另外一个独立的调查,由作家James Barrat在Ben Goertzel的强人工智能年会上进行,他直接问了参与者认为强人工智能哪一年会实现,选项有2030年,2050年,2100年,和永远不会实现。并且得出结论:从以上答案,我们可以估计一个中位的专家认为强人工智能到超人工智能可能要花20年左右。所以,我们可以得出,现在全世界的人工智能专家中,一个中位的估计是我们会在2040年达成强人工智能,并在20年后的2060年达成超人工智能——也就是踩上了绊线。OMG..第一个Bostrom的调查,请问“数百个人工智能专家”都是谁啊?包不包括业内大牛啊,比如MIT的Patrick Henry Winston,Stanford的Richard Fikes之类的。或者说上面提到的作家哲学家都是“人工智能专家”?第二个调查在“强人工智能年会”上做的,知道啥叫幸存者偏差吗?都去参加“强人工智能年会”了当然对强人工智能是乐观的啊,就好像去天主教堂调查宗教信仰,结论是90%人都信上帝一样可笑。另外这个年会是个神马玩意啊,为啥我搞AI的朋友都没听过啊。不会是这个会吧(),恩恩,主席是Ben Goertzel,应该没跑了。不过这个Ben Goertzel好像不是科学家啊,任职于一个金融公司,建立了一个IT公司,写了几本畅销书。。跟学术有关的职位有两个,一个是奇点大学()的advisor,专门研究人类什么时候会被计算机干掉的地方。。。好科幻啊。。。另一个是Research Professor in the Fujian Key Lab for Brain-Like Intelligent Systems at Xiamen University。。。中国人民的好朋友啊。我个人的观点,他的研究不能支撑他做出的预言,你们感受一下。---------------------------------强人工智能是有可能实现的,但是现在的技术离强人工智能的距离还非常远。原文中第一个图很有意思,就是技术发展曲线。全文的所有论据,都建立在“指数发展”这个假设上。指数曲线在接近0的时候是类似线性的,不光是指数,多项式函数、对数函数、甚至多重指数在小范围内也可以用线性拟合得很好。而且不同的指数和在0附近都很接近,但对“奇点”何时到来的估算可能误差千百年。如果按照“指数发展”来算,而且乐观的估计指数的系数,那你妹的什么技术都不是问题啊,人类分分钟占领全宇宙。我更相信的是,科学发展是有爆发期和稳定期的。一个技术突破会带来难以想象的繁荣,之后的科学发展都比之前的更快,但不会天天都是技术突破。比如,二十世纪上半页的物理学十分辉煌,相对论和量子力学的建立引发了一系列技术革命。但从那以后物理学一直很平稳。杨振宁就说过他赶上了物理学的好时候,让他现在做学术,可能就不会选物理学了。要是科幻作家站在1950年前后,用指数发展估计物理学的发展,那到今天我们早就弄出大统一理论搞定核聚变发电了。又比如人均寿命从先秦时的二十几岁发展到现在的80岁,如果用指数拟合,那过几十年是不是要活几百岁了啊?--------------------------------------文中提到的可能支持人工智能指数发展的路线包括:抄袭人脑,进化算法,电脑自己解决。我不知道这几条是不是对应类似machine learning, neural network, evolutionary algorithm, program synthesis之类的领域。如果是的话,这几个领域我都有一点粗浅的了解。欢迎大神批评补充。比如machine learning和neural network, 核心都是回归和数据拟合,离智能化还很远。大牛Andrew Ng的网课,光靠这个实现强人工智能我是不信滴。关于evolutionary algorithm,去年有一个大牛的talk,推荐大家看一下。全篇都是技术讨论没有涉及“奇点”,大家可以自己判断现在的研究前沿离真正的强人工智能还有多远。从43分钟开始:program synthesis里,现在计算机能自己生成的程序还很弱智,而且算法复杂度都是exponential time甚至doubly exponential time(比如)的。用的方法本质上是先靠程序员输入一个程序模板和参数空间,然后用各种方法遍历所有可能的程序,看看是不是满足要求。这其实引出了一个很有意思的问题:现在我们CPU的计算能力是指数增长的,但按照今天的算法,许多真正有趣的问题都是需要“指数时间”,甚至多重指数时间才能解决的。那么,我们实际解决新问题的速度一定是指数发展的吗?让该领域内的专家来介绍现在的研究成果和面临的巨大问题,比起作家自己泛泛而谈要好得多。--------------------------其他反对的观点其实也不少,比如可以参考这篇文章 等有空我可能会翻译一下。麻烦高票答案加上“本文代表部分业内观点,不具有普遍性和权威性”,以免误导不明真相的群众。
目前已有13个回答,但暂且没有深入的回答。而且很多回答跑偏了……我花点时间写一个吧。--直接回答题目问题:目前精英们对人工智能的担忧主要集中于可控性和失业方面。也有人在考虑伦理方面的问题。对可控性的担忧其实有点科幻,短期做不到超出控制的水平的……毕竟目前的人工智能还处于“有多少人工就有多少智能”的阶段。因为题主问的主要就在这个方面,那我就只讲这个方面好了,毕竟失业和伦理大家不是那么关注。讨论这个问题,一定要明确两组概念:人工智能(Artificial Intelligence,AI)和人工生命(Artificial Life,AL),强人工智能和弱人工智能。(强弱人工智能是作为假说出现的,我这篇回答里指两个假说中的人工智能形态)以下从人工智能和人工生命两个话题切入,并且穿插强弱两种人工智能的描述分析。题主在描述里的问题放在文末回答。1.人工智能人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。这是人工智能,许多码农在这个领域里挥洒着青春和荷尔蒙。1) 人工智能应用的现状目前对人工智能的应用其实相当原始。语言识别、图像识别看上去好像很厉害,其实就是那么几个算法拿语料库图像库训练出来的。这不是“智能”,而是对人类智能的模拟。为什么这么说?上吧,中文屋!“中文房间”最早由美国哲学家John Searle于20世纪80年代初提出。这个实验要求你想象一位只说英语的人身处一个房间之中,这间房间除了门上有一个小窗口以外,全部都是封闭的。他随身带着一本写有中文翻译程序的书。房间里还有足够的稿纸、铅笔和橱柜。写着中文的纸片通过小窗口被送入房间中。根据Searle,房间中的人可以使用他的书来翻译这些文字并用中文回复。虽然他完全不会中文,Searle认为通过这个过程,房间里的人可以让任何房间外的人以为他会说流利的中文。中文屋是对强人工智能(机器拥有思想,能够独立决策)假说的第一次打脸(是强人工智能假说),Searle指出当时设想的绝大多数人工智能实现方案都不是强人工智能,而是弱人工智能(程序设计者预测会出现的情况,然后做出应对方案,由机器判断符合条件与否并加以执行)。通过一套完整的流程(从字典里找对应的文字,然后翻译成英文,作答,然后用字典翻译回中文,发回去),一个不懂中文的人可以用中文回答中文问题,让屋子外的人以为他会中文。这个人会中文吗?不会。这其实就是目前人工智能在做的事情。比如语音识别程序,其大致流程是:把声音中频率、音色转成数字,通过算法转化为一系列特征值,查找字典找到对应的文字然后显示出来。典型应用是Siri,Siri在语音识别的基础上加了一套应对。Siri的表现让大家以为“这个程序听得懂人在说什么”,但其实这个程序听不懂人类说的话,它做的事情只不过是照着流程坐了一趟而已,不需要听懂你的话也能完成。真正听懂你的话的人是程序员。&今年也请多指教。&谢谢你,今年的充电也要拜托您了大家都知道,后面那句话其实是程序员写上去的,是程序员在卖萌,不是手机里的Siri程序自发卖萌。总之,这就是人工智能在应用方面的现状啦。这是一些不会自己思考的程序,设计者也没打算让它思考,实际上设计者也不知道怎样才能让它思考。它能做的事情就是按照设计者的安排,一步一步完成既定程序。@klin 的回答在目前看来是多虑,神经网络模型最大的用处是配合各种数据库确定参数……也就是我在上面说的,拿来训练算法。神经网络模型虽然确实神奇,但并不是依赖于完整的智能才能实现,而是一套反馈修正的训练模式,并不是智能的本质。2) 为什么目前人工智能只能做到这个程度?原因很简单,人工智能是人类对“智能”的模拟,目的是实现某个人类能完成的工作,所以受人们对智能的理解限制。即使配合上神经网络模型和遗传算法的训练,目前的程序也只能在“这个程序达到了预期目标但我也不知道它怎么达到目标的”方面让人吃惊而已,程序本身不会演化出崭新的能力(在我所知的案例中),即只会接受训练,不能创造新事物。所以目前的人工智能只是工具而已。2.人工生命看完人工智能的描述会失望吧。其实科幻小说里面描述的机器人拥有智能然后反过来统治人类什么的,跟人工智能的大部分领域不相关,主要跟人工生命的领域有关系。人工生命(AL:Artificial life)是通过人工模拟生命系统,来研究生命的领域。人工生命的概念,包括两个方面内容:1)、属于计算机科学领域的虚拟生命系统,涉及计算机软件工程与人工智能技术,以及2)、基因工程技术人工改造生物的工程生物系统,涉及合成生物学技术。 AL是首先由计算机科学家Christopher Langton在1987年在Los Alamos National Laboratory召开的"生成以及模拟生命系统的国际会议"上提出。在这里主要取用1)的定义,即广义的生命定义(强人工生命)。强人工生命:主张"生命系统的演化过程,是一个可以从任何特殊媒介物中抽象出来的过程."(John Von Neumann). Notably, Tom Ray 在Tierra模拟试验中第一次展示了,进化过程在有着抢占计算机存储空间之争的计算机程序的某种群体中极易发生。科普书《复杂》对此有描述。人工生命涉及了广义的生命定义,生命在这里指代的是一个会对外反馈、自反馈的一套稳定系统。比如一个炒股的人,这个人本身是一个生命,他会对股市上的各种现象做出反应,会对熊市恐慌对牛市兴奋;但这个由所有炒股者组成的股市也有类似的现象,中央银行调整利率汇率时股市会做出对应反应,经济危机时股市会萎靡不振,各类金融报道里会有“美国股市情绪相对稳定”之类的用词,实际上就可以把股市看做一个生命。与此类似,单个蜜蜂是一个生命,一个蜂巢里整个蜂群也算作一个生命;一只白蚁算一个生命,一整个白蚁群体也可以算作一个生命。实际上对人的个体进行切割的话,你会看到每一个细胞都有自己的职责,在微观层次上每个细胞也都是一个生命,一组细胞组成的一个器官也算一个生命,一组器官构成的人也是一个生命。比较绕对吧……这是生命的广义定义,人工生命的定义基于此而产生。比如一个程序,如果满足了广义上生命的定义,就可以看做是一个生命……也就是人工生命。强人工智能(与前文弱人工智能相对)实际上必须基于人工生命才能成型,人们恐惧的也是强人工智能。强人工智能要求程序有自己的思维,能够理解外部事物并自发做出决策甚至行动,其表现就像一个“人”一样,甚至很可能比人的反应更杰出、更可靠。(想到深蓝的知友请去面壁,深蓝和更深的蓝都是弱人工智能)反过来,这些能够自行思考的人工生命,也有背叛人类的可能……甚至于很可能会背叛人类。对于人工智能可控性的担忧主要就在强人工智能上。但是这种担忧离二十一世纪初的我们还很远……目前对人工生命的研究仍然很原始,原始到所有的研究发现出来的东西都不知道能拿来做什么。我觉得,这帮科技精英们有对强人工智能的担忧是很合理的,作为能影响人类社会科技研发方向的人,他们有责任提醒大家“这个方向上有狼往前走要小心”,有责任提醒大家人工生命的研究要在严格控制条件下进行。不过他们其实也没有很担忧,毕竟这玩意目前看来还是太科幻……盖茨的发言已经能说明这一点了:不明白为什么有那么多人并不担心这种技术对未来的影响以及, 这篇报道的记者根本狗屁不通……盖茨担心的是强人工智能和人工生命,盖茨兴致勃勃在搞的是弱人工智能。回答题主在描述里的问题。Q: 这是因为人工智能要进入新阶段了?A: 跟这个没啥关系。纯粹是因为特斯拉CEO马斯克跟媒体提到了这一点,于是人工智能变成话题了,其他人做出自己的表态而已。Q: 这些名人是不是可能比较先得到信息,所以向人们预警?A: 得到谁的消息?恐怖分子研发出强人工智能了?不要搞阴谋论啊……Q: 或者是每年都有很多人提出这个问题,只是今年报道的比较多?A: 应该这么说吧,确实是媒体的姿势水平不到位。在学界,强人工智能有风险是一个不用讲大家都理解的事情,但是外界对此懂的太少,常常混淆强弱两种人工智能,这次马斯克一提出防范人工智能,媒体们漫天乱喊搞得跟个大新闻似的。换言之,这玩意在业内是常识,不会每年都有人提,这次捅出来给公众做了个科普但是没有科普到位。Q: 人类跟人工智能之间,会不会出现类似三体里面的博弈?A: 天知道……这也是大家在担心的事情。所幸离我们还远,通过图灵测试的程序还遥遥无期。——————答案发布之前突然想到的——————等等,该不会有人被前次的坑爹记者误导了吧? 这根本不是通过图灵测试,只不过有30%的评委在五分钟交谈的记录中判断这有可能是一个13岁不懂英语的小孩而已。够贱的。而这玩意实际上仍然是弱人工智能:这个程序实际上是一套人类对话的模拟脚本,从认知角度来说,它真不大能算得上是思考通过图灵测试这个事儿吧,大家不要再提了,纯粹是媒体的姿势水平太低了。简直给人类丢脸。
搬到深圳啦,希望认识些当地朋友,请私信。您还未登陆,请登录后操作!
为什么有很多被抛弃的狗?
孤零零地站在风中,好象不知该怎么办似的,总觉得它们是被主人遗弃了. 那么为什么要遗弃它呢?如果不想继续养它,可以送人或者想其它的办法呀,为什么把它丢弃在外面不管了呢?
部分国人缺乏爱心教育、责任感教育。饲养宠物,绝不能是为了自己一时高兴,不高兴时就不要的。宠物是朋友,是需要爱护、照料,需要陪伴到老的,当然也要为它付出时间、精力、劳动,这样做,也是一个人格完整的人需要具备的素质。所以饲养前不妨考虑清楚,自己有没有能力将它照顾好,如果稍有迟疑,就干脆不要草率做出决定,切不可养下来后,却又随意抛弃。
124.67.30.*
这就是报应。。。我有二只小狗狗,不会抛弃他们的,他们就像我家的孩子
113.118.31.*
说得好,鼓掌!
用户klmb80za0h
谁来干啊??结扎,哪那么好弄啊?就是因为主人不肯花钱啊什么的才丢掉的!何况还要出钱给流浪狗结扎呢?社会应该弄个免费结扎的地方
124.72.70.*
..........
猫是比较敏捷的从8楼掉下去这不可信吧
也许人类不该人为地去饲养那些本来就应该在自然界里自由生存的生命,让它们自由自在地融入自然界,才是对生命真正的尊重真正地热爱吧?!
124.67.30.*
119.40.33.*
楼下的评论者看来你根本就没理解他的意思,他是想说一种现象的出现大家要客观对待!!有的人把狗丢掉是出于矛盾的两难心里.即然这样为什么还要去打扰动物的生活!!
你这是狗屁道理!
124.72.70.*
很理性地分析啊!
那么,如果不抛开道德呢?你想做出什么样的解释来?
只为你勇敢
不要什么东西都和教育或者素质撤上关系,
124.72.70.*
那你干吗不吧那只狗捡回来,不然那只狗多可怜
你写的真感人啊!!!
我就是爱问
看着你的描述,我的眼前仿佛已经出现了你所描述的那一幕,我的眼泪都快要掉下来了,我的内心和你一样的痛苦、绝望、悲凉… 如果那时看到这一场景人的是我,或许我会把它带回家,不然我会有负罪感。
113.142.17.*
狗是忠臣,人不弃狗,狗不弃人。应该善待
不是的,是大多数人。
说的对,人类是最坏的动物,为了赶时髦养狗,没养两天就不要了,随便一扔就完事
119.60.197.*
119.60.197.*
119.60.197.*
哈哈哈!!!!!
真是太可怜了
119.60.197.*
我同意说的
110.247.111.*
在很多时候我看见街上的流浪狗,我的内心就有一丝丝的偶痛,还有那些被车撞死的可怜的小狗,流着很多的血,我真是看在眼里急在心里有些部门能管管这些流浪狗吗?我在此谢谢政府!
你的说法,我也很赞同!
您的举报已经提交成功,我们将尽快处理,谢谢!
大家还关注1您所在的位置: &
为什么有这么多 Python?(1)
为什么有这么多 Python?(1)
yfwz100等译
自从我使用Python工作以来,我已经用过了各种各样的.*ython工具了。但是直到最近我才花时间去理解到底它们是干嘛的,它们是怎样工作的,为什么它们是不可或缺的。在这篇文章里面,我会介绍各种Python的实现,最后以对PyPy的介绍结尾, 因为我个人认为它是Python的未来。
Python是出类拔萃的
然而,这是一句非常模棱两可的话。这里的&Python&到底指的是什么?
是Python的抽象接口吗?是Python的通用实现CPython吗(不要把CPython跟Cython搞混了)?亦或者指的完全是其他的东西呢? 可能我另外指的是Jython,或者IronPython,或者是PyPy。也或者转而谈论的又是RPython或者RubyPython(这两者是完全 不同的东西)。
上面提到的那些技术经常被提起和引用, 它们的使用目的和场景是完全不一样的(至少,它们的操作方式是完全不一样的)
自从我使用Python工作以来,我已经用过了各种各样的.*ython工具了。但是直到最近我才花时间去理解到底它们是干嘛的,它们是怎样工作的,为什么它们是不可或缺的。
在这篇文章里面,我会介绍各种Python的实现,最后以对PyPy的介绍结尾, 因为我个人认为它是Python的未来。
所有的都从理解什么是&Python&开始。
如果你对机器码,虚拟机之类的很熟了,你可以跳过开头,直接从 &即时编译: PyPy和它的未来& 这部分开始看起。
Python是解释型的还是编译型的?
这是个Python新人都会迷惑的问题。
首先需要明了的是Python只是一个接口。有一个关于Python应该做什么以及怎么做的具体说明(就像其他任何接口一样 ),并且对应的有很多具体的实现(也像其他接口一样)。
其次需要知道的是&解释型&和&编译型&是具体实现的特性,而不是接口的特性。
所以,这个问题本身就没有组织好。
Python是解释型还是编译型的?这个问题真的没有组织好。
对使用最广泛的实现(CPython:用C实现的,通常简单的说成Python,若你不知道我所说的这些,那很肯能你在使用的就是CPython)而言,这个问题的答案是:解释型,但带有一些编译型特征。CPython把Python源码编译*成字节码,之后再解释这些字节码,执行之。
*注意:这个编译不是通常意义上的编译。通常我们说的编译,是指把高级语言代码转换成机器码。但这里的编译实际上是另一种意义上的编译。(译者,这句话不是很懂,原文是it is a &compilation& of sorts,不知作何解,求教各位读者。)
再详细看下上面的答案吧,这有助于我们理解本文中后面会讲到的几个概念。
字节码 vs. 机器码
了解字节码和机器码(或者native code)的区别是很重要的,最好的办法或许是看看例子:
C代码被编译成机器码,将在处理器上直接执行。每一条指令控制CPU工作。
Java代码被编译成字节码,将在Java虚拟机(JVM)这个抽象的计算机上执行。每一条指令由JVM处理,JVM同计算机本身之间交互。
机器码随机器的变化而变化,但字节码在所有的机器上都是一样的。有人可能会认为机器码是对特定环境优化了的。
回到CPython,工具链的执行过程如下:
CPython编译你的Python源代码,生成字节码。
字节码随后在CPython虚拟机上执行。
初学者常常因为看到.pyc文件而假设Python是编译型的。这也有一些合理性:.pyc文件正式之后要解释的字节码文件。所以,你若之前运行过你的Python代码,生成了.pyc文件,再次运行时就要快得多,因为不需要再次编译生成字节码了。
可选的虚拟机:Jython,IronPython等
正如我之前所述,Python有很多实现。前面也提到,CPython是最通用的。这是一个用C实现的,被认为是&默认&的实现。
但其他的呢?其中最显赫的之一就是Jython,一个用Java实现的采用了JVM的实现。CPython生成在CPython虚拟机上运行的字节码,而Jython生成在JVM上运行的java字节码(这同编译Java程序生成java字节码的过程是一样的)。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' width="478" height="467" alt="" src="/wyfs01/M02/2F/E2/wKioJlJHlIDBclHVAABeqAMPi8Q056.jpg" />
&为啥你要用其他的实现?&,你可能会如此发问。好吧,对开发者而言,不同的实现对不同的技术难题的支持程度不一样。
CPython中很容易为你的Python代码写C扩展,因为最终都是由C解释器执行的。另一方面,Jython则使得和其他java程序共同工作很容 易:无需其他工作,你就可导入任何Java类,在你的Jython程序中使用其他Java类。(题外话,若你没有认真思考,这一段会很难。此时我们已经在 讨论把不同语言的代码混在一起,并编译成同一程序。(Rostin 提出混合Fortran和C代码编程已经有一段时间了。所以,这并不新鲜,但仍然很酷。))
下面是一个例子,一段合法的Jython代码:
[Java&HotSpot(TM)&64-Bit&Server&VM&(Apple&Inc.)]&on&java1.6.0_51&&&&&from&java.util&import&HashSet&&&&&s&=&HashSet(5)&&&&&s.add(&Foo&)&&&&&s.add(&Bar&)&&&&&s&[Foo,&Bar]&
内容导航&第 1 页: &第 2 页: &第 3 页:
关于的更多文章
一周一周的过的很快,2013年已经进入了倒计时。开发频道每周重点
网友评论TOP5
我原本是个C程序员,阴差阳错,步入Java大门,转眼十余年...
讲师: 0人学习过讲师: 31人学习过讲师: 50人学习过
十一长假归来上班,好像更累了;早上也越来越堵了。小
数据结构课程,貌似是大学计算机、网络、软件等专业的
JavaScript正凭借新型工具与功能提升以极度夸张的速度
本书依据最新版《软件设计师考试大纲》的考核要求,深入研究了历年软件设计师考试试题的命题风格和试题结构,对考查的知识点进行
51CTO旗下网站

我要回帖

更多关于 为什么头皮屑那么多 的文章

 

随机推荐