当前位置: 首页 > news >正文

编译原理 1.1

学习视频:

mooc 编译原理(哈工大)   https://www.bilibili.com/video/BV1zW411t7YE?p=1

 

编译器属于系统软件

 

第一章 绪论

 

编译

编译是将高级语言翻译成汇编语言或机器语言的过程

可能编译成汇编语言,也可能编译成机器语言

 

编译器在语言处理系统中的位置

预处理器是把存储在不同文件中的源程序聚合在一起。把宏语句转换为原始语句

可重定位的机器代码是指在内存中存放的起始位置是不固定的

加载器修改可重定位地址,并将修改后的指令和数据放到内存中的适当位置

链接器将多个可重定位的机器代码文件(包括库文件)连接到一起,并解决外部内存地址问题

 

gcc/g++是预处理器、编译器、汇编器都包含了

 

词法分析&语法分析&语义分析

语法分析=句法分析

句子 —>词法分析—>语法分析—>语义分析

 

句子首先通过词法分析,确定各个单词的词性

然后进行语法分析,识别句子中的各类短语,从而获得句子的结构

然后进行语义分析,根据句子的结构,分析出各个短语在句子中充当什么成分,从而确定各个名词性成分同核心位于之间的语义关系

最后给出中间表示形式

 

编译器的结构

中间表示独立于具体的语言,起到中间桥梁的作用

注意这里的阶段(就是那些此法分析器,语法分析器,语义分析器、中间代码生成器等)是编译器的逻辑组织方式,在实现过程中,多个阶段可能会被组合在一起,例如可以在语法分析的同时结合语义规则直接进行语义分析

 

相关文章:

  • 编译原理1.2
  • 汇编语言的种类
  • Bochs虚拟机 编写主引导扇区程序并执行
  • 编译原理2.1
  • Python 函数式编程(一):高阶函数/函数名变量
  • Pycharm debug
  • MyOS(二):用Java和汇编开发一个helloworld操作系统内核
  • 仿QQ聊天室项目
  • 基于Python+Flask+Echarts的 COVID-19数据可视化项目
  • go语言相关知识
  • go语言相关库和函数
  • Windows内核文件
  • MyOS(三):软盘读写
  • Python函数式编程(二):map、 reduce、 filter、 sorted
  • OpenCV(一)——图片灰度转换(灰度图) 修改图片尺寸(cv2.resize) 读取视频
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • android 一些 utils
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • go语言学习初探(一)
  • Linux下的乱码问题
  • Making An Indicator With Pure CSS
  • oschina
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • Terraform入门 - 3. 变更基础设施
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 前端存储 - localStorage
  • 找一份好的前端工作,起点很重要
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 你对linux中grep命令知道多少?
  • linux 淘宝开源监控工具tsar
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #14vue3生成表单并跳转到外部地址的方式
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (二)linux使用docker容器运行mysql
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (四)JPA - JQPL 实现增删改查
  • (五)MySQL的备份及恢复
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)jQuery 基础
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET中GET与SET的用法
  • @Autowired自动装配
  • @font-face 用字体画图标
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • []FET-430SIM508 研究日志 11.3.31
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件