使用 LLVM 的编程语言

编程语言的实用方法

讲师:Dmitry Soshnikov

口袋资源独家Udemy付费课程独家中英文字幕配套资料齐全!

不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。

你将会学到的

  • LLVM 编译器基础设施
  • LLVM 前端
  • 使用 LLVM 创建自己的编程语言
  • OOP:编译类
  • 函数式编程:Lambda 函数和闭包
  • 分支指令和控制流程
  • LLVM 和
  • 代码生成

要求

  • 基本 C++ 经验(必需)
  • “从头开始构建解释器”课程(推荐)
  • “构建虚拟机”课程(可选)

说明

课程大纲

编程语言的底层是如何工作的?编译器解释器有什么区别?什么是虚拟机JIT 编译器函数式编程和命令式编程之间有什么区别?

在实现编程语言时有很多问题!

学校中“编译器课程”的问题在于,此类课程通常被呈现为一些“核心火箭科学”,仅适用于高级工程师。

此外,经典的编译器书籍从最不重要的主题(例如词法分析)开始,直接深入到形式语法的理论方面。当实现第一个 Tokenizer 模块时,学生们就会对这个主题失去兴趣,而没有机会真正开始实现编程语言本身。所有这一切都蔓延到了整个学期的分词器和 BNF 语法,而没有理解编程语言的实际语义

我相信我们应该能够在 4-6 小时内构建并理解完整的端到端编程语言语义- 内容开门见山,在现场编码会议中以结对编程的形式展示,并在可以理解的方式。

LLVM 编程语言课程中,我们专注于将我们的语言编译为LLVM IR,并构建较低级别的编程语言。通过与LLVM 编译器基础架构级别密切合作,您将了解较低级别的编译和生产级别语言(例如 C++、Rust 等)目前是如何工作的。

实现一门编程语言也会让你在其他编程语言上的实践水平更加专业。

先决条件

本课程有三个先决条件。

LLVM 编程语言课程是之前课程的自然延伸——从头开始构建解释器(又名解释基础),其中我们还构建了一种完整的编程语言,但处于更高的 AST 级别,并且还构建了虚拟语言机。除非您已经了解编程语言在这个级别上如何工作,即什么是 eval、闭包作用域环境和其他构造,否则您必须将解释器类作为先决条件。

此外,对于生产语言所在的较低(位码/IR)级别,我们需要具有基本的 C++ 经验。然而,此类与 C++无关,因此我们仅使用非常基本(并且可转移)到其他语言的构造。

这门课适合谁?

本课程适合任何好奇的工程师,他们希望获得构建复杂系统的技能(构建编程语言是一项高级工程任务!),并获得构建此类系统的可转移知识。

如果您对 LLVM、其编译器基础结构以及如何构建自己的语言特别感兴趣,那么本课程也适合您。

用于实现什么?

由于低级编译器注重性能,因此它们通常用低级语言(例如 C 或 C++)实现。这正是我们所使用的,但主要是 C++ 的基本功能,不会分散 C++ 细节的注意力。代码应该能够轻松转换和移植到任何其他语言,例如 Rust 甚至更高级的语言,例如 Python。使用 C++ 还可以更轻松地实现进一步的 JIT 编译器。

注意:我们希望我们的学生能够真正遵循、理解和实现 LLVM 编译器的每个细节,而不是仅仅从最终解决方案中复制粘贴。尽管视频讲座中提供了该语言的完整源代码,但该项目的代码存储库包含/* Implement here */作业,学生必须解决这些作业。

这堂课有什么具体内容?

这些讲座的主要特点是:

  • 简洁明了,开门见山。每场讲座都是自给自足、简洁的,描述与主题直接相关的信息,不会分散无关材料或演讲的注意力。
  • 动画演示实时编辑笔记相结合。这使得主题的理解变得更容易,并显示了对象结构是如何连接的。静态幻灯片根本不适用于复杂的内容。
  • 端到端的实时编码会话和作业。视频讲座中提供了从头开始直到最后的完整源代码

课程内容是什么?

课程分为四个部分,共20讲,每讲还有多个子主题。以下是目录和课程表

第 1 部分:LLVM 基本构造

在这一部分中,我们描述编译和解释管道,开始构建我们的语言。讨论了 LLVM IR、对象、位码编译等主题。

第 2 部分:函数和堆栈

在这一部分中,我们实现控制流结构,例如 if 表达式和 while 循环,讨论堆栈变量、嵌套块和局部变量,以及编译函数。

第 3 部分:面向对象编程

在这一部分中,我们将实现 OOP 概念,例如类、实例,讨论堆分配和垃圾收集器。

第 4 部分:高阶函数

在这一部分中,我们重点关注闭包、函数式编程、lambda 函数,并实现最终的可执行文件。

此课程面向哪些人:

  • 编译工程师
  • 对编程语言感兴趣的好奇工程师
  • 想要从头开始构建编程语言的开发人员

发表回复

后才能评论

  • 每一个课程页面,都有演示地址选项,点击链接可以跳转到课程发布网站查看详细课程列表。
  • 绝大部分课程都有试看内容,可以先点击试看,再决定是否购买。
  • 本站课程均存储在阿里云盘或百度网盘中,由于阿里云盘对分享的文件类型有限制,所以课程资料和字幕会存储到蓝奏云盘中。
  • 阿里云盘和蓝奏云盘都是不限速下载的,你既可以选择在阿里云盘中在线学习,也可以选择下载到本地学习。
  • 课程下载到本地可以挂载中英文双字幕,请点击查看Potplayer挂载中英文双字幕教程
  • 本站所有课程,均提供mp4格式视频文件,中英文双字幕,配套资料齐全,不加密。
  • 每一个课程右侧下载面板中,都会有清晰度标识,大部分都是1080P或者720P,还有少数是超高清的。
  • 本站课程购买之后,均可以免费更新,所有课程,皆配有中文字幕。
  • 请注意,课程的中文字幕是根据英文字幕用谷歌翻译生成的,本非人工翻译。谷歌翻译准确度尚可,学习观看,没有问题。
  • 由于数字资源具有可复制性,一旦购买,不接受退款要求,请在购买之前,认真了解课程内容,确定是否需要。
  • 当然,如果有特殊情况,可以查看网站底部联系方式,联系站长说明问题,我会为你妥善处理。
  • 赞助本站VIP会员,可以免费下载所有课程,详情请查看VIP介绍