大学梦想:编写编译器
版权申诉
37 浏览量
更新于2024-07-07
收藏 17KB DOCX 举报
"这篇文档是作者对于在大学时期尝试编写编译器的回忆,记录了作者与薛老师的交流,以及他们计划使用代数结构 `<Z/rou;+,*>` 设计一种新语言,并将目标语言设定为 C++。文中提到了已完成的语言和词法分析器的初步工作,同时分享了一段示例代码。尽管由于各种原因项目未能继续,但作者表达了对此经历的怀念和对梦想的坚持。"
在这篇文档中,涉及的主要知识点包括:
1. **编译器**: 编译器是计算机科学中的一个重要组成部分,它将高级编程语言转换为目标机器可执行的机器代码。编译器的设计和实现是一个复杂的过程,通常包括词法分析、语法分析、语义分析和代码生成等阶段。
2. **词法分析**: 词法分析是编译器的第一个步骤,它将源代码分解为一系列的标记(tokens),这些标记是语言的基本构建块,如关键字、标识符、运算符和常量。
3. **代数结构**: 文档中提到的 `<Z/rou;+,*>` 是一种代数结构,可能指的是在整数集合 Z 上定义的除法 rou(取模 8)以及加法和乘法操作。这种结构可以作为设计新编程语言的基础,定义其算术运算规则。
4. **目标语言**: 在这里,作者的目标语言是 C++,这是一种广泛应用的面向对象编程语言,具有丰富的库支持和高性能。编译器的一个任务就是将源代码转换为 C++ 代码,使其能够在支持 C++ 的平台上运行。
5. **C++ 语言**: C++ 是 C 语言的扩展,增加了类、模板、异常处理等功能,支持面向对象编程和泛型编程。在文中,作者用 C++ 实现了部分编译器的功能,并遇到了挑战。
6. **程序示例**: 作者给出了一个简单的程序示例,展示了如何在自定义语言中进行变量赋值、算术运算和条件判断。这表明作者已经实现了语言的至少一部分语法解析和执行。
7. **离散数学**: 作者提到希望学习离散数学,这是计算机科学尤其是编译器设计中的基础学科,涵盖集合论、图论、逻辑等概念,对于理解和设计计算模型至关重要。
8. **BBS 和在线论坛**: 在线论坛如 BBS 是学生分享知识和技术的平台,作者计划在完成编译器后,通过这种方式分享自己的设计过程和代码,促进知识的传播和交流。
这篇文档不仅是个人经验的记录,也是对编译器设计和编程学习过程的生动展示,反映了大学期间对技术热情的追求和对知识的渴望。
2021-09-14 上传
2022-05-25 上传
2023-08-05 上传
weixin_41031635
- 粉丝: 0
- 资源: 5万+
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程