学了c++有一段时间了,一直没有适合的项目练手,刚好最近编译原理课程设计要求做一个pl0编译器,于是决定选择c++来编写。

一路上可叫一个坎坷啊,要么是逻辑错误,要么是语言特性方面不熟悉而导致编译不通过,或者程序出错。可以说,三分之一的开发时间都在测试c++的用法= = 。不过还好坚持下来也做完了,其中各种数据结构,各种用,如堆栈,list,map,二维数组,vector等,让我熟悉了一下这些常用的数据结构,这个编译器的开发确实让我收获不少。

接下来,我说下几点我自己的心得体会:

1.首先一定要充分透彻的理解课本原理,在脑子(或纸上)构建好整体的框架,再开始动手写代码。

2.分功能,模块,逐部分完成,例如,词法分析->语法分析->语义分析->目标代码生成。

3.代码出现死循环,栈溢出等问题,debug找出问题出处,再分析造成这个问题的原因。

4.保持一个良好的心态(个人认为最重要)。不要为出bug烦躁,不要为找不到bug烦躁(我经常这样,需改正),累了就休息休息,不要因为写代码而破坏自己的生物钟。还有一点很重要的是,不要因为别人写得快而感到自卑,感到压力,自己和自己比,把握进度,适当休息。

最后,附上源代码:https://github.com/Downey-W/MyPL0Compiler (= = ,可以说是自己第一个c++项目,可能当中有不少地方不规范,希望大家能指出。)

开发PLO编译器过程的一些体会相关推荐

  1. 升讯威微信营销系统开发实践:(3)功能介绍与此项目推广过程的一些体会( 完整开源于 Github)...

    GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction因为个人精力时间有限,不会再对现有代码进行更新维护,不过微信接口比较稳定,经测试至 ...

  2. AI开发者十问:10分钟了解AI开发的基本过程

    摘要:从AI开发模型.框架.工具,到提升开发效率的学习办法,为AI开发者逐一解答. 本文分享自华为云社区<10分钟了解AI开发的基本过程>,作者:简单坚持. 1.AI开发究竟在开发什么? ...

  3. 用 Go 开发 Go 编译器

    Google的Go编程语言开发者Russ Cox在Go开发者大会GopherCon 2014上谈论了Go 编译器从C语言移植到Go语言.Go编译器最早是用C写的,原因是 1) Go不存在:2) Go不 ...

  4. 基于Windows 7旗舰版搭建WinCE6.0开发环境的过程

    首先感谢JeffreyLi提供了更简便的安装WinCE6.0 R3的方法,今天验证过了,确实比我之前整理的<WinCE6.0 R3的安装步骤>方便很多,十分感谢! 为了方便大家参考,重新整 ...

  5. linux上 arm开发环境搭建,详解 LINUX下QT For ARM开发环境搭建过程

    LINUX下QT For ARM开发环境搭建过程是本文介绍的内容,不多说,先来看内容.在PC上,我们需要得到两个版本的Qt,分别是:Qt-4.5.2和QtEmbedded-4.5.2-arm.前者包括 ...

  6. 实验1的运行过程及心得体会

    实验1的运行过程及心得体会 本次实验是从学习c++开始的第一次实验,实验内容比较简单也比较基础,通过对书本自学以及自己的摸索基本可以完成此次实验.这次实验主要的目的是让我们熟悉c++的编程环境,体验c ...

  7. 再次学习MOOC《Geogebra的教学应用》的过程记录与体会(1)

    再次学习MOOC<Geogebra教学应用>的过程记录与体会(1) 一.为什么再次学习Geogebra教学应用这门MOOC 虽然参加了这门MOOC的第一期的学习,成绩也相当不错,在之后的工 ...

  8. 第六章SQL数据库开发--TSQL—储存过程

    第六章SQL数据库开发--TSQL-储存过程 6.1 TSQL-存储过程说明 存储过程 (Stored Procedure) 是在大型数据库系统中 , 一组为了完成特定功能的 SQL 语句集 , 存储 ...

  9. upupw 5.4配置的php,《Zend studio 12 + UPUPW+PHP5.4开发平台配置过程》,upupwzendguard_PHP教程...

    <Zend studio 12 + UPUPW+PHP5.4开发平台配置过程>,upupwzendguard 一.安装Zend studio 12 安装过程比较简单,就不简述. 二.修改P ...

  10. upupw 5.4配置的php,《Zendstudio12+UPUPW+PHP5.4开发平台配置过程》,upupwzendguard_PHP教程...

    <Zend studio 12 + UPUPW+PHP5.4开发平台配置过程>,upupwzendguard 一.安装Zend studio 12 安装过程比较简单,就不简述. 二.修改P ...

最新文章

  1. 理解GloVe模型(Global vectors for word representation)
  2. windows 10 代理服务器出现问题
  3. wxWidgets:wxSymbolPickerDialog类用法
  4. 不放弃WM,依旧开发WM应用
  5. java输入月份求天数_java输入年份,月份,输出当月天数
  6. 百米路由器2登陆地址_腾达无线路由器怎么安装,真的不错
  7. 单台web服务器性能,单台web服务器如何尽可能的提高网站性能
  8. 关于jupyter出现kernel dead问题
  9. 刚刚发现的 xaml里面颜色的定义方式
  10. Vrep当中的一些好用的工具(未完)
  11. emui内核支持kvm吗_Linux专题—使用kvm搭建虚拟机
  12. 基于DEAP库的python进化算法-1
  13. SDOI2015 约数个数和
  14. 信息搜集快捷导航工具bug修复-光速启动
  15. HTTP协议入门 状态码大全
  16. Android第三方系统有哪些,第三方安卓定制系统LineageOS 14.1支持6款新设备:包括一加3T...
  17. 用计算机弹琴琴谱,在电脑上弹钢琴的软件
  18. xml开发笔记(一):tinyXml2库介绍、编译和工程模板
  19. 水晶头的制作的学习经历
  20. 制作QQ2011绿色版不求人

热门文章

  1. VT100 终端控制码
  2. 为什么银行的现钞买入价低于现汇买入价?
  3. 干货分享!软考中高项案例分析10大管理领域理论背诵要点
  4. Crazy Bird
  5. k8s使用命令报错:error: You must be logged in to the server (Unauthorized)
  6. 谷物割捆一体农用车系统整体设计
  7. C语言 结构体指针强制转换,c中结构体指针的强制类型转换
  8. wireshark蓝牙数据包分析_Wireshark数据包分析
  9. 当前的安全设置不允许从该位置下载文件--解决方法
  10. 2020牛客寒假算法基础集训营4 - G 音乐鉴赏-全概率公式