文档首页> 常见问题> 计算机语言有哪些类型

计算机语言有哪些类型

发布时间:2023-07-05 20:15       

计算机语言类型有:1、高级语言和低级语言;2、动态类型和静态类型;3、强制类型与弱类型;4、编译型解释型半编译半解释;5、面向对象型和面向过程型;6、区分编译型和解释型。

计算机语言有哪些类型

计算机语言三大类(按层次分)

与硬件的相关度逐步下降

计算机语言有很多种类;根据功能和实现方式的不同大致可分为3大类即机器语言汇编语言和高级语言。

1、机器语言,计算机不需要翻译就能直接识别的语言被称为机器语言(又被称为二进制代码语言)该语言是由二进制数0或1组成的一串指令。

2、汇编语言,汇编语言用英文字母或符号串来替代机器语言把不易理解和记忆的机器语言按照对应关系转换成汇编指令汇编语言比机器语言更加便于阅读和理解。

3、高级语言,高级语言不是一门语言而是一类语言的统称它比汇编语言更贴近于人类使用的语言易于理解、记忆和使用。由于高级语言和计算机的架构、指令集无关因此它具有良好的可移植性。高级语言应用非常广泛进行程序开发的高级语言包括C、C+、Java、VB、C#、Python、Ruby等。

常见的几种分类方法分类

1. 高级语言和低级语言

常见的低级语言有:机器码、汇编语言

高级语言常见如:c,c++,java,python,PHP,Ruby,go,kotlin,wift。

机器码,计算机能够直接识别的二级制编码,无论语言多高级都要转成二级制文件来让计算机识别运行。

汇编,用助记符Mnemonics代替机器指令的操作码,用地址符号Symbol或标号Label代替指令或操作数的地址,在不同的设备中有着不同的指令集

高级语言,为省去编程时候的不必要的操作细节,节省代码量,可读性强维护性强,更贴近人性化。

高级语言与低级语言的区别:高级语言大部分不能直接更硬件打交道,这使得相对来的程序运行速度降低,总之一句话来说那种语言更接近人性化的语言就更高级。

高级语言编译的六个过程

编译就是要把高级语言的源程序翻译成目标程序的过程。

整个过程一般可划分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段。

  • 词法分析,词法分析是第一阶段,这个阶段的任务是从左到右一个字符一个字符的读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。

  • 语法分析,语法分析的任务是在词法分析的基础上将单词程序分解成各位语法短语。

  • 语义分析,语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。

  • 中间代码生成,在进行了上述的语法分析阶段等工作之后,有的编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。中间代码生成阶段要在语法和语义分析的基础上,将源程序进一步变为一种内部表示形式,它通常易于生成、易于翻译成目标代码,不过不是所有的语言都必须经过这一步。

  • 代码优化,这一阶段的任务是对前一阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效。代码优化阶段,对前阶段生成的中间代码进行变换或改造,以便生成目标代码时更加节省时间和空间,这一工作也不是必须的。

  • 目标代码生成,这一阶段的任务是吧中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

2.动态类型和静态类型

动态性语言是指在程序运行期间才给变量指定数据的类型,常见于python和Ruby,而静态类型语言则恰好相反,在写程序代码的时候就要指定变量的类型这种语言有cc++java

3.强制类型与弱类型

我们可知C语言中一个变量只能定义为一种类型如float类型那么它就只能是float类型而不能在不发生转化的情况下赋予int类型这就是 强制类型的具体体现。

而python不是python中的变量可以任意的复制而没有类型的界限。这就是弱类型

强制类型更严谨更不容易出现错误但弱类型的语言写起来更优雅更舒畅

4. 编译型解释型半编译半解释

对于源程序编译型语言在执行程序中会将源文件一次性的转化为机器码而解释型语言是边编译边解释

编译型语言是离不开解释程序的这也导致了解释性语言对于运行时候的速度比价慢解释型语言只要有解释器移植起来比较方便而编译型语言则要对于不同的系统进行编译是的工作繁琐且在调试程序的时候比较慢

编译型语言可见于cc++等

解释型语言可见于pythonJavaScriptPerlshell等

而java是半编译半解释型的语言java会将源文件在jVM中转化为字节码即.class文件在程序运行的时候转化为二进制文件。和C#中的.net有点区别C#编译的成的.net目标代码接近与二进制文件可移植性没有java好java是“一次编译到处执行”c#是“一次编码到处编译”。

5. 面向对象型和面向过程型

面向过程是决定该怎么铺成一条路到达终点而面向对象是要用那些具有特定功能的像来做两者是不同的思想。

c++是部部分面对对象的java具有封装性是完全面对对象的c语言是面对过程的语言。

此处还有函数型

编程语言范式动态静态强弱类型的概念 - 风清扬心飘扬 - 博客园编程语言范式动态静态强弱类型的概念 在学习一门语言的时候经常会碰到几个概念比如Java是面向对象的语言C是面向过程的语言Lisp是函数式编程语言Scala是静态语言这些都是什么意思https://www.cnblogs.com/binbinbin/articles/14012424.html

6、区分编译型和解释型

1、编译程序是整体编译完了形成目标代码再一次性执行。

而解释程序是一边解释一边执行。 解释一句后就提交计算机执行一句并不形成目标程序。就像外语翻译中的“口译”一样不产生翻译文本。

2、编译是除了第一次编译之后都是目标代码+机器执行=结果

而解释程序始终是代码+解释程序+机器执行=结果

详细地说编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快。

而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的。这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)

7.按层次分的原因

1.中间代码

中间代码生成是产生中间代码的过程。所谓“中间代码”是一种结构简单、含义明确的记号系统这种记号系统复杂性介于源程序语言和机器语言之间容易将它翻译成目标代码。另外还可以在中间代码一级进行与机器无关的优化。

汇编代码是目标代码中间代码理论上是机器无关的。

编译原理中知识三元式、四元式、逆波兰式等等表示中间代码。

2.目标代码

目标代码;object code指计算机科学中编译器或汇编器处理源代码后所生成的代码它一般由机器代码或接近于机器语言的代码组成。目标文件;object file即存放目标代码的计算机文件它常被称作二进制文件;binaries。目标文件包含着机器代码;可直接被计算机中央处理器执行以及代码在运行时使用的数据如重定位信息如用于链接或调试的程序符号;变量和函数的名字此外还包括其他调试信息。目标文件是从源代码文件产生程序文件这一过程的中间产物链接器正是通过把目标文件链接在一起来生成可执行文件或库文件。目标文件中唯一的要素是机器代码例如用于嵌入式系统的目标文件可能仅仅含有机器代码。

目标代码通常采用三种形式机器语言汇编语言待装配机器语言模块。

生成目标代码时应着重考虑的问题

(1)如何使生成的目标代码较短

(2)如何充分利用寄存器以减少访问内存次数

(3)如何充分利用指仅系统的的特点。

汇编语言中经常直接用寄存器AX、指令寄存器IR等等不同的寄存器参数什么的都不同所以汇编语言偏硬件语言。