第二章:Rust 及其生态系统简介

Rust 编程语言由 Mozilla 赞助, 并得到来自全球各地的开发人员社区的支持。Rust 被提升为一种系统编程语言, 它支持自动内存管理, 而无需运行时或垃圾收集器的开销, 不需要编译器强制执行的数据竞争, 以及零成本抽象和泛型。在后面的部分中, 我们将更详细地讨论这些功能。Rust 是静态类型化的, 并借用了许多函数编程的想法。Rust 的一个迷人方面是使用类型系统来保证内存安全, 而无需使用运行时。这使得 Rust 特别适用于低资源嵌入式设备和实时系统, 这需要围绕代码正确性提供强有力的保证。反过来说, 这通常意味着编译器必须做更多的工作来确保语法的正确性, 然后转换源代码, 从而获得更高的生成时间。虽然社区正在研究尽可能缩短编译时间的方法, 但这仍然是很多开发者遇到的一个重要问题。

The Low Level Virtual Machine(LLVM) 项目最初是一个大学研究项目, 旨在开发一组用于构建编译器的工具, 这些编译器可以为一系列 CPU 体系结构生成计算机代码。这是使用 LLVM intermediate representation (LLVM IR) 实现的。工具链可以将任何更高级别的语言编译为 LLVM IR, 然后将其定位到给定的 CPU 。Rust 编译器在很大程度上依赖于 LLVM 项目的互操作性, 将其用作后端。它实际上将 Rust 代码转换为 LLVM 的中间表示形式, 并根据需要对其进行优化。然后 LLVM 将其转换为特定平台的计算机代码, 该代码在 CPU 上运行。

在本章中, 我们将介绍以下主题:

  • 介绍生态系统和 Rust 是如何工作的
  • 安装 Rust 和设置工具链
  • 介绍了它的主要特点, 从借用检查器开始, 所有权是如何工作的
  • 泛型和特征系统如何与所有权模型一起工作
  • 错误处理和宏系统
  • 简单的并发
  • 简单的测试

请注意, 本章是对语言及其一些最显著特征的非常高级的概述, 而不是深入的介绍。