×

计算机语言翻译

计算机语言翻译(为什么计算机能够识别计算编程语言,底层物理原理及逻辑是什么)

jnlyseo998998 jnlyseo998998 发表于2022-10-15 05:40:01 浏览64 评论0

抢沙发发表评论

本文目录

为什么计算机能够识别计算编程语言,底层物理原理及逻辑是什么

计算机能够直接识别的只有机器语言,也就是用二进制编码的0和1表示的二进制语言。其中机器语言的基本单位是指令,指令由操作码和数据两部分组成,也就是说,计算机指令是一系列0和1的组合。而这些0和1的实质,是与之相对应的逻辑电路的两个状态,即低电平和高电平,这两个状态是数字逻辑电路的状态,也就是说,二进制的物理基础是数字逻辑电路 。数字逻辑电路有输入和输出两个部分,每个部分都有用0和1表示的两个状态,简单来讲,输入端的状态决定了输出端的状态,计算机的核心CPU以及内存都是数字逻辑电路。上面说到 ,计算机语言的基本单位是计算机指令,每条计算机指令包括操作数和操作码两部分,操作码告诉计算机该干什么,操作数告诉计算机对谁做,而这些指令都是用0和1表示的,并且存储在存储器中。当存储器中的指令通过CPU中的控制器取出并送到CPU中的运算器时,实际上就是把一组由0和1组成的输入信号送到了数字逻辑电路的输入端,也就是给数字逻辑电路的输入端送入了不同的电平,数字逻辑电路就回按照自己的逻辑功能做出处理并体现在输出端,这样计算机就按照由一系列指令组成的程序连续工作了。计算机编程语言是一个笼统的概念,按照计算机语言的发展历史,其实经历了机器语言,汇编语言,高级语言几个阶段,其中机器语言是计算机、也就是CPU能够识别的唯一语言,但是,这种由0和1组成的语言只有很少的计算机专业人士才能应用,后来发展出来汇编语言,就是用英语单词或者缩写帮助记忆机器语言的语言,这些缩写称之为助记符。这种靠助记符表示的语言,计算机并不能识别,必须先编好另一个程序,通过这个程序把汇编语言程序转化为机器语言程序,计算机才能识别并执行。汇编语言虽然解决了机器语言难以记忆的问题,但仍然具有高度的专业性,与CPU结构和指令高度相关,对普通人而言依然不太好用,后来就又发展出来所谓的高级语言,高级语言脱离了具体的CPU结构,其语言语法更接近自然语言,但是,用高级语言编写的程序,计算机是不能识别的,必须通过所谓的解释程序或编译程序处理后计算机才能识别和执行。

计算机内部使用的语言是什么

以我的亲身经历来来趣答这个问题

计算机内部使用什么语言,凡是学计算机的都知道它叫做机器语言,就是二进制代码,就是二进制的机器指令和二进制的地址。

最早的计算机就是利用电的一开一关这两种状态来进行计数的。我参加工作到七机部,就是现在的航天总公司。用的计算机叫104。它的电子元件就是电子管。电子管有20公分左右长,直径有5公分左右。每一个电子管就是计算机的1位,bit。一个104机房就像现在可以坐500人左右的一个大厅。它只有31条指令,我们全部用16进制来编写程序,0~9之后a表示10,b表示11.....直至f表示15。那时候上机分两个阶段,一个是调程序,另一个是运行程序。调程序排机时都是按秒算的,10秒,20秒,30秒,40秒,很少有一分钟的。通过了的程序要运行,就要很长的时间。因为那时候的机器速度很低,算一个弹道,需要一个晚上甚至一两天。

我们国家的第1个汇编程序叫做MPL(马坡岭),是我们当时在湖南长沙的马坡岭做出来的。这个汇编语言做出来之后,紧接着也在马坡岭组织了全国范围的FORTRAN编译系统的会战,参加这个会战的除了国防科大(长沙工学院)之外,还有当时的北京大学中山大学等很多所高等学校。

汇编语言其实也是机器指令语言。只不过采用的都是助忆符,就是帮助记忆的符号。如:加号就用add减号就一个sub....严格地说,它还是机器语言。

现在,世界上最基础的那些程序还是用机器语言或者说用汇编语言写的,因为用这种语言写的程序是效率最高的。一些操作系统,如手机操操作系统或者武器运行操作系统,它的最核心的部分还是用汇编语言写的。只不过它被包含在核心的内层,外层编程人员是感觉不到的。

什么是计算机语言或者说什么是编程语言

什么是计算机语言?

通常,我们使用英语,印地语等语言来进行两个人之间的交流。这意味着当我们想要在两个人之间进行交流时,我们需要一种语言来表达他们的感受。同样,当我们想要在用户和计算机之间或两台或多台计算机之间进行通信时,我们需要一种语言,用户可以通过该语言向计算机提供信息,反之亦然。当用户想要向计算机发出任何指令时,用户需要特定的语言,并且该语言被称为计算机语言。

用户使用程序与计算机交互,程序使用C,C ++,Java等计算机编程语言创建,

计算机语言是用户通过编写程序指令与计算机通信的语言。

每种计算机编程语言都包含一组预定义的单词和一组用于创建程序指令的规则(语法)。

计算机语言分类

多年来,计算机语言已经从低级语言演变为高级语言。在计算机的早期阶段,只使用二进制语言来编写程序。计算机语言分类如下......

低级语言(机器语言)

低级语言是计算机可以理解的唯一语言。二进制语言是低级语言的一个例子。低级语言也称为机器语言。二进制语言只包含两个符号1和0.二进制语言的所有指令都以二进制数1和0的形式写入。计算机可以直接理解二进制语言。机器语言也称为机器代码。

由于CPU直接理解二进制语言指令,因此不需要任何翻译。CPU直接开始执行二进制语言指令,并且执行指令所需的时间非常少,因为它不需要任何转换。低级语言被认为是第一代语言(1GL)。

好处

  • 计算机可以很容易地理解低级语言。
  • 低级语言指令直接执行,无需任何翻译。
  • 低级语言指令只需要很少的时间来执行。

缺点

  • 低级语言指令很难使用和理解。
  • 低级语言指令取决于机器,这意味着为特定机器编写的程序不会在其他机器上执行。
  • 在低级语言中,错误的可能性更大,很难找到错误,调试和修改。

中级语言(汇编语言)

中级语言是一种计算机语言,其中使用诸如字母,数字和特殊字符之类的符号来创建指令。汇编语言是中级语言的一个例子。在汇编语言中,我们使用称为助记符的预定义词。低级语言中的二进制代码指令被中级语言中的助记符和操作数替换。但计算机无法理解助记符,所以我们使用一个名为Assembler的翻译器将助记符翻译成二进制语言。汇编程序是一个翻译程序,它将汇编代码作为输入,并生成机器代码作为输出。这意味着,计算机无法理解中级语言,因此需要将其翻译成低级语言,以使计算机能够理解。汇编程序用于将中级语言翻译成低级语言。

好处

  • 使用中级语言编写指令比使用低级语言编写指令更容易。
  • 与低级语言相比,中级语言更具可读性。
  • 易于理解,发现错误并进行修改。

缺点

  • 中级语言特定于特定的机器架构,这意味着它取决于机器。
  • 中级语言需要翻译成低级语言。
  • 与低级语言相比,中级语言执行速度较慢。

高级语言

高级语言是用户可以理解的计算机语言。高级语言与人类语言非常相似,并且具有一组语法规则,用于更轻松地制作指令。每种高级语言都有一组称为关键字的预定义词和一组称为语法的规则来创建指令。用户可以更容易理解高级语言,但计算机无法理解。需要将高级语言转换为低级语言,以使计算机能够理解它。我们使用编译器或解释器将高级语言转换为低级语言。

COBOL,FORTRAN,BASIC,C,C ++,JAVA等语言就是高级语言的例子。所有这些编程语言都使用人类可理解的语言(如英语)来编写程序指令。这些指令由编译器转换为低级语言,以便计算机可以理解。

好处

  • 用高级语言编写指令更容易。
  • 高级语言更易读和易懂。
  • 使用高级语言创建的程序在不同的机器上运行,几乎没有变化或没有变化。
  • 易于理解,创建程序,查找错误和修改。

缺点

  • 高级语言需要翻译成低级语言。
  • 与中级和低级语言相比,高级语言执行速度较慢。

了解计算机语言

下图提供了与计算机语言相关的几个关键点。

从上图中,我们可以观察到以下要点......

  • C,C ++,Java等编程语言是用高级语言编写的,对开发人员来说更为舒适。
  • 高级语言更接近用户。
  • 低级语言更接近计算机。计算机硬件只能理解低级语言(机器语言)。
  • 用高级语言编写的程序需要转换为低级语言,以便在用户和计算机之间进行通信。
  • 中级语言并不接近用户和计算机。我们可以将它视为高级语言和低级语言的组合。

C语言作为计算机编程语言,和我们常说的汉语,英语等人类语言有什么区别吗

谢邀。

程序员编程时,C语言的确可以看做一门“外语”——一门我们人类与计算机交流的语言,编程就是将人类的意图通过这门“外语”翻译给计算机,计算机理解我们的意图后,就知道该做什么了。

不过,编程语言这门“外语”与我们人类之间交流的语言(汉语,英语等)还是有一些不同的,这里将尝试说说我认为的二者的区别。

自然语言和形式语言

在开始看 C 语言代码之前,我们先来说说“自然语言”和“形式语言”。“自然语言”就是我们人类说的语言,比如汉语,英语,日语,法语等等,自然语言并不算是人为设计的,更多的是在人类进化过程中逐步形成的。

“形式语言”则是人们为了一些特定的应用人为设计的,一般包括符号和结构的设计,比如数学算式的数字和运算符号,化学家的化学式等等。

当我们阅读一条语句时,不论它是“自然语言”还是“形式语言”,不仅要理解符号的意义,也要读懂结构的含义。例如“我想打你”这句话,不仅要知道每个字的意思,还要知道这句话的结构,“我”和“你”的位置不同,表达的意思是截然相反的。

如今,自然语言也有语言学家研究,并且加了一些加强规则,比如主谓宾的语法等。但是自然语言的规则严格性,远远没有形式语言那么苛刻。

相对于“自然语言”,“形式语言”对规则要严格的多,我们说病句,例如“我跑得快比你”和“我比你跑得快”这两句话,一般人也能懂。但是形式语言就不可以了,无论是符号错误,还是结构错误,都不能正确表示原本期望表达的含义。

构成算术式:1 + 8 = 9

构成水分子化学符号:H2O

存在非法符号:1 + 8@ = 9

脚标不对:HO2

C 语言程序

编程语言自然是属于形式语言,我们来看看 C 语言版本的 hello world:

虽然这只是非常简单的程序,但是却能说明 C 语言的很多规则。

使用printf函数之前,要首先包含它的头文件stdio.h。包含头文件要使用#+include符号,而且这条语句要独自占一行。

main是C语言默认的入口,程序从入口开始执行,它是int类型的,int 要与 main 用空格,tab或换行符隔开,函数要有括号和大括号,函数内的语句要用分号结尾。另外,上面的代码中有很多缩进,不过这是可选的,恰当的缩进只是为了我们人类看着方便而已。

以上都是 C 这门形式语言定义的符号和结构,要严格遵守规则,才能写出正确的 C 语言代码。如今,其他编程语言也是类似的,都必须严格设计好的规则进行。

总结

计算机编程语言和我们人类使用的自然语言有很多共同之处,但是也有很多不一样的地方。

歧义性

自然语言充满歧义,人们通过上下文的线索和其它一些信息来解决这个问题。但是编程语言就不能有这样的歧义,计算机不会自己主动理解人类的意图。

冗余性

为了消除歧义减少误解,自然语言引入了相当多的冗余,比如很多语气词感叹词。结果是自然语言经常变得啰里啰嗦,而形式语言则更加紧凑,极少有冗余。

与字面意思的一致性

自然语言充斥着成语和隐喻,我在不同场合说的相同一句话,意义却可能不同。而编程语言就永远都是一个意思,语义不会随着场合,时间变化。

说自然语言长大的人,往往有一个适应编程员(形式语言)的困难过程,这也往往是入门编程的一个小难点。

欢迎在评论区一起讨论,质疑。文章都是手打原创,每天最浅显的介绍C语言、linux等嵌入式开发,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章哦。