码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 学习 C++ 编程,怎么才能找到合适的练手项目?


    如果要找C++项目,在Github上可以找到数不胜数的项目。

    但是,如果要把范围限定在“练手”,这就对项目有了更多的要求。

    不能太难、也不能太简单,此外,还要系统成体系,便于学习者循序渐进的接收,同时还能够学到全面而系统的知识,从而达到一种提升的作用。

    由于我每周都要分享《DevWeekly》系列文章,所以每天都会花费大量时间再Github上,在这个过程中接触过数不胜数的项目。

    今天,就从中抽取出几个非常适合练手的C++项目!

    1. 用LLVM实现一种编程语言

    LLVM是一个编译器框架,这个项目就展示了如何在C++中使用LLVM组件实现一个名为Kaleidoscope的简单编程语言。

    img

    编辑切换为居中

    添加图片注释,不超过 140 字(可选)

    它包含如下部分:

    • Kaleidoscope介绍和Lexer
    • 实现解析器和AST
    • 代码生成到LLVM IR
    • 添加JIT和优化器支持
    • 控制流
    • 用户定义的操作符
    • 可变的变量
    • 编译成目标代码
    • 添加调试信息

    2. 高性能的矩阵乘法

    img

    编辑切换为居中

    添加图片注释,不超过 140 字(可选)

    这是一个比较小的项目,解释了如何在现代处理器上编写一个高性能的矩阵乘法程序。

    3. 从零开始实现《太空入侵者》游戏

    img

    编辑

    添加图片注释,不超过 140 字(可选)

    这个项目包含了5部分,介绍了如何利用C++实现一款名为《太空入侵者》的游戏,循序渐进,由浅入深。

    • Part 1
    • Part 2
    • Part 3
    • Part 4
    • Part 5

    4. 俄罗斯方块

    img

    编辑切换为居中

    添加图片注释,不超过 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

  • 相关阅读:
    GE WES5120 5120-1506 自动化控制模块
    gun ld bug
    OpenCV6-图形绘制
    XMind 桌面版新手指南
    【评论送书】十本架构师成长和软件架构技术相关的好书(可以任选)
    codeforces:C. George and Job【二维dp + 前j个选i组双变量类型 + 选or不选】
    OOALV总结
    美国FBA海运专线究竟是什么?美国fba海运专线都有那些?
    3、排序与分页&多表查询 -mysql
    硬盘格式化后能恢复数据吗?试试这两个数据恢复秘典
  • 原文地址:https://blog.csdn.net/jakpopc/article/details/126445039
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号