【笔记】编译原理——第二章 高级语言及其语法描述

常用的高级语言

高级语言 FORTRAN COBOL PASCAL ADA LISP PROLOG ALGOL C/C++ Java
用途 数值计算 事务处理 结构程序设计 大型程序、嵌入式实时系统 函数式程序设计语言 逻辑程序设计 算法语言 系统程序设计 Internet程序设计

高级语言的优点(与机器语言或汇编语言比较)

①较接近于数学语言和工程语言,比较直观、自然和易于理解;
②便于验证其正确性,易于改错;
③编写效率高;
④易于移植

2.1 程序语言的定义

由语法和语义定义:

语法:一组规则,定义了程序的形式结构
语义:一组规则,定义了程序的意义
 

程序本质上是一定字符集上的字符串。

语法:一组规则(词法规则+语法规则),用它可以形成和产生一个合式(well-formed)的程序。定义了程序的形式结构。
词法规则单词符号的形成规则。单词符号是语言中具有独立意义的最基本结构。一般包括:常数、标识符、关键字、运算符、界符等
描述工具:正规式有限自动机

语法规则语法单位的形成规则。语法单位通常包括:表达式、语句、分程序、过程、函数、程序等;
描述工具:上下文无关文法

定义语法单位的意义属于语义问题。

语义:一组规则,用它可以定义程序的意义

程序语言的基本功能和层次结构

基本功能:描述数据和对数据的运算

层次结构:

程序语言每个组成成分的逻辑和实现意义 

从数学上考虑时,我们注重它的逻辑意义
从计算机角度来看时,我们注重它在机内的表示和实现的可能性与效率

2.2 高级语言的一般特性 

1.高级语言的分类 

强制式语言(Imperative Languge)也称过程式语言:命令驱动,面向语句 【FORTRAN、C、Pascal,Ada 】
应用式语言(Applicative Language)也称函数式语言:注重程序所表示的功能,而不是一个语句接一个语句地执行 【LISP、ML】 
基于规则的语言(Rule-based Language)也称逻辑式语言:检查一定的条件,当它满足值,则执行适当的动作 【Prolog】
面向对象语言(Object-Oriented Language):封装性、继承性和多态性 【Smalltalk,C++,Java 】

2.程序结构(介绍两种)

FORTRAN

特点

一个程序由一个主程序段若干辅程序段组成。
辅程序段可以是子程序、函数段或数据块
每个程序段有一系列的说明语句和执行语句组成。各段可以独立编译。 
模块结构,没有嵌套递归
各程序段中的名字相互独立,同一个标识符在不同的程序段中代表不同的名字。

program …   //主程序
 	…
end

subroutine …  //辅程序1 
 	…
end

function …   //辅程序2 
 	…
end
program main   //以program开头,后面接自己定义的程序的名字

    implicit none  //关闭默认类型,所有变量都要事先声明。(默认i~n都为int类型)

    write(*,*) "hello,world!"  //write方法,第一个*号代表输出位置,默认是6,即屏幕。
                               //第二个*号代表输出格式化设定。
    pause

end   //以end结尾

更多关于FORTRAN的详细的内容请看:FORTRAN入门

PASCAL

特点

PASCAL程序本身可以看成是一个操作系统所调用的过程,过程可以嵌套和递归

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值