码农知识堂 - 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

  • 相关阅读:
    【Midjourney入门教程4】与AI对话,写好prompt的必会方法
    C算法:输入一个数n,输出1到n之间所有的质数
    面试经典150题——Day20
    Spring系列之基本配置简介说明
    Maven 私服 Nexus3
    Python从零基础入门到精通:一个月就够了
    Pixel3系统提取镜像备份并还原到另一台手机
    协议-SSL协议-基础概念01-SSL位置-协议套件-握手和加密过程-对比ipsec
    DES算法子密钥的生成过程
    基于 ACK Fluid 的混合云优化数据访问(三):加速第三方存储的读访问,降本增效并行
  • 原文地址:https://blog.csdn.net/jakpopc/article/details/126445039
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号