现在的位置: 首页 > 编程语言 > 正文

程序语言是什么?高级语言的特性有哪些

2020年02月24日 编程语言 ⁄ 共 2642字 ⁄ 字号 评论关闭

  一、程序语言的定义

  编译程序要对程序进行正确的翻译,首先要对程序设计语言本身进行精确地定义和描述。对语言的描述是从三个方面来考虑(精简地说):

  语法:是对语言结构的定义(什么样的符号序列是合法的);定义语言的词法和语法的形式规则;

  语义:是描述语言的含义;定义语言的单词符号和语法单位的意义;

  语用:是从使用的角度去描述语言。定义程序设计技术和语言成分的使用方法,它使语言的基本概念与语言的外界(如数学概念或计算机的对象和操作)联系起来

  比如说赋值语句 s = 2* 3.1416* r* (r+ h)的非形式化的描述如下:

  语法:赋值语句由一个变量、后随赋值号“=”、后跟一个表达式构成;

  语义:首先计算语句右部表达式的值,然后把所得结果送入左部变量中;

  语用:赋值语句可用来计算和保存表达式的值。

  程序设计语言的定义是语言编译程序实现的基础,是语言使用者的用户手册;程序语言是符号语言,即一个记号系统,它主要有语法、语义和语用等三方面定义。

  1.语法

  任何语言程序都可看成是一定字符集(字母表)上的一字符串(有限序列)。

  语言的语法规则定义了程序的形式结构,语法规则是指这样的一组规则,用它可以形成和产生一个格式(合法)的程序。这些规则的一部分称为词法规则,另一部分称为语法规则(或产生规则)。

  字母表是一个有限的字符集,字符集中的字符是语言程序中可能出现的字符,它们是语言程序单词的组成部分。

  词法规则定义了语言程序中单词符号的形成规则。即什么样的字符串是一个合法的单词。如标识符、数值常量、运算符等单词的构成规则。描述词法规则和进行词法分析的有效工具是正规式、正规文法和有限状态自动机理论。

  语法规则定义了语言程序中语法单位的形成规则。一般语言的语法单位有表达式、语句、分程序、函数、过程和程序等。描述语法规则和进行语法分析的有效工具是`上下文无关文法。

  语法规则和词法规则定义了程序的形式结构,定义语法单位的意义属于语义问题。

  2.语义

  对于一个语言来说,不仅要给出它的词法、语法规则,而且要定义它的单词符号和语法单位的意义。这就是语义问题。离开语义,语言只不过是一堆符号的集合。

  语言的语义是指这样的一组规则,使用它可以定义一个程序的意义。这些规则称为语义规则。

  程序语言的每个组成成分(语法范畴)均有抽象逻辑和计算机实现两方面的意义。前者描述在数学上的逻辑意义,后者注重其在计算机内的表示和实现的可能性与效率。

  语义的描述方法有两种。一种是自然语言描述,但是其存在隐藏错误、二义性和不完整性的缺陷。另外一种是形式描述。

  形式语义学有操作语义学、代数语义学、公理语义学、指称语义学等许多分支,它们分别用不同的形式系统来描述语义问题,但是目前还没有一种公认的形式系统,因此也还没有实用的语义自动分析方法。

  目前编译程序中常用的语义分析方法是一种基于属性文法的语法制导翻译。

  即在语法分析的同时对其中识别出的语法单位进行语义的分析与翻译工作;在描述文法的同时为定义的语法范畴加上它们的属性计算规则,属性可以是语法范畴的类型、地址、取值、执行动作等信息。

  不过在本科生阶段,编译原理不会过多涉及到形式语义学,但是属性文法是需要学习的。其他内容,研究生阶段可能会需要学习。

  二、高级语言的一般特性

  1、高级语言的分类

  高级语言可分为以下几类:

  一、强制式语言(Imperative Language)也称过程式语言,特点是命令驱动,面向语句。如C、pascal属于这类语言。

  二、应用式语言(Applicative Language)也称函数式 注重程序所表示的功能,程序的开发过程是从已有的函数出发构造更复杂的函数,程序的执行即函数的嵌套或递归调用。如LISP、 ML属于这类语言。

  三、基于规则的语言(Rule-based Language)也称逻辑程序设计语言,程序的执行过程是检查一定的条件(谓词逻辑表达式),条件满足则执行适当的动作。如Prolog属于这类语言。

  四、面向对象语言(Object-Oriented Language)特点是支持抽象、封装性、继承性、多态性和动态绑定。程序设计的方法是将数据和操作封装在一起构成对象,对简单对象进行扩充、继承从而构造更复杂的对象,通过向对象发送消息获得动作的执行。如C++、Java、C#属于这类语言。

  2、数据类型与操作

  一个数据类型通常包括以下三个要素:

  用于区别类型的数据对象的属性;

  这种类型的数据对象可以具有的值;

  可以作用于类型的数据对象的操作。

  程序设计语言从初始到复杂:

  初等数据类型

  数值数据、逻辑数据(布尔类型)、字符数据、指针类型。

  数据结构

  数组:由同一类型数据所组成的 n 维矩形结构。可分为确定数组和可变数组;数组的内情向量包括:首地址、维数、各维的上下限及元素类型。

  记录:由已知类型(可以不同)的数据组合起来的结构。记录中每个域的 OFFSET 是它相对于记录首地址的地址位移量。

  字符串、表格、栈和队列:数组或记录组合的访问受限的复合结构。

  关于标识符和名字:

  虽然名字和标识符在形式上往往难于区分,但这两个概念是有本质区别的。例如,对于‘PI’,我们有时说它是一个名字,有时又说它是一个标识符。标识符是一个没有意义的字符序列,但名字却有明确的意义和属性。作为标识符的PI,无非是两个字母的并置,但作为名字的PI,常常被用来代表圆周率。在髙级语言中常用“局部名”、“全局名”之称,但 少有“局部标识符”、“全局标识符”之分。

  3、语句与控制结构

  除了提供数据的表示、构造及运算机制外,程序设计语言还有可执行的语句。控制结构定义了语句的执行次序,语言所提供的控制结构的集合对可读和可维护的软件的编写有很大影响。

  (1)表达式

  表达式是由运算量和运算符组成的。运算量亦称操作数,可以是数据引用或函数调用;运算符有算术运算符、逻辑运算符、关系运算符等,运算符之间有规定的优先级和结合律。

  (2)语句

  1、赋值句:变量名 = 表达式。

  2、控制语句:无条件转移语句、条件语句、循环语句、过程调用语句、返回语句。

  3、说明语句:用于定义名字的性质。

  4、简单句和复合句:语句1;语句2;语句3;……

  以上就是有关程序语言的定义以及特性的相关介绍,无论是初入程序还是程序的专家,都可以通过学步园进行更深入的了解程序语言的知识。

抱歉!评论已关闭.