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

【从零开始学习计算机科学】编译原理(一)编译过程概述

【从零开始学习计算机科学】编译原理(一)编译过程概述

  • 绪论
    • 编译过程概述
    • 词法分析
    • 语法分析
    • 代码优化
    • 代码生成
    • 其他功能
    • 编译器的前端和后端

绪论

什么叫编译程序?为什么我们需要编译程序?编译程序就是一个程序,将便于人编写、阅读、维护的高级计算机语言所写作的源代码程序,翻译成与之等价的另一种能为计算机解读、运行的低级机器语言。

一般来说,执行一个高级语言所写的程序的方法有两种,分别是编译执行和解释执行。编译执行有一个单独的编译过程将源程序翻译生成目标程序,具体执行的是目标程序,因此是一次编译多次执行。例子包括C、C++等编程语言。解释执行在每次运行时,将源程序边翻译边运行,因此每次执行都需要解释。例子包括Python、JavaScript、Matlab等编程语言。其共同点是将高级语言翻译(编译)成机器语言进行执行

编译过程概述

编译程序的工作,从输入源程序开始,到输出目标程序结束,与自然语言之间的翻译有很多相似之处。

英译中 (如I love China.) 需经历的步骤主要有:1,识别出句子中的单词;2,分析句子的语法结构;3,句子的语义分析;4,对语义进行修饰;5,写出最后的译文。而在编译过程中,其可以抽象为词法分析、语法分析、语义分析及中间代码生成、机器无关的代码优化、目标代码生成。因此,编译器是分阶段执行的,每个阶段将源程序从一种表示转换成另一种表示

在这里插入图片描述

词法分析

此阶段完成的任务(以a=

相关文章:

  • Lecture1 绪论
  • java项目之基于ssm的在线学习系统(源码+文档)
  • ✨SQL-递归CTE
  • 【PyCharm】Python和PyCharm的相互关系和使用联动介绍
  • 【2025】Electron Git Desktop 实战一(上)(架构及首页设计开发)
  • 安全测试数据的分析、报告及业务应用
  • LLM预训练过程-简明版本
  • 400. 第 N 位数字
  • ajax组件是什么
  • zerotier搭建免费moon服务器
  • 2.5 Spring Boot异常处理全局化:@ControllerAdvice实战
  • 刷leetcode hot100--动态规划3.12
  • RHCE大纲
  • std::ranges::views::reverse, std::ranges::reverse_view
  • 什么是 Java 的 SPI(Service Provider Interface)机制?
  • doris:外表统计信息
  • mock的定义和使用场景
  • LORA中 软提示是什么
  • LoRA,DoRA,RSLoRA,LoRA+ 是什么
  • STM32外部中断
  • 请问聊城网站建设/浙江短视频seo优化网站
  • 网站基础功能/武汉大学人民医院精神科
  • 一流设计网站/百度竞价推广价格
  • 免费论坛网站建设/网络营销推广方案案例
  • 做网站绿标/今日新闻快讯
  • 织梦网站怎样做锚文本/游戏加盟