编译原理_第1部分_高级语言及其语法描述(2)

前言

        高级语言及其语法描述第2部分:数据类型与操作、数据结构、语句等知识

数据类型与操作

        几乎所有高级语言都有的数据类型与操作

初等数据类型

标识符和名字

        标识符是字母开头,由字母数字组成的字符串

        ---程序是一个大字符串,由空格或算符断开成表达式,表达式由标识符和算符组成

        两者区别:标识符没有意义,名字有意义和属性.

举例:Jordan是标识符,当他与人绑定时表示篮球运动员,与国家绑定时代表国家

 名字的内容

        名字包含值和属性.

        ---在机器层面,没有名字,数据用地址和值表示---地址用于传递数据,值说明数据

        ---在高级语言中,名字表示数据,含有值和属性

        名字的值和属性需要说明语句

数据结构 

数组

         注意:程序员在访问数组元素的时候,不必考虑数组元素在内存中是怎么存放的---通过下标就可以访问.程序员依赖已存在的逻辑,而具体实现是由写编译器的人完成.

数组地址的访问

        和C语言中二维数组的访问方式相同

数组元素地址计算的推导

        更一般的形式表达

 内情向量

结构(记录)

        ---C语言中叫结构,Pascal语言中叫记录

        定义:逻辑上说,记录(结构)由已知类型的数据组合在一起的一种结构

        访问,存储.域的地址计算如下图

字符串、表格和栈

抽象数据类型

        三要素:集合,运算,封装

语句与控制结构

表达式

算符的优先次序

 

语句

赋值语句:左值和右值

左值代表数据地址,右值代表数据的值---这点和汇编语言(机器层面)保持了一致.

思考题

        答案:C          //有C语言基础即能得出答案.因为只有a+5是只有值,不能取地址---用左值表示.

        此外,E选项看起来有点像答案,但分析后*p可以出现在"="的左边或右边,所以既有左值也有右值

控制语句

        

说明语句

        定义名字

简单句和复合句

小结

       编译原理讲的是如何实现逻辑.

        需求的实现依靠程序模型通过调用逻辑(函数)完成.逻辑依赖于底层实现.

        语言的语法是已被编译器实现的逻辑.

        可以自定义逻辑,举例:操作系统中的信号量,Qt中的信号与槽,他们由写框架的程序员在底层实现,被编写应用的程序员所使用.

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重庆彭枫

你的鼓励是我创作的动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值