超能课堂(144):X86、ARM有何不同?

2018-7-12 17:22  |  作者:梁俊豪   |  关键字:超能课堂,ARM,X86

一台服务器、一台电脑、一台手机最重要的电子零部件是什么?没错,就是CPU处理器。它主要负责数据计算、控制功能,是最核心的部分。不过你又知道有多少种CPU架构吗?主流的X86、ARM到底有什么区别?

本文约3260字,需5分钟阅读

一台服务器、一台电脑、一台手机最重要的电子零部件是什么?没错,就是CPU处理器。它主要负责数据计算、控制功能,是最核心的部分。不过你又知道有多少种CPU架构吗?主流的X86、ARM到底有什么区别?

下面就给大家介绍一下几种常见的CPU架构:

X86

1978年6月8日,Intel发布了史诗级的CPU处理器8086,由此X86架构传奇正式拉开帷幕。首次为8086引入X86作为计算机语言的指令集,定义了一些基本使用规则,X86架构使用的是CISC复杂指令集。同时8086处理器的大获成功也直接让Intel成为了CPU巨头,如果你对8086不是那么熟悉,那么一定听过奔腾处理器吧?况且为了纪念8086K诞生40周年,今年Intel发布了一颗纪念限量版的处理器Core i7-8086K,这你都听说过吧?


图片来自Intel官网

IA64(Intel Architecture 64,英特尔架构64)

哇,IA64听起来好陌生,是的,虽然同出Intel之手。但这可以说是失败品。当年X86过渡到64位指令集时,一个不小心被AMD弯道超车,最后只能联合惠普推出了属于自己的IA64指令集,但这也仅限于服务器上,也是Itanium安腾处理器的来历(现在已经凉了)。


图片来自x86-guide

至于IA64究竟是RISC还是CISC指令集的延续,这个真的很难说清楚,但单纯以IA64基于HP的EPIC(Explicitly Parallel Instruction Computers,精确并行指令计算机)来看,似乎更偏向于RISC体系。

MIPS(Microprocessor without interlockedpipedstages,无内部互锁流水级的微处理器)

在上世纪80年代由美国斯坦福大学Hennessy教授的研究小组研发,它采用精简指令系统计算结构(RISC)来设计芯片。和Intel采用的复杂指令系统计算结构(CISC)相比,RISC具有设计更简单、设计周期更短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。MIPS自己只进行CPU的设计,之后把设计方案授权给客户,使得客户能够制造出高性能的CPU。

让MIPS出名的,可能是在2007年,中科院计算机研究所的龙芯处理器获得了MIPS的全部专利、指令集授权,中国开始走上了一MIPS为基础的CPU研发道路。


图片来自龙芯官网

PowerPC

PowerPC是有蓝色巨人IBM联合苹果、摩托罗拉公司研发的一种基于RISC精简指令集的CPU,PowerPC架构最大优点是灵活性非常好,核心数目灵活可变,因此在嵌入式设备上具有很高效益,可以针对服务器市场做超多核,针对掌机做双核,因此它具有优异的性能、较低的能量损耗以及较低的散热量。


图片来自wikimedia

ARM(Advanced RISC Machine,进阶精简指令集机器)

ARM可以说是一个异军突起的CPU架构,采用了RISC精简指令集,而且ARM发展到今天,架构上非常灵活,可以根据面向应用场景不同使用不同设计的内核,因此可以广泛用于嵌入式系统中,同时它高度节能的特性,目前各种移动设备中全都是它的身影。据统计,使用ARM架构的芯片年出货量高达200亿片,随着物联网时代降临,对于低功耗性ARM芯片需求量会发生爆炸性增长。


图片来自iFixit

CISC、RISC之争

从上面得知,历史的长河里面,有过许许多多的CPU架构,它们之间的差异性非常大,经过时间、用户的检验,我们平常所接触到CPU架构也就剩X86和ARM两者,按照最核心的不同可以被分为两大类,即“复杂指令集”与“精简指令集”系统,也就是经常看到的“CISC”与“RISC”。

要了解X86和ARM CPU架构,就得先了解CISC复杂指令集和RISC精简指令集 ,因为它们第一个区别就是X86使用了复杂指令集(CISC),而后者使用精简指令集(RISC)。造成他们使用不同该指令集的原因在于,面向的设备、对象、性能要求是不一样。手机SoC普遍都是采用ARM提供的核心作为基础,依据自身需求改变SoC的核心架构,而ARM正正是RISC精简指令集的代表人物。CPU巨头Intel、AMD所采用的X86架构已经沿用了数十年,是CISC复杂指令集的典型代表。

CISC复杂指令系统就是为了增强原有指令的功能,设置更为复杂的新指令实现部分大量重复的软件功能的硬件化。由于早期的电脑主频低、运行速度慢,为了提高运算速度,不得已将更多的复杂指令加入到指令系统中来提高电脑的处理效率,慢慢形成以桌面电脑为首的复杂指令系统计算机。其指令集也是在不断更新增加当中,如Intel为X299平台上的处理器增加了AVX 512指令集,目的就是为了提高某一方面的性能。

虽然CISC可以实现高性能CPU设计,但是设计起来就相当麻烦了,要保持庞大硬件设计正确是一件不容易的事情,还要确保性能有所提升,不能开倒车,因此桌面CPU研发时间也慢慢地变长。这时候,以ARM为首的一些RISC精简指令系统计算机开始崭露头角了。

RISC可以说是从CISC中取其精华去其糟粕,简化指令功能,让指令的平均执行周期减少,达到提升计算机工作主频的目的,同时引入大量通用寄存器减少不必要的读写过程,提高子程序执行速度,这样一来程序运行时间缩短并且减少了寻址,提高了编译效率,最终达到高性能目的。

这两种指令集一直都在求同存异当中,都在追求在体系架构、操作运行、软硬件、编译时间以及运行时间等等诸多因素中做出某种平衡,以此达到当初所设计的高效运转目的。


图片来自新浪博客

功耗上的限制

从CISC、RISC设计思路来看,大家不难发现,他们走的路根本不一样,前者专注于高性能方向,但带来高功耗,而后者专注于做低功耗的嵌入式,对于性能的最强不是太过强劲。因此我们也看到Intel、AMD他们擅长于设计性能超高的X86处理器,而高通、苹果依靠ARM IP授权设计出注重效能的SoC芯片。

就像我们以前所举的例子,Core i7-8086K可以轻易跑出95W功耗,但像高通骁龙845这种最顶级的SoC也不过是5W,只有其1/19,主要是手机尺寸越来越小,电池容量、能量密度发展跟不上,手机所用ARM内核只能是低功耗。

一般来说,处理器的功耗可以随着制造工艺的进步而降低,但近些年来,移动设备所采用的的SoC往往率先使用更小的纳米工艺制程,比方说骁龙845的10nm,虽然里面有取巧成分,但推进速度远远快于Intel的10nm工艺,加之SoC还会有对应的低功耗版本工艺,所以无论是设计上、还是工艺上的差别,都导致了ARM、X86功耗差异非常大。

大小核架构

从前的X86传统CPU,如果是四核或者是双核,内部的四个、两个个核心都是一模一样的,这样的话,由于一旦软件只能调度一个核心,处于高频工作,但由于架构限制,其余核心也要保持同样的高频率和高电压状态,这样就浪费了大量的能量在做无用功。后来就发展出了异步多核,允许不同核心工作在不同频率上,以此换来更低功耗。

由于移动设备更加在意功耗,所以ARM采用了更加激进的做法,八个核里面允许有不同Cortex-A架构核心,那就是著名的ARM bigLITTLE。这样的大小核设计目的很明确,就是在有限的电池容量中,兼顾性能、续航的需求,因此SoC内部的CPU是采用异构计算,既有高性能大核心,也有低功耗小核心。


bigLITTLE架构框架,图片来自ARM官网

芯片设计厂商可以根据自己的需求,设计出有针对性的产品,比方说目前高通骁龙845、华为的麒麟970、联发科Helio X30都是bigLITTLE架构,这样的话如果你只是刷刷微博、朋友圈,那么只需要动用小核心就能完成任务,玩《绝地求生》吃鸡游戏就可能大小核全开,从而保证性能、续航的平衡。

因此ARM的bigLITTLE异步多核架构非常值得参考,甚至传闻称英特尔将在第10代酷睿处理器Lakefield上使用这种技术,高性能大核是Ice lake(下一代Core),低功耗小核心则是Tremont(下一代Atom),因此在整体功耗上控制在35W以内,用于二合一笔记本上。

ARM、X86也能相互融合

之前我们在另一篇超能课堂《手机SoC与电脑的CPU性能究竟差多少?》就总结过,RISC、CISC各有各的优势,目前两者界限开始逐渐变得模糊,现代的CPU往往采用了CISC的外围,而内部则加入了部分RISC的特性,这个也是Intel处理器的开始拥有RISC的典型例子。也就是说其实未来CPU发展方向之一就是融合CISC以及RISC,从软件、硬件上取长补短,进一步提高处理器的并行性以及工艺水平。

X86、ARM在性能、功耗上各占优势,尽管ARM一直想进入高性能服务器市场上,但一直都是雷声大雨点小,前不久想要挑战intel服务器地位的高通,ARM服务器部门直接裁员50%,技术副总裁也不玩了;ARM处理器也期望能获得X86处理器的高性能,以便能用在移动笔记本上,就像刚刚推出的高通骁龙835 Windows笔记本一样,但评价、反映都是平平;Intel利用X86架构Atom做手机SoC,结果还是败给了ARM,亏掉数十亿美元,最终直接砍掉了这个项目,老老实实做X86处理器。

所以说ARM、X86都在各自领域站稳了脚跟,由于设计之初的理念不同,已经很难渗入对方的领域,只能说不断尝试,两者之间的差异在将来可能会缩小,不断借鉴改进。


图片来自esa-automation


  • 游客  07-15 17:38

    阿鲁

    支持(0)  |   反对(0)  |   举报  |   回复

    35#

  • 游客  07-14 12:46

    大力宣传和发展中文编程语言,中文编译系统,中文指令集,要逐渐迭代到全中文环境,此举重在未来民族之兴,要尽量实现,将程序逻辑,算法,通过汉字字符进行表示.舍弃英文单词字符等不利于使用汉字的民族进行程序设计.要让更多人进入编程行业,零基础零门槛掌握编程技能,丰富中文汉语言文化建造程序的生态,量变质变,掌握未来发展先机.

    支持(2)  |   反对(2)  |   举报  |   回复

    34#

  • 游客  07-14 09:39

    游客:

    还是要大力发展精简指令集,把更多的功能移到软件面来实现,还要发展中文编程语言,中文编译系统,中文指令集,让更多人入门,发挥人多力量大的智慧优势.
    07-13 02:53
  • 支持(2)  |   反对(7)  |   举报  |   回复
  • 你那个叫自然语言,叫ai

    支持(1)  |   反对(0)  |   举报  |   回复

    33#

  • 游客  07-13 21:24

    游客:

    编程难的不是语言,是逻辑,算法还有逆向思维。if 和else有什么难以理解的。任何符号都能代替。
    其实复杂指令集和简单的指令集可以用买东西来举例:
    复杂指令集:我掏钱买东西的过程可以分解成,我要去超市买东西,我出家门,我到了超市。我拿了商品到收银台付款,我从钱包拿出钱付款,收银员找钱,我拿了东西走出超市。我回家了。东西买成功。
    简单指令集:我要去超市买东西,我怎么去到超市, 走路还是坐车或者开车,如果坐车可以分为,公交,出租,快车等等,我选择哪一个。如果开车,我有几辆车,开哪一辆等等;;到了超市,我走到货柜 ...
    07-13 10:14
  • 支持(1)  |   反对(3)  |   举报  |   回复
  • 游客:

    我发那么多,吃掉很大一部分。后边还有的也不想发了!
    算了就这样吧。
    07-13 10:15
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 是。其实编程语言本身都很容易理解,智力正常的人,都能理解。但是逻辑性就不一样了。
    就比如学排序算法,第一次遇到递归,觉得真的很吊……这种逻辑结构,在以前的数学体系里是从来没有的。

    支持(0)  |   反对(1)  |   举报  |   回复

    32#

  • 游客  07-13 15:02

    游客:

    还是要大力发展精简指令集,把更多的功能移到软件面来实现,还要发展中文编程语言,中文编译系统,中文指令集,让更多人入门,发挥人多力量大的智慧优势.
    07-13 02:53
  • 支持(2)  |   反对(7)  |   举报  |   回复
  • 游客:

    .版本 2

    .子程序 __启动窗口_创建完毕
    .局部变量 文本, 文本型
    .局部变量 文本组, 文本型, , "0"
    .局部变量 数1, 整数型
    .局部变量 数2, 整数型

    文本 = 到文本 (读入文件 (取运行目录 () + “\文本.txt”))
    文本组 = 分割文本 (文本, “,”, )
    文本 = “”
    .如果真 (取数组成员数 (文本组) = 0)
        信息框 (“在运行目录下没有” + 引号 + “文本.txt” + 引号 + “文件!”, 0, )
        结束 ()
    .如果真结束
    .计次循环首 (取数组成员数 (文本组), 数1)
        .如果真  ...
    07-13 10:31
  • 支持(6)  |   反对(0)  |   举报  |   回复
  • 看不懂,还是abc容易理解

    支持(3)  |   反对(0)  |   举报  |   回复

    31#

  • heqi博士 07-13 14:33

    游客:

    编程难的不是语言,是逻辑,算法还有逆向思维。if 和else有什么难以理解的。任何符号都能代替。
    其实复杂指令集和简单的指令集可以用买东西来举例:
    复杂指令集:我掏钱买东西的过程可以分解成,我要去超市买东西,我出家门,我到了超市。我拿了商品到收银台付款,我从钱包拿出钱付款,收银员找钱,我拿了东西走出超市。我回家了。东西买成功。
    简单指令集:我要去超市买东西,我怎么去到超市, 走路还是坐车或者开车,如果坐车可以分为,公交,出租,快车等等,我选择哪一个。如果开车,我有几辆车,开哪一辆等等;;到了超市,我走到货柜 ...
    07-13 10:14
  • 支持(1)  |   反对(3)  |   举报  |   回复
  • 游客:

    已经隐藏3层评论[点击展开]

    Axe斧娃 编辑 :

    已经验证了,麻烦确认下
    07-13 14:06
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 支持(0)  |   反对(0)  |   举报  |   回复

    30#

  • Axe斧娃编辑 07-13 14:06

    游客:

    编程难的不是语言,是逻辑,算法还有逆向思维。if 和else有什么难以理解的。任何符号都能代替。
    其实复杂指令集和简单的指令集可以用买东西来举例:
    复杂指令集:我掏钱买东西的过程可以分解成,我要去超市买东西,我出家门,我到了超市。我拿了商品到收银台付款,我从钱包拿出钱付款,收银员找钱,我拿了东西走出超市。我回家了。东西买成功。
    简单指令集:我要去超市买东西,我怎么去到超市, 走路还是坐车或者开车,如果坐车可以分为,公交,出租,快车等等,我选择哪一个。如果开车,我有几辆车,开哪一辆等等;;到了超市,我走到货柜 ...
    07-13 10:14
  • 支持(1)  |   反对(3)  |   举报  |   回复
  • 游客:

    我发那么多,吃掉很大一部分。后边还有的也不想发了!
    算了就这样吧。
    07-13 10:15
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • Axe斧娃 编辑 :

    那太遗憾了,其实这是因为你是游客而不是注册用户,前者只能发表250个字符,但是如果你是已经注册的话,那么你就可以发布……反正就是发布很多很多字
    07-13 10:26
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • heqi 博士 :

    我想问我注册那么久,绑定手机、微信,怎么还是等待验证会员
    07-13 11:39
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 已经验证了,麻烦确认下

    支持(0)  |   反对(0)  |   举报  |   回复

    29#

  • heqi博士 07-13 13:56

    游客:

    还是要大力发展精简指令集,把更多的功能移到软件面来实现,还要发展中文编程语言,中文编译系统,中文指令集,让更多人入门,发挥人多力量大的智慧优势.
    07-13 02:53
  • 支持(2)  |   反对(7)  |   举报  |   回复
  • 游客:

    一看就是没学过编程的小白,编程的真正难点不再于英文(而且那些也不是英文,含义跟原英文单词根本不同,有些压根没有原本的单词)。那些代码含义一般人花点时间背背也就能记住了,编程的难点在于思维模式(逻辑思维在编程中相当重要,一般数学好的人转编程也相对容易) 耐心(程序中哪怕一个简单的功能可能都要涉及几百甚至上千行代码)。老实说中文编程意义不大(其实这类软件早就有了),反而会使编程变得更加繁琐,该学不会的人还是学不会,一个连几百个代码都懒得背的人你能指望他去系统学习编程,可能吗? ...
    07-13 09:45
  • 支持(7)  |   反对(1)  |   举报  |   回复
  • 游客:

    鼠目寸光,看不到未来远期发展,还有中兴被人制裁的后果.既然都是用字符表示程序逻辑,为何不可用咱们的母语字符来表示?自己脑子秀逗了.
    07-13 12:07 已有4次举报
  • 支持(1)  |   反对(7)  |   举报  |   回复
  • 还好意思说人鼠目寸光,你学过编程没有?做过项目没有?十多年前曾经有人兴奋的告诉我,有中文编程语言了,还说一大堆什么什么大势所趋,吧啦吧啦,然后就是没有然后

    已有1次举报

    支持(2)  |   反对(1)  |   举报  |   回复

    28#

  • 游客  07-13 13:03

    X86天下第一!

    支持(0)  |   反对(0)  |   举报  |   回复

    27#

  • hianghokung一代宗师 07-13 12:38

      “是有”→“是由”

    支持(0)  |   反对(0)  |   举报  |   回复

    26#

  • 游客  07-13 12:18

    游客:

    编程难的不是语言,是逻辑,算法还有逆向思维。if 和else有什么难以理解的。任何符号都能代替。
    其实复杂指令集和简单的指令集可以用买东西来举例:
    复杂指令集:我掏钱买东西的过程可以分解成,我要去超市买东西,我出家门,我到了超市。我拿了商品到收银台付款,我从钱包拿出钱付款,收银员找钱,我拿了东西走出超市。我回家了。东西买成功。
    简单指令集:我要去超市买东西,我怎么去到超市, 走路还是坐车或者开车,如果坐车可以分为,公交,出租,快车等等,我选择哪一个。如果开车,我有几辆车,开哪一辆等等;;到了超市,我走到货柜 ...
    07-13 10:14
  • 支持(1)  |   反对(3)  |   举报  |   回复
  • 汇编和高级语言 写同样程序的难度一定不一样的...

    支持(0)  |   反对(0)  |   举报  |   回复

    25#

  • 游客  07-13 12:07

    游客:

    还是要大力发展精简指令集,把更多的功能移到软件面来实现,还要发展中文编程语言,中文编译系统,中文指令集,让更多人入门,发挥人多力量大的智慧优势.
    07-13 02:53
  • 支持(2)  |   反对(7)  |   举报  |   回复
  • 游客:

    一看就是没学过编程的小白,编程的真正难点不再于英文(而且那些也不是英文,含义跟原英文单词根本不同,有些压根没有原本的单词)。那些代码含义一般人花点时间背背也就能记住了,编程的难点在于思维模式(逻辑思维在编程中相当重要,一般数学好的人转编程也相对容易) 耐心(程序中哪怕一个简单的功能可能都要涉及几百甚至上千行代码)。老实说中文编程意义不大(其实这类软件早就有了),反而会使编程变得更加繁琐,该学不会的人还是学不会,一个连几百个代码都懒得背的人你能指望他去系统学习编程,可能吗? ...
    07-13 09:45
  • 支持(7)  |   反对(1)  |   举报  |   回复
  • 鼠目寸光,看不到未来远期发展,还有中兴被人制裁的后果.既然都是用字符表示程序逻辑,为何不可用咱们的母语字符来表示?自己脑子秀逗了.

    已有4次举报

    支持(1)  |   反对(7)  |   举报  |   回复

    24#

  • heqi博士 07-13 11:41

    游客:

    编程难的不是语言,是逻辑,算法还有逆向思维。if 和else有什么难以理解的。任何符号都能代替。
    其实复杂指令集和简单的指令集可以用买东西来举例:
    复杂指令集:我掏钱买东西的过程可以分解成,我要去超市买东西,我出家门,我到了超市。我拿了商品到收银台付款,我从钱包拿出钱付款,收银员找钱,我拿了东西走出超市。我回家了。东西买成功。
    简单指令集:我要去超市买东西,我怎么去到超市, 走路还是坐车或者开车,如果坐车可以分为,公交,出租,快车等等,我选择哪一个。如果开车,我有几辆车,开哪一辆等等;;到了超市,我走到货柜 ...
    07-13 10:14
  • 支持(1)  |   反对(3)  |   举报  |   回复
  • 游客:

    我发那么多,吃掉很大一部分。后边还有的也不想发了!
    算了就这样吧。
    07-13 10:15
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 懂编程的,你说的这些都懂,不懂编程的,你说再多都不会懂

    支持(1)  |   反对(0)  |   举报  |   回复

    23#

  • heqi博士 07-13 11:39

    游客:

    编程难的不是语言,是逻辑,算法还有逆向思维。if 和else有什么难以理解的。任何符号都能代替。
    其实复杂指令集和简单的指令集可以用买东西来举例:
    复杂指令集:我掏钱买东西的过程可以分解成,我要去超市买东西,我出家门,我到了超市。我拿了商品到收银台付款,我从钱包拿出钱付款,收银员找钱,我拿了东西走出超市。我回家了。东西买成功。
    简单指令集:我要去超市买东西,我怎么去到超市, 走路还是坐车或者开车,如果坐车可以分为,公交,出租,快车等等,我选择哪一个。如果开车,我有几辆车,开哪一辆等等;;到了超市,我走到货柜 ...
    07-13 10:14
  • 支持(1)  |   反对(3)  |   举报  |   回复
  • 游客:

    我发那么多,吃掉很大一部分。后边还有的也不想发了!
    算了就这样吧。
    07-13 10:15
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • Axe斧娃 编辑 :

    那太遗憾了,其实这是因为你是游客而不是注册用户,前者只能发表250个字符,但是如果你是已经注册的话,那么你就可以发布……反正就是发布很多很多字
    07-13 10:26
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 我想问我注册那么久,绑定手机、微信,怎么还是等待验证会员

    支持(0)  |   反对(0)  |   举报  |   回复

    22#

  • 游客  07-13 10:31

    游客:

    还是要大力发展精简指令集,把更多的功能移到软件面来实现,还要发展中文编程语言,中文编译系统,中文指令集,让更多人入门,发挥人多力量大的智慧优势.
    07-13 02:53
  • 支持(2)  |   反对(7)  |   举报  |   回复
  • .版本 2

    .子程序 __启动窗口_创建完毕
    .局部变量 文本, 文本型
    .局部变量 文本组, 文本型, , "0"
    .局部变量 数1, 整数型
    .局部变量 数2, 整数型

    文本 = 到文本 (读入文件 (取运行目录 () + “\文本.txt”))
    文本组 = 分割文本 (文本, “,”, )
    文本 = “”
    .如果真 (取数组成员数 (文本组) = 0)
        信息框 (“在运行目录下没有” + 引号 + “文本.txt” + 引号 + “文件!”, 0, )
        结束 ()
    .如果真结束
    .计次循环首 (取数组成员数 (文本组), 数1)
        .如果真  ...

    支持(6)  |   反对(0)  |   举报  |   回复

    20#

  • Axe斧娃编辑 07-13 10:26

    游客:

    编程难的不是语言,是逻辑,算法还有逆向思维。if 和else有什么难以理解的。任何符号都能代替。
    其实复杂指令集和简单的指令集可以用买东西来举例:
    复杂指令集:我掏钱买东西的过程可以分解成,我要去超市买东西,我出家门,我到了超市。我拿了商品到收银台付款,我从钱包拿出钱付款,收银员找钱,我拿了东西走出超市。我回家了。东西买成功。
    简单指令集:我要去超市买东西,我怎么去到超市, 走路还是坐车或者开车,如果坐车可以分为,公交,出租,快车等等,我选择哪一个。如果开车,我有几辆车,开哪一辆等等;;到了超市,我走到货柜 ...
    07-13 10:14
  • 支持(1)  |   反对(3)  |   举报  |   回复
  • 游客:

    我发那么多,吃掉很大一部分。后边还有的也不想发了!
    算了就这样吧。
    07-13 10:15
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 那太遗憾了,其实这是因为你是游客而不是注册用户,前者只能发表250个字符,但是如果你是已经注册的话,那么你就可以发布……反正就是发布很多很多字

    支持(0)  |   反对(0)  |   举报  |   回复

    19#

  • 游客  07-13 10:15

    游客:

    编程难的不是语言,是逻辑,算法还有逆向思维。if 和else有什么难以理解的。任何符号都能代替。
    其实复杂指令集和简单的指令集可以用买东西来举例:
    复杂指令集:我掏钱买东西的过程可以分解成,我要去超市买东西,我出家门,我到了超市。我拿了商品到收银台付款,我从钱包拿出钱付款,收银员找钱,我拿了东西走出超市。我回家了。东西买成功。
    简单指令集:我要去超市买东西,我怎么去到超市, 走路还是坐车或者开车,如果坐车可以分为,公交,出租,快车等等,我选择哪一个。如果开车,我有几辆车,开哪一辆等等;;到了超市,我走到货柜 ...
    07-13 10:14
  • 支持(1)  |   反对(3)  |   举报  |   回复
  • 我发那么多,吃掉很大一部分。后边还有的也不想发了!
    算了就这样吧。

    支持(0)  |   反对(0)  |   举报  |   回复

    18#

  • 游客  07-13 10:14

    编程难的不是语言,是逻辑,算法还有逆向思维。if 和else有什么难以理解的。任何符号都能代替。
    其实复杂指令集和简单的指令集可以用买东西来举例:
    复杂指令集:我掏钱买东西的过程可以分解成,我要去超市买东西,我出家门,我到了超市。我拿了商品到收银台付款,我从钱包拿出钱付款,收银员找钱,我拿了东西走出超市。我回家了。东西买成功。
    简单指令集:我要去超市买东西,我怎么去到超市, 走路还是坐车或者开车,如果坐车可以分为,公交,出租,快车等等,我选择哪一个。如果开车,我有几辆车,开哪一辆等等;;到了超市,我走到货柜 ...

    支持(1)  |   反对(3)  |   举报  |   回复

    17#

  • heqi博士 07-13 10:13

    游客:

    还是要大力发展精简指令集,把更多的功能移到软件面来实现,还要发展中文编程语言,中文编译系统,中文指令集,让更多人入门,发挥人多力量大的智慧优势.
    07-13 02:53
  • 支持(2)  |   反对(7)  |   举报  |   回复
  • 没文化就不要出来丢人现眼

    支持(1)  |   反对(0)  |   举报  |   回复

    16#

  • 游客  07-13 09:45

    游客:

    还是要大力发展精简指令集,把更多的功能移到软件面来实现,还要发展中文编程语言,中文编译系统,中文指令集,让更多人入门,发挥人多力量大的智慧优势.
    07-13 02:53
  • 支持(2)  |   反对(7)  |   举报  |   回复
  • 一看就是没学过编程的小白,编程的真正难点不再于英文(而且那些也不是英文,含义跟原英文单词根本不同,有些压根没有原本的单词)。那些代码含义一般人花点时间背背也就能记住了,编程的难点在于思维模式(逻辑思维在编程中相当重要,一般数学好的人转编程也相对容易) 耐心(程序中哪怕一个简单的功能可能都要涉及几百甚至上千行代码)。老实说中文编程意义不大(其实这类软件早就有了),反而会使编程变得更加繁琐,该学不会的人还是学不会,一个连几百个代码都懒得背的人你能指望他去系统学习编程,可能吗? ...

    支持(7)  |   反对(1)  |   举报  |   回复

    15#

查看全部评论(33)

回复