博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编译原理龙书学习记录(一)
阅读量:6815 次
发布时间:2019-06-26

本文共 884 字,大约阅读时间需要 2 分钟。

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

 

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

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

综合部分(后端)。

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

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

你可能感兴趣的文章
[Android] Step 2: 第一个应用 Hello Android
查看>>
财付通支付接口使用说明详解
查看>>
Bootstrap3快速使用
查看>>
[转]spinlock 理解
查看>>
3/18小作业,简单的非法输入检测与测试
查看>>
[CF765F]Souvenirs
查看>>
NOI.AC NOIP模拟赛 第二场 补记
查看>>
初等數論(於秀源) 習題 1.5
查看>>
深圳潮汕肠粉店
查看>>
自己写了个H5版本的俄罗斯方块
查看>>
[转载]马化腾:创造生物型组织的七大“灰度法则”
查看>>
项目绩效考核体系指标建设图表
查看>>
1. 依赖项属性 简单理解
查看>>
jQuery弹出层插件大全
查看>>
团队项目(三)(江山代有才人秃队)
查看>>
AndroidMenifest.xml中android:sharedUserId="android.uid.system权限访问sd卡问题
查看>>
Linux基础知识--目录操作
查看>>
Serverlet
查看>>
pandas一些基本操作(DataFram和Series)_1
查看>>
【零基础学习iOS开发】【02-C语言】05-进制
查看>>