前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Rust日报】Rust不仅仅是内存安全

【Rust日报】Rust不仅仅是内存安全

作者头像
MikeLoveRust
发布2024-06-07 20:59:49
1670
发布2024-06-07 20:59:49
举报
文章被收录于专栏:Rust语言学习交流

Rust不仅仅是内存安全

目前关于Rust的讨论大多集中在内存安全上,如何比C/C++/Zig/Go等语言更安全。虽然这是真的,但我认为语言的核心在于正确性。

正确性 vs 内存安全

在形式语言理论中,规则必须精确匹配想要包含在语言中的内容。如果语法规则允许未定义语义的词进入语言,那这就是个问题。 以C语言为例,当解引用NULL指针时,会发生未定义行为,而非直接报错。这是C语言的重大缺陷,因为未定义行为可能导致不可预测的结果。相比之下,Rust通过借用检查器(borrow checker),静态保证所有引用都指向有效内存,使得不可能构造出NULL引用的程序。

语言设计与实现

许多现代编程语言通过引入运行时异常系统来处理错误,但这仍然使代码难以推理。Rust语言的设计则是通过静态类型系统、Option类型替代NULL、Result类型处理错误等,确保程序更易于编写正确的软件。

Rust的优势

Rust的最大优势在于其专注于程序的正确性。即使不考虑内存安全,Rust也因为其设计的正确性而优于C,让程序更可靠。Rust不仅提供了高效、无垃圾回收的性能,还具备良好的开发体验,适用于编写异步和多线程程序。

结论

尽管Rust带来了许多附加的好处,比如高性能和良好的开发体验,但其核心价值在于帮助程序员编写更正确、更可靠的软件。通过Rust,我们可以迈向更高质量的软件工程。

原文链接 https://o-santi.github.io/blog/rust-is-not-about-memory-safety/

借用检查器

这篇文章提出了四步改进Rust借用检查器的路线图,旨在使其更加符合Rust的精神并扩大其适用范围。

  1. 条件性返回引用:“Polonius” 使用Polonius算法解决当前借用检查器无法处理的条件性返回引用问题。
  2. 基于位置的生命周期语法 引入基于位置表达式的显式生命周期语法,简化生命周期参数的使用,使代码更易于理解和学习。
  3. 视图类型和跨过程借用 允许函数声明访问的字段,解决迭代对象内部多个字段时的借用冲突问题,并支持阶段性初始化结构体。 内部引用
  4. 支持结构体字段引用其他字段的数据,简化数据管理模式,并提高代码的灵活性和可维护性。

这些改进将使Rust借用检查器更加智能和灵活,从而减少编程复杂度,增强Rust程序的可维护性和表达能力

原文链接 https://smallcultfollowing.com/babysteps/blog/2024/06/02/the-borrow-checker-within/

Rust实现云图

作者在浏览一个Discord服务器时,决定可视化每个用户的聊天记录,后来发现了Python的wordcloud包。因为对其工作原理感兴趣,并且刚开始学习Rust,所以作者用Rust重新实现了这个功能,命名为wcloud。

字云生成步骤

  • 分词:使用正则表达式将文本分割成独立的单词。
  • 计算词频:统计每个单词在文本中出现的频率。
  • 布局单词:按频率大小放置单词,避免重叠。

关键技术点

  • 处理大小写:合并不同大小写的词频,只保留最常见的格式。
  • 随机放置:避免大词总是置于顶部,通过随机选择位置优化视觉效果。
  • 掩模:使用掩模图像作为初始画布进行单词放置

img

原文链接 https://isaacdaou.st/blog/forming-clouds/

BugStalker: 现代调试器

BugStalker 是为Linux x86-64平台设计的现代调试器。使用Rust语言编写,专为Rust程序提供支持。

img

github 地址 https://github.com/godzie44/BugStalker

--

From 日报小组 BobQ, FBI小白

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Rust不仅仅是内存安全
  • 借用检查器
  • Rust实现云图
  • BugStalker: 现代调试器
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档