编译原理

高级语言,如C语言等                          A             .c ,   .cpp

中级语言,如汇编语言(目标代码)    B               .obj

低级语言:机器码(可执行文件)        C            .so,     .exe

 

A→B 或 A→C                    称为编译

B→C                                  称为汇编

高级语言的编译类似语言的翻译一样:词法分析→语法分析→语义分析→中间代码生成→代码优化→目标代码生成→机器语言

一般来说语义分析和中间代码生成是一起完成的,合起来称为语法制导翻译。

编译过程中就可以确定需要存储空间大小的称为静态内存分配,执行时才能确定存储空间大小的称为动态内存分配。

静态动态分别对应的是编译过程执行过程,动态内存部分又分为栈,堆。

全局变量显然是静态存储空间。类和方法对应的存储是按整个过程分配的,称为动态记录。

 

语言可分为两种:一种是方法中可以嵌套方法的,如pascal;另一种则是不可以的,如C。

 

预处理过程:包括宏替换和注释、空格等的删除。

符号表:用来对应各种操作的操作符。寄存器,cpu附近最快的存储空间,很小,独立于内存之外。

因此选择将哪些操作变量放到寄存器中就很重要了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值