《编译原理及实践教程》第一章学习笔记

  • 课后习题

课后习题

  1. 解释下列术语。
    答:
    翻译程序:是一种系统程序,它将计算机编程语言编写的程序翻译成另外一种计算机语言的一般来说等价的程序,主要包括编译程序和解释程序,汇编程序也被认为是翻译程序。
    编译程序:也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
    解释程序:是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时,它直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的主要区别。
    源程序:也称源代码,是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。 在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。
    目标程序:又称为“目的程序”,是源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名----由语言处理程序(汇编程序,编译程序,解释程序)将源程序处理(汇编,编译,解释)成与之等价的由机器码构成的,计算机能够直接运行的程序,该程序叫目标程序。目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调用问题,需要将各个目标程序与库函数连接,才能形成完整的可执行程序。
    :把对源程序或其等价的中间表示形式从头到尾扫描并完成规定任务的过程。
    前端:编译前端包括词法分析,语法分析,语义分析和中间代码生成,以及部分代码优化工作,是对源程序进行分析的过程,它主要与源语言有关,与目标机无关,主要根据源语言的定义静态分析源程序的结构,以检查是否符合语言的规定,确定原源程序所表示的对象和规定的操作,并以某种中间形式表示出来。
    后端:编译后端包括部分代码优化和目标代码生成,是对分析过程的综合,与源语言无关,依赖于中国语言和目标机,主要是根据分析的结果构造出目标程序。

  2. 高级语言程序有哪两种执行方式?阐述其主要异同点。描述编译方式执行程序的过程。
    答:
    高级语言程序的两种执行方式是:解释方式编译方式
    解释方式:利用解释程序直接读取高级语言程序中的每个语句,翻译并直接执行
    编译方式:利用编译程序将高级语言程序翻译为机器语言程序,然后再运行这个机器语言程序

  3. 在你所使用的C语言编译器中,观察程序1.1经过预处理、编译、汇编、链接四个过程生成的中间结果。
    答:

  4. 编译程序有哪些主要构成成分?各自的主要功能是什么?
    答:
    词法分析器(Scanner,又称扫描器)的功能是读人源程序,进行词法分析,输出单词记号。
    语法分析器(Parser,又称解析器)的功能是对单词记号串进行语法分析,识别出各类语法单位,最终判断输入串是否构成语法上正确的程序。
    语义分析器(Semantic Analyzer)的功能是将各种符号的必要信息填入符号表,并按照
    语义规则对语法分析器识别出的语法单位进行静态语义检查。
    中间代码生成器(Intermediate Code Generator)的功能是将语法分析器识别出的各语法单位翻译成一定形式的中间代码。
    代码优化器(Optimizer)的功能是对生成的中间代码进行优化处理。
    目标代码生成器(Target Code Generator)的功能是把中间代码或优化后的中间代码翻译为目标代码。如果没有优化器,目标代码生成器也可以从识别出的语法单位直接生成目标代码。

  5. 编译程序的构造需要掌握哪些原理和技术?编译程序构造工具的作用是什么?
    答:

  6. 复习C语言,其字母表中有哪些符号?有哪些关键字、运算符和界符?标识符、整数和实数的构成规则是怎样的?各种语句和表达式的结构是什么样的?
    答:暂无

  7. 编译技术可应用在哪些领域?
    答:P31-33

  8. 你能解释在Java编译器中,输入某个符号后会提示一些单词、某些单词会变为不同的颜色是如何实现的吗?你能解释在Code Blocks中在输入{后,会自动添加},输入do 会自动添加while()是为什么吗?
    答:暂无。

《编译原理及实践教程》第一章学习笔记相关推荐

  1. 《从Paxos到Zookeeper:分布式一致性原理与实践》第一章读书笔记

    第一章主要介绍了计算机系统从集中式向分布式系统演变过程中面临的挑战,并简要介绍了ACID.CAP和BASE等经典分布式理论,主要包含以下内容: 集中式的特点 分布式的特点 分布式环境的各种问题 ACI ...

  2. c语言链表单值化,《编译原理及实践教程》第3章词法分析.ppt

    <编译原理及实践教程>第3章词法分析 方法如下: 正规式R?有穷自动机NFA M ? s,t是正规式,相应NFA为N(s),N(t),则正规式R=s|t,构造NFA(R) 为: ? 对应正 ...

  3. 《小马哥讲Spring核心编程思想》-第一章学习笔记(1)

    <小马哥讲Spring核心编程思想>-第一章学习笔记(1) 一.课程介绍 1.为什么要学习spring? 2.深入学习spring的难点有哪些? 3.课程的设计思路是怎样的? 二.内容综述 ...

  4. 现代控制理论第一章学习笔记

    现代控制理论第一章学习笔记 控制系统的状态空间表达式 1.1状态变量及状态空间表达式 1.2状态变量及状态空间表达式的模拟结构图 1.3状态变量及状态空间表达式的建立 1.3.1从系统框图建立状态空间 ...

  5. 编译原理及其实践教程(第二版)总结

    编译原理总结 第一章概述 1.1 程序设计语言与编译程序 1.2 编译过程和编译程序的结构 第二章 高级语言设计基础 2.1 高级语言设计基础 2.2.3 文法的二义性 第三章 词法分析 3.1 词法 ...

  6. 编译原理 机械工业出版社 第一章第三章部分习题答案

    (最近才开始学习编译原理,答案如有不对,请提醒我更改,谢谢) 1.6.1 解:x=11,y=13,w=13,z=11. 因为在第一个块中,对j和i都进行了重新赋值,而由于j在该块中是重新定义的,所以其 ...

  7. 数学分析教程 第一章学习感受

    我看的是常庚哲,史济怀的<数学分析教程>(第三版),刚配合视频看完第一章,里面的练习题也做了一部分,先说一下感受. 首先是关于实数方面的.感觉很难受,它并没有建立严密的体系说明实数是什么, ...

  8. 人工智能及其应用——第一章学习笔记

    人工智能及其应用 第一章 绪论 1.1 人工智能的定义与发展 1.1.1 人工智能的定义 智能:智能是一种应用知识处理环境的能力或由目标准则衡量的抽象思考能力 智能机器:智能机器是一种能够在不确定环境 ...

  9. 【2023 · CANN训练营第一季】昇腾AI入门课(PyTorch)第一章学习笔记——Hi Ascend

    第一章 昇腾AI基础知识 华为AI全栈的解决方案分为四层,分别是,芯片层,芯片使能层,AI框架层,应用使能层.那么这四个层面分别是用来做什么的呢?且看我娓娓道来. 1.芯片层 芯片层也叫Ascend层 ...

  10. 《HeadFirst Python》第一章学习笔记

    对于Python初学者来说,舍得强烈推荐从<HeadFirst Python>开始读起,这本书当真做到了深入浅出,HeadFirst系列,本身亦是品质的保证.这本书舍得已在<Pyth ...

最新文章

  1. html css 背景图片
  2. ios程序内发送邮件的代码
  3. 洛谷 P1207 [USACO1.2]双重回文数 Dual Palindromes
  4. 移动Web加速技术月报第1期
  5. SQL事务控制语言(TCL)
  6. 只安装了JRE,没有手动配置环境变量,eclipse跑不起来,Exit code = -1
  7. Loadrunner脚本函数
  8. DateTimeFormatter获取时间戳
  9. Linux平台开源浏览器
  10. java datasource 详解_Spring的datasource配置详解
  11. HEKA.FitMaster.v2.15(用来分析和测试那些通过Patchmaster或Pulse得
  12. 不会用苹果电脑(mac)的渣渣
  13. Python设置Latex公式中显示数学字体STIX
  14. JeecgBoot 低代码平台 2.4.5 版本发布,钉钉与企业微信集成版本
  15. uniapp实现点击加载更多
  16. Visual Micro for Microsoft Visual Studio 2022.08
  17. (转)Python学习路径及练手项目合集
  18. app里未读消息已读、未读是怎么设计的?
  19. [OpenWRT]极路由B70(HC5962)刷OpenWRT笔记(一)
  20. mac u盘只读怎么修改_解决Mac U盘不能写入问题

热门文章

  1. 用C语言如何编程一道选择题,使用C语言编写一道简单的编程题
  2. 从零开始的ZYNQ学习(基于矿卡EBAZ4205)(三)
  3. 水经注地图发布服务中间件管理界面
  4. qj71c24n通讯实例_通信模块QJ71C24N应用篇手册三菱QJ71C24N用户手册 - 广州凌控
  5. 2022京东年货节红包什么时候开始
  6. gps高斯utm_高斯投影与UTM投影
  7. 关于php后台的知识,xfplay影音先锋画面声音不同步的处理教程 爱狐网 (‾◡◝)...
  8. 飞思卡尔单片机DZ60---时钟初始化
  9. 按键精灵一个命令学会这么厉害
  10. vivox50支持鸿蒙,vivo X50系列极致轻薄的机身下,还有哪些功能和亮点?