Coder Social home page Coder Social logo

cs110l-2020spr's Introduction

CS110L Spring 2020: Safety in Systems Programming

课程简介

CS110L将带领我们学习 Rust ,这是一门注重 安全、性能、工程 的语言。

  1. Why Rust?

    1. 我的浅显理解是:Rust 被设计出来旨在解决目前系统编程的困难,其特征 “安全、性能、工程” 也是应系统编程的需求而来。在事实上挑战了 C 的地位,Rust 试图在拥有媲美 C 的性能的同时改善 C 在安全、工程上的不足。
    2. 更详细的回答1(by Rust语言圣经)
    3. 更详细的回答2(by Rust程序设计语言)
  2. For Who?

    • For everyone. 别质疑,先学习!

参考资料

  1. 2020版本 课程官网
  2. 2022版本 课程官网
  3. Rust 程序设计语言
  4. Rust 语言圣经
  5. Rust 异步编程
  6. PKUFlyingPig 代码实现

作业&项目

  1. Exercises 1: Hello world
  2. Exercises 2: Ownership and structs
  3. Exercises 3: Error handling, I/O, and traits
  4. Exercises 4: Farm meets multithreading
  5. Exercises 5: Sharing Data by Communicating
  6. Project 1: The DEET Debugger
  7. Project 2: Balancebeam

一些说明

  1. 当我2022年11月计划学习 Rust 并从 CS自学指南 发现本课程时,Thea Rossman 的 2022版本CS110L 似乎把代码库设为仅选修该课程的本校同学可见,并且没有公开课程视频。所以我们仍关注 Ryan Eberhardt & Armin Namavari 的 2020版本CS110L 。二者稍有区别但对 Rust 学习不会产生实质影响:
    • 课程内容稍有改动,涉及课程讲义、作业和项目,但仅是细节处的优化。二者可对比参照。
    • Rust 在近几年快速演进,2020版本的项目所使用的库可能过于老旧而不再支持。可以预见的是 Rust 及 Rust 库会持续更新,如果 CS110L 继续闭源,是时可参考 Project-1 适配说明Project-2 适配说明 而自行适配。
    • 感谢 @ridethepig 于2023.03.08所做的适配工作,补全了 project-1 在之前未能适配的部分。
  2. Rust库适配过程本质上是API查阅的过程,我通常的做法是:
    1. cargo check/cargo build 查看并分析错误( Rust 编译器也是重要的学习工具)
    2. lib.rscrates.io 上搜索库并查看版本更新、库简介、使用说明、库特征等。
    3. 在API文档中查找所需要的API,并可以与旧版API进行比较(不由得感叹 Rust 的文档用起来太舒服了~)。

写在最后

  1. Rust以学习曲线陡峭著称,不可否认,但也不必担心。我想,除了语言开发团队在语言的各种特性上的取舍与平衡,我们使用者也在付出和获得间取得平衡——更多的付出与更好的代码。
  2. “Linux合入Rust代码”已证明其能力,拭目以待 Rust 生态的发展 :)

cs110l-2020spr's People

Contributors

fung-hwang avatar reberhardt7 avatar trstruth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

cs110l-2020spr's Issues

Project2-适配说明标题有误

貌似是忘记更改Project1的题目,其实无伤大雅,望有空随手更正~

image

BTW:非常感谢您的适配分享!他对我的帮助非常大!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.