用Rust从零构建你自己的编程语言、挑战编程的核心难题、玩转编程语言 Ruckus

广告也精彩

ruckus

在这个为期4天的项目课程中,我们的目标是使用Rust实现一种小型编程语言的核心部分。开始时,它看起来并不是很难,但很快我们会进入递归、借用和可变性地狱的第9层。更糟糕的是,我们可能会开始怀疑之前对于Python等“新手友好”语言的认知。找到解决这一团乱麻的方法似乎是可能的,但这可能需要一种初学者的心态和更深层面的领悟。文章源自cg资源站-https://www.cgzyw.com/69104.html

如何与学习Rust相关联 如果你打算学习Rust,很容易将注意力集中在像语法、内置数据类型、函数、结构等表面问题上,这些都是你认为从其他编程语言中已经“知道”的东西。然而,随着深入,你会意识到Rust与你习惯的东西相当不同。当借用检查器第100次查看你的修改代码并说“不”时,你可能会低声咒骂。文章源自CG资源站-https://www.cgzyw.com/69104.html

本课程通过从“编程语言”项目的视角出发来解决Rust的问题。如果Rust真的如此不同,你会怎么去发现呢?可以说,构建一种编程语言会直接切入问题的核心。文章源自CG资源站-https://www.cgzyw.com/69104.html

预期内容 首先,本项目的主要目标是提高你的Rust编程能力。课程开始时会介绍一些关于结构体、枚举和模式匹配的基础知识。然而,本课程的真正核心在于实现更高级功能(如可变数据结构和高阶函数)时遇到的一些挑战——这涉及到所有权、对象关系和可变性的一系列复杂混合问题。文章源自CG资源站-https://www.cgzyw.com/69104.html

课程的后半部分将进一步扩展到一些高级Rust主题,包括宏、与非安全代码的工作以及Rust与外部库的集成。文章源自CG资源站-https://www.cgzyw.com/69104.html

讽刺的是,本课程并不涵盖编写解析器这一常见话题。理解Rust与其说是了解其表面语法或花一天时间摆弄字符串处理,不如说是要深入理解其内部机制。因此,我们不会在这方面花费时间。这并不是说字符串处理不重要——只是我们宁愿把时间花在更疯狂的事情上。文章源自CG资源站-https://www.cgzyw.com/69104.html

目标受众 本课程面向那些想要深入一个小项目,直面学习Rust相关的重大困难(特别是围绕数据结构、所有权、借用检查器和可变性处理)的程序员。你不必要成为Rust专家,但如果你已经做过一些Rust编程或完成了一个入门教程,这个项目将会轻松许多。文章源自CG资源站-https://www.cgzyw.com/69104.html

告别新手友好,拥抱Rust的复杂之美—通过构建解释器深入理解数据结构、所有权及更多编程精髓。文章源自CG资源站-https://www.cgzyw.com/69104.html

课程描述
在大学的编程语言课程中,一个常见的项目是实现一种小型编程语言的核心部分,这种语言具有与大多数现实世界编程语言相同的语义特性。这通常包括:文章源自CG资源站-https://www.cgzyw.com/69104.html

数学表达式的求值
作用域内的可变变量
高阶函数
可变数据结构
错误处理
内存管理(垃圾回收)
类型
对象
语法转换(宏)
为了实现拥有这些特性的语言,和蔼的教授可能会让学生使用适合此任务的编程语言,比如Racket。当然,你可以这样做。但是,也许这一切都需要更“响亮”一些——就像通过久置在车库里的生锈扩音器播放电吉他所发出的嘈杂声一样。等等,我刚才是不是说了“生锈”?哦对,那就是我们要用的语言!文章源自CG资源站-https://www.cgzyw.com/69104.html

为什么? 实现一个小解释器实际上是学习一门新编程语言的一个非常好的小项目。原因如下:

它让你思考编程语言本身。
项目不大,不需要任何依赖。
涉及一些常见的数据结构,如列表和树。
涉及数据之间的各种棘手关系。
学到的知识普遍适用于所有编程语言。
当完成后看到成果是很酷的。
个人笔记:大约7年前当我第一次尝试学习Rust时,我尝试实现一个小解释器,结果发现由于我对实际情况缺乏正确的心理模型,这比我想象中的要困难得多。我认为Ruckus项目是一种高度集中的方式,可以探索一些核心概念,如果你曾经在学习Rust时遇到过困难,这将有助于加深你对Rust的理解。

分 辨 率:高清1366×654 配套课件+中文字幕
语言字幕:英语发音,精翻中文字幕
大 小:3.32 GB
下载方式:百度网盘

资源下载
仅限VIP下载
网盘链接失效,客服QQ:2995738052,本网站压缩包解压需要密码统一是:www.cgzyw.com

版权声明:资源来源于互联网收集整理,仅供学习交流,如果喜欢请支持正版。
本站仅作为资源信息收集站点,无法保证资源的可用及完整性,不提供任何资源安装使用及技术服务。请自己研究文档

广告也精彩
 

发表评论