编译原理第四章 程序语言的设计

编译原理第四章 程序语言的设计

程序语言的定义

程序设计语言是用来描述计算机所执行的算法的形式表示;

语言定义是语言实现的基础:

从语言用户角度看
语言初等成分的实际含义是什么?
如何有意义地使用它们?
怎样以有意义的方式组合它们?

从编译程序设计者角度看
哪些构造允许出现
即使一时不能看出某种构造的实际应用,或者判断实现该结构会导致严重的困难,但仍必须严格根据语言的定义实现它

语言=语法+语义
语法:用以构造程序及其成分的一组规则的集合
语义:用以规定语法正确的程序或其成分的含义的一组规则的集合

语法

程序本质上是一定字符集上的字符串。
语法:一组规则,用它可以形成和产生一个合式(well-formed)的程序。

词法规则:单词符号的形成规则。
单词符号是语言中具有独立意义的最基本结构。一般包括:常数、标识符、基本字、算符、界符等。
描述工具:有限自动机
语法规则:语法单位的形成规则。
语法单位通常包括:表达式、语句、分程序、过程、函数、程序等;
描述工具:上下文无关文法

词法规则和语法规则定义了程序的形式结构,判断输入串是否构成合式程序的依据。
语法单位比单词符号具有更丰富的意义。如何定义语法单位的含义属于语言的语义问题。

语义

语义:一组规则,用它可以定义一个程序的意义。
描述方法:
自然语言描述:隐藏错误、二义性和不完整性
形式描述:
操作语义(PL/1)
指称语义(ADA)
代数语义(PASCAL)

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

程序语言的基本功能:描述数据和对数据的运算。
所谓程序,本质上说是描述一定数据的处理过程。

GAM抽象机

由存储器,控制器,处理器,指令指针 ip组成

发布了81 篇原创文章 · 获赞 27 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43309286/article/details/104676939