1.Rust简介及如何实现跨平台执行

本文介绍了Rust语言,一种追求安全、并发和性能的系统级编程语言。Rust通过所有权系统、借用和生命周期实现内存安全,避免了C/C++中的未定义行为。此外,Rust的零成本抽象保证了编译期的高性能。文章还讨论了Rust的实用性和如何通过LLVM实现跨平台编译,包括MIR在编译和优化中的作用。

一、Rust简介

Rust语言至今已经成为了一门同时追求安全、并发和性能的现代系统级编程语言。

为了打成目标,Rust语言遵循了以下三条设计原则:

  • 内存安全

    一般来说,一门语言只要保证类型安全,就可以说它是一门安全的语言。简单来说,类型安全是指类型系统可以保证程序的行为是意义明确、不出错的。C/C++语言的类型系统就不是类型安全的,因为他们并没有对无意义的行为进行约束。简单的例子就是数组越界。C/C++并不对其做任何检查,导致发生了语言规范规定之外的行为,也就是未定义行为(Undefined Behavior)

    Rust语言如果想保证内存安全,首先要做的就是保证类型安全,其中所有权系统、借用和生命周期起主要作用,详细介绍后面会补充

  • 零成本抽象

关于抽象表达能力,Ruby是最具有代表性的语言,但是Ruby的抽象能力完全是靠牺牲性能换来的,而Rust的抽象并不会存在运行时性能开销,这一切都是在编译期完成的。Rust零成本抽象的基石就是泛型和trait,后面会逐步揭开。

  • 实用性

评价一门语言的实用性,可以从以下三个方面进行评价:

1.实践性

2.有益性

3.稳定性

这三者对于Rust而言,都做足了准备。

 

二、Rust如何实现跨平台

 

        重点讲一下Rust如何实现跨平台语言,这一点大家也可以与Java进行对比。

Rust跨平台得益于LLVM,Rust编译器是一个LLVM编译前端,它将代码编译为LLVM IR,然后经过LLVM编译为相应的平台目标。

 

        Rust 源码经过分词和解析,生成 AST (抽象语法树 然后把 AST 步简化处理为HIR CHigh-level IR),目的是让编译器更方便地做类型检 查。 HIR 会进一步被编译为 MIR(MiddleIR),这种中间表示,它在 Rustl.12版本中被引入, 要用于以下目的

  • 缩短编译时间 MIR 可以帮助实现增量编译,当你修改完代码重新编译的时候 编译 器只 算更改过的部分,从而缩短了编译时间

  • 缩短执行时间 MIR 可以 LLVM 译之前实现更细粒度的优 化,因为 单纯依赖 LLVM 优化粒太粗,而且 Rust无法控制,引入 MIR就增加了更的优化空间

  • 更精确的类型检查 MIR 将帮助实现更灵活的借用检查,从而可以提升 Rust 的使用 体验

终, MIR 会被翻 LLVM IR 然后被 LLVM 的处理编译为能在各个平台上运行的 目标机器码

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格赚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值