HNU_Compiler Principles_2

程序语言基础

6.1程序结构:

  程序由变量和函数组成,由文件构成;

  文件由句子构成,

  句子分为定义和操作语句,连续同级句子构成一个块

  块可以嵌套,树形结构,

  变量先定义后使用,作用域:单向大盖小,冲突时就近优先

6.2数据与存储地址

  程序有变量和常量

  变量包含数据变量,函数变量(地址变量)

  变量有值与存储地址两个概念

    变量的值存放在存储器中,有一个存储地址

    变量的值可以是地址

      访问值有变量名存储地址两条途径

      间接访问机制:间接寻址,通过一个数据访问另一个数据。

        应用:函数调用中参数传递;跨模块函数调用;跨模块的数据访问;面向对象中多态的实现;

      别名:函数调用,如果传递参数地址,那么别名就还扩展到了被调函数中

6.3函数调用中的参数传递

  简单数据类型传递的是值

  对于数组,结构体对象,类对象,传递的是地址

    原因:空间量答,如果传值,需要拷贝数据,存储资源耗费大,时间开销大。

6.4宏扩展和预处理的含义 

  #define a 100

  则a=10不允许出现,是错误的。

  含义:在预处理环节进行文本替换。预处理是在编译之前执行。

7.编译技术的演进

第一代:源程序-》目标机器的二进制可执行文件(机器指令)

第二代:源程序-》通用的中间代码-》虚拟机解释。 java语言(通用指令和函数)

第三代:源程序的实时编译和实时解释。Js,Python(层次化的功能函数)

本质:借鉴生物构成特性:细胞-》组织-》器官-》生物体

    程序:指令->函数-》模块-》包-》应用程序

小结2

机器语言的特点:操作指令流,程序繁细很长,无直观

 

posted @ 2020-02-20 17:02  Comet_Fei  阅读(118)  评论(0编辑  收藏  举报