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

编译器设计01-入门概述

编译器作用概述

源代码 →    编译器    目标代码 源代码\xrightarrow{\ \ \ 编译器\ \ \ }目标代码 源代码   编译器    目标代码

编译阶段概述

编译处理包括两个阶段:前端处理后端处理,中间过程生成语法树

编译处理:源代码 → 语法树 → 目标代码 编译处理:源代码\xrightarrow{{}}语法树\xrightarrow{{}}目标代码 编译处理:源代码 语法树 目标代码

前端处理 : 源代码 →  分析  语法树 前端处理:源代码\xrightarrow{\ 分析\ }语法树 前端处理:源代码 分析  语法树

后端处理 : 语法树 →  综合  目标代码 后端处理:语法树\xrightarrow{\ 综合\ }目标代码 后端处理:语法树 综合  目标代码

编译过程概述

编译好比英文文章翻译中文文章,源代码是英文文章,目标代码是中文文章,语法树体现翻译要点各种关系,是你翻译过程的主要笔记。从高级语言到机器语言,从书本语言到笔记语言,编译器的好坏,决定了翻译的质量。语义不变是红线,在此前提下要尽量简洁清楚不说废话,让人好懂。

前端处理概述

前端处理:词法分析语法分析语义分析

前端处理犹如阅读英文文章,往往我们需要先理清文章中各个词的意思,这类似词法分析;再梳理整篇文章的脉络,这类似语法分析;再检查文章的议论是否逻辑正确、叙述是否前后连贯、抒情是否价值观一致,这类似语义分析。

后端处理概述

后端处理:中间代码生成目标代码生成贯穿各个阶段的优化

后端处理犹如得出中文文章,当阅读完英语文章后,你的脑海中就有清晰的“中间代码”了,想写作的时候就心中有数,核心论点是什么,论据是什么,文章就有个层次,你会通过合理规范的形式把它们统一起来,经过翻译润笔(优化加工)便得到最后的文章中文译本。


http://www.kler.cn/a/147142.html

相关文章:

  • vueRouter路由切换时实现页面子元素动画效果, 左右两侧滑入滑出效果
  • QT使用libssh2库实现sftp文件传输
  • DB Type
  • 调用门提权
  • Ceph PG(归置组)的状态说明
  • RT-Thread 星火1号学习笔记
  • 力扣二叉树--第三十三天
  • nginx反向代理解决跨域前端实践
  • docker 安装jekins
  • 西南科技大学信号与系统A实验一(信号的产生与时域运算)
  • 微软Azure AI新增Phi、Jais等,40种新大模型
  • 对Laxcus分布式操作系统的认知、价值、痛点解决的回答
  • 第三节HarmonyOS DevEco Studio了解基本工程目录
  • JSP 循环ajax 返回的集合
  • 香港科技大学广州|智能制造学域博士招生宣讲会—天津大学专场
  • Apache换行解析漏洞(CVE-2017-15715)
  • 红米手机如何远程控制荣耀手机?
  • 在OpenCV中基于深度学习的边缘检测
  • nuxt、vue实现PDF和视频文件的上传、下载、预览
  • go语言基础 break和contine区别
  • Mac 搭建本地服务器
  • 云原生系列Go语言篇-泛型Part 1
  • 2-Python与设计模式--前言
  • MIT6.824-Raft笔记:Raft初探、副本间log时序
  • Electronica慕尼黑电子展 Samtec团队与21ic分享虎家产品与方案
  • AI - Steering behaviors(转向系统)