如果要找C++项目,在Github上可以找到数不胜数的项目。
但是,如果要把范围限定在“练手”,这就对项目有了更多的要求。
不能太难、也不能太简单,此外,还要系统成体系,便于学习者循序渐进的接收,同时还能够学到全面而系统的知识,从而达到一种提升的作用。
由于我每周都要分享《DevWeekly》系列文章,所以每天都会花费大量时间再Github上,在这个过程中接触过数不胜数的项目。
今天,就从中抽取出几个非常适合练手的C++项目!
1. 用LLVM实现一种编程语言
LLVM是一个编译器框架,这个项目就展示了如何在C++中使用LLVM组件实现一个名为Kaleidoscope的简单编程语言。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
它包含如下部分:
- Kaleidoscope介绍和Lexer
- 实现解析器和AST
- 代码生成到LLVM IR
- 添加JIT和优化器支持
- 控制流
- 用户定义的操作符
- 可变的变量
- 编译成目标代码
- 添加调试信息
2. 高性能的矩阵乘法
编辑切换为居中
添加图片注释,不超过 140 字(可选)
这是一个比较小的项目,解释了如何在现代处理器上编写一个高性能的矩阵乘法程序。
3. 从零开始实现《太空入侵者》游戏
编辑
添加图片注释,不超过 140 字(可选)
这个项目包含了5部分,介绍了如何利用C++实现一款名为《太空入侵者》的游戏,循序渐进,由浅入深。
- Part 1
- Part 2
- Part 3
- Part 4
- Part 5
4. 俄罗斯方块
编辑切换为居中
添加图片注释,不超过 140 字(可选)
在这个项目中,将学习如何使用简单而干净的C++语言从头开始创建一个俄罗斯方块游戏。
项目简单明了,从头至尾也只需要花费一到两个小时的时间,这是为初学者准备的完美教程。
5. 编写一个Linux调试器
调试器是任何开发人员工具包中最有价值的工具之一。
然而,尽管这些工具被广泛使用,但并没有很多资源告诉你它们是如何工作的,以及如何编写一个调试器。
在本系列文章中,可以学习调试器的工作原理,并为调试Linux程序编写一个调试器。
- Part 1: Setup
- Part 2: Breakpoints
- Part 3: Registers and memory
- Part 4: Elves and dwarves
- Part 5: Source and signals
- Part 6: Source-level stepping
- Part 7: Source-level breakpoints
- Part 8: Stack unwinding
- Part 9: Handling variables
- Part 10: Advanced topics
6. 开发一款编译器
提到编译器、解释器,都不陌生。
编程开发中必不可少的东西,那么编译器是如何工作的?以及如何实现一款编译器?
和前面开发调试器一样,让我们从一个使用者的角度切换到开发者的角度,去剖析它背后的原理,不仅能够锻炼C++开发能力,而且能够更加深入的理解编译器的原理。
- Part 1: Introduction, selecting a language, and doing some planning
- Part 2: A lexer
- Part 3: A parser
- Part 4: Testing
- Part 5: A code generator
- Part 6: Input and output
- Part 7: Arrays
- Part 8: Strings, forward references, and conclusion
我一向人为,授人以鱼,不如授人以渔。项目数不胜数,但是好的项目也在不断推陈出新。
正是因为如此,我每周都会特意花费很多时间去寻找优质的开源项目,其中包括但不限于Python、Java、C/C++、Go、JavaScript。除此之外,还会分享开源的工具资源、优质技术文章,每周五定期更新,欢迎大家star并收藏:
https://github.com/Jackpopc/DevWeekly
到此这篇学习 C++ 编程,怎么才能找到合适的练手项目?的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/596.html