编译原理龙书学习记录(一)

编译器:程序,阅读以某一语言(源语言)编写的程序并把该程序翻译成为一个等价的、用另一种语言(目标语言)编写的程序。

 

编译器两部分:分析部分(前段),

把中间表示形式何符号表送入

综合部分(后端)。

============================================

1.2 一个编译器的结构

词法分析 lexical analysis 或 扫描 scanning

读入字符流   组成 词素lexeme 形成词法单元token <token-name,attribute-value>

语法分析syntax analysis 或 解析 parsing

形成语法树syntax tree

语义分析semantic analyzer

作用:1.检查源程序是否和语义定义的语义一致。

          2.收集类型信息。

重要部分 类型检查type checking:

中间代码的生成

代码优化

代码生成

(多个步骤组合成趟)

=============================================

1.3 程序设计语言的发展历程

 

1.4 构建一个编译器的相关科学

 

1.5 编译技术的应用

 

1.6 程序设计语言基础

 

静态static:在编译程序时候解决问题。

动态dynamic:只允许在运行程序的时候作出决定的策略 动态策略

???例1.3 不太懂

 

名字→(环境)→内存位置→(状态)→值

 

名字/标识符/变量

 

参数调用机制:

值调用:对实在参数求值或者拷贝。参数本身不会被改变。

引用调用:实在参数的地址作为相应的形式参数的值传递给被调用者。会对参数本身产生影响。

 

别名:两个形式参数指向同一位置。

 

理解:前半部分介绍了编译器的工作步骤,为后面几个章节的学习做大概的定位了解。

中间介绍了编译原理的应用和其他知识。后面学习了在编写程序的过程中关于变量的动态静态存储和调用,和之前在Cjava中学的差不多,但是讲的我晕乎乎的 = = 还算大概看懂了吧。

 

转载于:https://www.cnblogs.com/sjcnh/p/5981137.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值