编译器学习方法与路线
不要上来就妄想通读龙书或者其它大部头著作。先从简单开始。
理论基础的学习建议看视频学习。本人是在哔哩哔哩上,看哈工大美女老师的课程学的。
非要看龙书,从第二版第2章,"一个简单的语法制导翻译器"开始。不要看后面其它章节。反复读,反复思考。最好自己写点代码实践一下,把基础夯实。这一章学完,对编译器就有谱了。其它章节可以视为某个细分领域或阶段的深入。第2章学懂了,看其它章节就没有"虚浮"的感觉。
如果自己对写代码没有思路,或者想参考一下别人的成果,不要上来就干LLVM、GCC。几百万行代码,伤不起。建议参考一个相对简单的C编译器——ucc编译器。这个编译器,一万多行代码就搞定了,能完成自举,还有一次为基础的教材。简直是学习利器,值得强力安利。
自制编译器正式命名为qcc。
最近花时间学习了龙书的词法分析,用自制编译器支持的类python语言实现了一个DFA,用于匹配正则表达式。这是自动词法分析的基础。搞完之后词法分析算是通透了。
目前正在学习语法分析。已经看到自顶向下的语法分析。计划依此理论实现一个自动语法分析器。后面还有自底向上的语法分析没看。
ucc链接:GitHub - sheisc/ucc162.3: A lightweight open-source C compiler for research and education.
内含pdf教材。
我本人正在学习和编(抄)写的一个编译器:p4c-pc: P4语言编译器
目前还处于初级阶段。编写过程记录在我的另一个帖子里:https://mp.csdn.net/mp_blog/creation/editor/130257671
编译器学习方法与路线相关推荐
- Java入门的学习方法及路线
两个方面来讲 关于学习方法方面 关于学习的教程方面 学习方法 1 "温故知新,三省吾身" 虽然古人云,书读百遍其义自见,但不断重复的阅读书籍,敲出一样的「Hello World」, ...
- C++以及java学习方法和路线
之前因为写了一篇博客如何学习C++,讲解的不够全面,今天这篇主要是对上一篇的补充,学习C++的路线和方法,当然,也包括java; 在正式内容开始之前,我想谈谈我对学习的看法和建议,学习编程语言是从0到 ...
- 结合大学四年经验,带你揭秘高效自学Java的方法和路线(从认识、方法、反馈3个角度出发)
首发公众号:bigsai 收藏不是真支持,点赞.关注三连才是真支持! 前言 大家好,我是bigsai 好久不见,甚是想念,文章同时收录在回车课堂.本文就自学Java的n个问题和n个方法做出一些建议,并 ...
- 陈天奇:深度学习编译技术的现状和未来
https://www.toutiao.com/a6690418726631637512/ 2019-05-13 16:03:04 传统的深度学习框架采用人工优化算子,然后建立运行时图解释器来解决内存 ...
- 零基础可以学python吗-零基础可以学会python吗?python好学吗?
一.编程零基础可以学会python吗? 首先我要说Python是一种解释型语言:这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言. Python是交互式语言:这意味着,您可以在一个Py ...
- python3爬虫入门教程-Python3爬虫学习入门教程
本文实例讲述了Python3爬虫相关入门知识.分享给大家供大家参考,具体如下: 在网上看到大多数爬虫教程都是Python2的,但Python3才是未来的趋势,许多初学者看了Python2的教程学Pyt ...
- 【杂谈】有三AI-CV春季划有用吗,听听他们的分享
有三AI-CV春季划是言有三亲自带领的供0基础初学者学习深度学习和计算机视觉的学习计划,目前已经接近尾声,在端午节后就正式结束,假后第二天我们将推出删减版,由新的老师带领,有三本人不再负责. 关于春季 ...
- 5个让前端代码变得简洁的最佳实践
「每天一点小知识,天天学习好孩子」 欢迎来到学习章节:5个让前端代码变得简洁的最佳实践 "即使错误的代码也可以起作用.但是,如果代码不干净,则会使开发组织屈服." -罗伯特·马丁( ...
- python自学行吗-零基础可以学会python吗?python好学吗?
一.编程零基础可以学会python吗? 首先我要说Python是一种解释型语言:这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言. Python是交互式语言:这意味着,您可以在一个Py ...
最新文章
- 20180829-Java多线程编程
- matlab norm 范式
- 两个多选框(select)之间值的左右上下移动
- Android内存泄露总结
- Yii 1.1.4发布,高性能的PHP框架
- mysql log位置_MySql: log 位置
- 深入React事件系统(React点击空白部分隐藏弹出层;React阻止事件冒泡失效)
- 字符串矩阵转换成长字符串_字符串矩阵
- 百度、阿里等大厂面试技巧总结,Java工程师必看!
- java判断 图片_java判断是否为图片的步骤和方法
- h.264并行解码算法分析
- 搞科研身体才是革命的本钱。
- 计算机专业文献阅读报告,文献阅读报告范本.doc
- 串口通信简介——发展历史与基本概念
- java实现word转pdf(功能转载)(亲测验证)
- 微服务的优缺点_支付宝上的好医保长期医疗险这款保险到底怎么样?保障全面吗?有哪些优缺点?值得买吗?...
- node判断文件是否为加密文件
- 软件系统产品信息安全功能点要求
- 攻防世界 misc 高手区 Miscellaneous-300
- 404服务器错误的讲解