专栏首页企鹅号快讯高级语言,高级在哪?

高级语言,高级在哪?

高级语言、低级语言,都是对计算机而言。人类语言不存在这种说法。

在上篇文章(一分钟认识你的电脑)中,柚子向大家介绍了内存。

内存的最小单位是bit,二进制表示,并且大量、有序的排在一起。每连续8个bit,构成一个字节byte)。

内存是有序的,所以内存也就有了地址。寻址原理在计算机逻辑结构这门大学课程中有详细的介绍,柚子不再赘述。

对于编程,有些地址知识是必不可少的。

地址用十六进制表示,比如0x010001FF。十六进制的取值是0~9、A、B、C、D、E、F。0x是代表十六进制,010001FF是具体的地址。

每个地址,对应的是一个字节,也就是寻址单位是字节。

嵌入式开发中,经常会遇到对某一位(bit)操作的问题。基本方法就是先寻址到字节,然后按位操作。在柚子今后的课程中,会有详细介绍。

普及地址的知识给小伙伴们热热身,然后今天我们要了解编程语言

在内存和地址的知识中,柚子都提及了一个词,“进制”。计算机真正能识别的语言是二进制语言

什么是二进制?

十进制的取值是0~9,逢十进一。

二进制的取值是0~1,逢二进一。

柚子是学习过计算机基本原理后对进制有了全新的认识。生活中使用的十进制,不过是一种习惯,改成n进制也是可以的。

为什么是二进制?

我们看到的计算机,是看得见,摸得着的机器。计算机的核心设备,CPU、内存等,也都是实实在在的电子元件。为什么它就能读懂语言了呢?实际上,计算机语言是在对电子元件进行操作

让我们一起化繁为简,揭开计算机语言的神秘面纱。

电子元件由晶体管构成,基本元素是硅、锗。美国“硅谷”因此得名。

以目前最新的技术,晶体管最大切换频率达100GHz、最小单元可以做到1nm。2016年碳晶体管成功研制,比硅晶体管拥有更好的性能。

小伙伴们是不是都联想到了CPU的运算速度和内存的存储量?原因从这里来。

晶体管有个特性,开关特性,通俗的讲就是有电和没电,专业的讲是导通和截止。导通是1、截止是0。所以,计算机用晶体管的导通和截止当做自己的1、0语言

柚子这里讲的是现代计算机,电子科学技术的发展,一直推动着计算机的进步。世界上最早的计算机,并不是使用晶体管,而是使用电子管。电子管和晶体管的原理不同,但是都是实现为二进制。

计算机只能识别二进制语言,科学家们通过对电子元件的组合设计,就有了编码

每一个编码,都表示一次电子元件的状态,这个二进制编码,被命名为机器码

最初的程序员编程是一项“体力活”。每次编程,都要拿着码表扣0101。这么低级,只能叫它低级语言。

在01车轮的不断碾压下,程序员终于不堪重负,决定对机器码再进行编码。

假设,用X标记0101000100110101。通过汇编器(翻译作用),以后写个X,就完成这个动作,方便很多,它叫做汇编语言

汇编语言用标记的方式改变了01编码,但是它实际上还是直接对硬件进行操作,复杂且可读性差。汇编语言依然是低级语言。

虽然是低级语言,汇编语言却不是一无是处。汇编语言直接对硬件进行操作,特别适合编写硬件操作部分的代码,相比高级语言,有更高的执行效率。

再后来,程序员们就发明了更符合人类语言习惯,并且脱离了直接对硬件操作的语言,就是所谓的高级语言

Basic、Pascal、C/C++、java、python、C#等,都是高级语言。我们今后的课程,先从C语言开始。

高级语言逻辑性更强易学习易掌握

高级语言通过编译器(翻译功能)将程序编译成机器码。

现在比较主流的编译器是微软公司出品的Visual Studio系列,柚子从大学开始一直用这个系列,现在用的是Visual Studio2013。就是下面这个小骚紫。

小伙伴们有没有觉得涨姿势呢?

本文来自企鹅号 - 全球大搜罗媒体

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何掌握程序语言

    学习程序语言是每个程序员的必经之路。可是这个世界上有太多的程序语言,每一种都号称具有最新的“特性”。所以程序员的苦恼就在于总是需要学习各种稀奇古怪的语言,而且必...

    企鹅号小编
  • ESR:程序语言设计的要诣和真谛

    为什么一些语言会成功,另一些语言会失败。 -- Eric Raymond 当你真正掌握了整体化的工程设计思维时,你就会发现高屋建瓴的工程设计已经远远超越了技术优...

    企鹅号小编
  • C语言到底有多牛!你知道多吗?

    有人说C语言是世界上最牛逼的语言,因为操作系统就是用C语言编写的,学好了C才能更好的学习其他编程语言。为此,有人分享了下面一段代码,说是很牛逼的c语言代码,看得...

    企鹅号小编
  • 如何用三个月搞定C语言

    C语言上个世纪七十年代诞生至今,已经度过了40多个春秋,在此期间经历多次的版本的更迭,目前市面上绝大部分语言的底层实现都是基于C语言,随着C语言之父的逝去,C语...

    程序员互动联盟
  • 硅谷的由来—电子计算机(三)

    为了降低成本和大小,同时提高可靠性和速度,我们需要一种新的电子开关。1947 年,贝尔实验室科学家 \N John Bardeen,Walter Brattai...

    硬核编程
  • AI编程语言图鉴

    当前最炙手可热的领域非“人工智能”(Artificial Intelligence)莫属。其实,“人工智能”的火热并非一蹴而就,早在1956年“人工智能”概念就...

    AI科技大本营
  • Java集合之LinkedHashSet源码分析

    LinkedHashSet与HashSet类似, 不同的是LinkedHashSet底层使用LinkedHashMap维护元素插入的顺序.

    烟草的香味
  • 一个模型翻译103 种语言!谷歌500亿参数M4模型突破多语言神经翻译极限

    在过去的几年里,机器翻译(MT)系统的质量有了巨大的进步,神经机器翻译(NMT)的发展打破了世界各地的语言障碍。

    新智元
  • ​Golang,一门独立门户却又好好专注于解决过程式和纯粹app的语言

    以前,我总谈到编程是从xaas开始,到langsys到 domainstack到app的四栈叠加过程,语言因为平台也有本质上的二种:toolchain式和app...

    minlearn
  • 关于跨语种语言模型的讨论

    最近,一个预先训练的模型被证明可以改善下游问题。Lample和Conneau提出了两个新的培训目标来培训跨语言语言模型(XLM)。这种方法可以实现跨语言自然语言...

    AiTechYun

扫码关注云+社区

领取腾讯云代金券