编译原理(龙书)学习笔记 第一章

  • 1.1语言处理器
    • 解释器(interpreter) :
    • 编译器(compiler):
    • 一个语言处理系统
    • 练习
      • 1.1.1:编译器和解释器之间的区别
      • 1.1.2:相对优点
      • 1.1.3:编译器产生汇编而不是机器语言的好处是什么?
      • 1.1.4:编译器使用C语言作为目标语言的好处
      • 1.1.5:汇编器要完成的任务

1.1语言处理器

解释器(interpreter) :

不通过翻译的方式生成目标程序,从用户的角度来看,解释器利用用户提供的输入执行源程序中指定的操作
他对于错误的诊断效果比编译器更好,因为他逐个语句地执行源程序。

编译器(compiler):

就是一个程序,可以把一种语言编写的程序(源语言程序)翻译生成为另外一种语言编写的程序(目标语言程序)

一个语言处理系统

: 源程序经过预处理器(preprocessor) 生成经过预处理的源程序,再到编译器 形成目标汇编程序,再到汇编器 生成可重定位的机器代码,再到链接器/加载器 (链接器能解决外部内存地址问题,加载器把所有的可执行文件放到内存中执行)最后得到目标机器代码

练习

1.1.1:编译器和解释器之间的区别

编译器是一种程序,把源程序翻译成目标语言程序,并且报告错误。

解释器就直接执行源程序中指定的用户提供输入的操作

1.1.2:相对优点

编译器相对于翻译器:更快,C生成目标语言程序比翻译器inputs,outputs更快

翻译器相对于编译器:拥有更好的错误诊断,毕竟他是逐个语句执行源程序。

1.1.3:编译器产生汇编而不是机器语言的好处是什么?

汇编语言更容易生成并且更方便debug

1.1.4:编译器使用C语言作为目标语言的好处

C的编译器多,基本上可以编译到每一个硬件

1.1.5:汇编器要完成的任务

把汇编程序翻译成机器代码 机器代码是可重定位的。

编译原理(龙书)学习笔记 第一章相关推荐

  1. 《Go语言圣经》学习笔记 第一章 Go语言入门

    Go语言圣经学习笔记 第一章 Go语言入门 目录 Hello, World 命令行参数 查找重复的行 GIF动画 获取URL 并发获取多个URL Web服务 本章要点 注:学习<Go语言圣经&g ...

  2. DX11龙书学习笔记---渲染管线

    DX11龙书学习笔记---渲染管线 1.输入装配阶段 - 顶点 - 图元拓扑 - 点列表 - 线带 - 线列表 - 三角形带 - 三角形列表 - 带有邻接信息的图元 - 控制点面片列表 - 索引 2. ...

  3. DX11龙书学习笔记---准备工作

    DX11龙书学习笔记---准备工作 1.交换链和页面翻转 深度缓冲区 多重采样 1.交换链和页面翻转 为了避免在动画中出现闪烁,最好的做法是在一个离屏(off-screen)纹理中执行所有的动画帧绘制 ...

  4. 小吴的《机器学习 周志华》学习笔记 第一章 绪论

    小吴的<机器学习 周志华>学习笔记 第一章 绪论 近一年时间接触到不少机器学习的知识,虽然断断续续学了一些,总感觉还没有入门(只学会了疯狂调包).因此,最近开始系统学习Machine Le ...

  5. 计算机网络学习笔记---第一章

    计算机网络学习笔记 第一章 文章目录 计算机网络学习笔记 第一章 前言 一.计算机网络的概念 (一)计算机网络的功能 1.数据通信(连通性) 2.资源共享(硬件 软件 数据) 3.分布式处理 (Had ...

  6. 机器人导论(第四版)学习笔记——第一章

    机器人学导论(第四版)学习笔记--第一章 1. 概述 1.1 背景 1.2 操作臂力学和控制 1.3 符号 1. 概述 1.1 背景 工业自动化的发展带来了工业机器人的高速发展.本书聚焦机械臂的力学和 ...

  7. PhalAPI学习笔记 ——— 第一章自定义HelloWorld接口

    PhalAPI学习笔记 --- 第一章自定义HelloWorld接口 前言 自定义接口 项目实例 结果 分布解析 结束语 前言 公司业务需要转学PHP,而PHP中一个功能强大且生态链完整的PHP接口框 ...

  8. [go学习笔记.第一章] go可以做什么

    go可以做什么,go有以下三大学习方向: Golang的应用领域 1.区块链应用 区块链技术,简称BT(Blockchain technology),也被称之为分布式账本技术,是一种互联网数据库技术, ...

  9. 《编译原理-龙书》练习第4章

    4.2 上下文无关文法 **4.2.7节中L={a^nb^n|n>=1}怎么用文法表示? S -> aAb A -> ab| ε 4.2.1 1) E -> EE* -> ...

最新文章

  1. boost::safe_numerics模块实现混合类型产生令人惊讶的结果的测试程序
  2. python generator_Python Generator漫谈
  3. Phenotips 项目源码分析 [0]
  4. 服务器提交任务和直接运行,实现简单服务器学习多线程与Executor
  5. springboot yml多环境开发
  6. 目标检测(二十二)--R-FCN
  7. 根据出库、入库表,实现对库存的信息查询
  8. 武-NC15522(Dijsktra最短路算法)
  9. 分享11个网页游戏和9个黑客源码,总有一款适合你
  10. SKU后台管理添加商品
  11. 【CSS系列】background-clip 定义用法
  12. [机翻] WIRER ON THE WIRE - SIGNALR协议的非正式描述
  13. IDA Python路径问题
  14. 窗口置顶工具v1.1.0
  15. 安卓开发规范-必读版
  16. 转行做产品经理,应该具备那些条件?
  17. 支付宝支付开发实践总结-Java-支付宝当面付-支付宝小程序-二维码生成-支付宝退款-APP调起支付宝支付
  18. mysql_d.dll_libmysqld.dll下载
  19. 大数据导论章节答案_高校邦大数据概论章节答案
  20. [附源码]java毕业设计网易云音乐推荐系统

热门文章

  1. IntelliJ IDEA中文网
  2. adb push报错‘read-only file system‘
  3. pytorch框架实现老照片修复功能详细演示(GPU版)
  4. 基于TI C55x架构的定点TMS320VC5509A音频专用DSP处理器开发板规格书
  5. 错误现象:(com.logicaldoc.core.security.dao.HibernateUserDAO 102) -- Packet for query
  6. 数据可视化之动态柱状图图表
  7. 程序员在国企是种什么体验,国企好还是互联网企业好!
  8. React基本使用、React脚手架的使用
  9. linux忘记root密码grab,安装完Linux后相关配置
  10. 使用easytrader时对xiadan.exe的配置