尝试用RUST写教学操作系统尝试用RUST写教学操作系统 向勇、陈渝 清华大学计算机系 20181123 ## 背景 - 用什么语言写操作系统? - 汇编 - C - C++ - GO - RUST - ... ## 此题未设答案 各位老师所教的课程信息统计 A 计算机组成原理 B 编译原理 C 操作系统 D 其他 提交 ## 面临的问题 ## • 教学的要求 - 简洁 简洁 • 实验环境:Nachos、XV6、ucore • CPU: X86、MIPS、ARM、RISC-V · 语言:汇编、C、… - 真实 • QEMU、开发板、真实系统 - 开放 • 树莓派、Edison、FPGA ## 已有的尝试 • 用C语言写OS – MIT 6.828 — Harvard cs161 – Stanford cs140/140e – Univ. of edu/class/cs140e/ ## 内核开发需要的程序设计语言  Yu Zhang, Foundation of PLs, CSEW'18· Beijing ## 我们的尝试-教学操作系统ucore  # Python 与高中技术课程教学 Python and TechCurriculum in High School Education 以声音制造为例 An case study in sound production 罗丹 Dan Dan Luo 北大附中技术与艺术中心 Email: luodan@i.pkuschool.edu.cn 目录 CONTENTS >> 案例设计背景 >> 案例教学设计思路 >> Python 的角色 >> 中学STEAM课程设计思考  ## 案例教学设计思路  1. 结合教师个人经历,学校课程设计规划,教育部颁布的课程标准制定教学内容和方式 2. 融合中学主干学科知识,明确研究对象,训练学生研究性学习的能力0 码力 | 12 页 | 731.76 KB | 2 年前3
Rust 语言学习笔记## Rust 语言学习笔记 感谢 RustPrimer 和 Rust 程序设计语言简体中文版 bradyjoestar@gmail.com ## 目录 序.....7 第一章 包管理系统与版本管理工具.....9 1.1 Crate.....9 1.2 module.....11 1.2.1 module 的可见性.....11 1.2.2 .... 57 5.2.2 依赖的详细配置: ..... 58 5.2.3 自定义编译器配置 ..... 58 5.2.4 feature 段落 ..... 59 第六章 Rust 语言高级特性 ..... 61 6.1 函数式编程 ..... 61 6.1.1 闭包 ..... 61 6.1.2 闭包捕获周围环境的方式 ..... 62 6.1.3 函数指针 .. 88 6.6.3 Borrow, BorrowMut, ToOwned ..... 89 第七章 多线程与线程通信 ..... 91 7.1 线程 ..... 91 7.1.1 不同语言的线程实现 ..... 91 7.1.2 使用 spawn 创建新线程 ..... 92 7.1.3 使用 join 等待所有线程结束 ..... 92 7.1.4 线程与 move 闭包0 码力 | 117 页 | 2.24 MB | 2 年前3
Go语言基础
Golang Fundaments## Go语言基础 Golang Fundaments 中山大学 数据科学与计算学院 潘茂林 panml@mail.sysu.edu.cn ## 大纲 • Golang-设计哲学 • 基础知识学习 • Go语言的入门资源 • 本地项目工作空间组织 • 开始编程 ## Golang-设计哲学 ## 我们需要什么样的语言 曾经 我们对包含大量代码的程序印象深刻。 - 我们努力在代码库中创建大型抽象。 这是一个有效的程序吗? - 是正确的吗? - 按时完成了吗? - 花了成本(时间、空间复杂度)? 渴望成为质量、效率和简单的冠军。 • 有自己的观点。 • 重视反省和自我检讨。 ## Go语言应该是这样的 · 易于阅读代码 - 对遗存软件友好 • 心智模型 • 生产率与性能 • 正确性与性能 • 规则 • 方便代码评审 - 完整性 - 可读性 - 简单性 - 性能 • 实用主义的语言风格 - 面向编译器的静态类型语言 • 数据类型必须在编译阶段确定 • 语言能充分发挥编译优化技术 - 复古且简便的语言 • 集合了多种语言实用的语法表示 • 函数是一等公民(First-Class Functions) • 抛弃了面向对象 - 开放(几乎所有资源都在github上) ## • 语法基本特点 - C 语言的身体(语法基本类似 C 语言) – Python0 码力 | 21 页 | 851.30 KB | 2 年前3
Idris 语言文档 Version 1.3.1# 飞 Idris 语言文档 Version 1.3.1 ## Contents 1 Idris 教程 2 常见问题解答 (FAQ) 3 用 Idris 实现带有状态的系统:ST 教程 4 The Effects Tutorial 5 Theorem Proving 6 Language Reference 7 Tutorials on the Idris Language mmons.org/publicdomain/zero/1.0/deed.zh Idris 教程 本文档为 Idris 的教程,它简单介绍了如何用 Idris 语言编程。文档中覆盖了该语言的核心特性,并假定你至少熟悉一门函数式编程语言,如 Haskell 或 OCaml。 注解:Idris 文档已按照 创作共用 CC0 许可协议 发布。因此根据法律规定,Idris 社区 已放弃对 Idris 文档的所有版权以及相关或邻接的权利。 文档的所有版权以及相关或邻接的权利。 关于 CC0 的更多信息参见:https://creativecommons.org/publicdomain/zero/1.0/deed.zh ### 1.1 引言 在传统编程语言中,类型与值之间有明确的区分。例如在 Haskell 中,下面这些类型分别表示整数、字符、字符列表以及任意值的列表: • Int, Char, [Char], [a] 与此对应,下面这些值分别为上述类型的成员:0 码力 | 224 页 | 2.06 MB | 2 年前3
PlantUML 1.2021.3 语言参考指引绘制的 UML  PlantUML 语言参考指引 (Version 1.2021.2) PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 类图 • 对象图 · 活动图 · 组件图 · 部署图 • 架构图 规范和描述语言 (SDL) - 规范和描述语言 (SDL) • Ditaa diagram 甘特图 • MindMap diagram • Work Breakdown Structure diagram • 以 AsciiMath 或 JLaTeXMath 符号的数学公式 • Entity Relationship diagram 通过简单直观的语言来定义这些示意图。 ## "action 2" endif a3 --> if "last test" then --> "action 7" else PlantUML 语言参考指引 (1.2021.2) -> "action 8" endif @enduml  PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 类图 • 对象图 · 活动图 · 组件图 · 部署图 • 状态图 • 定时图 同时还支持以下非 UML 图: • JSON Data • Network diagram (nwd) · 线框图形界面 • 架构图 规范和描述语言 (SDL) (SDL) - 规范和描述语言 (SDL) • Ditaa diagram 甘特图 • MindMap diagram • Work Breakdown Structure diagram • 以 AsciiMath 或 JLaTeXMath 符号的数学公式 • Entity Relationship diagram 通过简单直观的语言来定义这些示意图。 ## 1 时序图 ### 1.1 "activity 2" endif a3 --> if "last test" then --> "activity 7" else PlantUML 语言参考指引 (1.2021.1) -> "activity 8" endif @enduml  PlantUML 语言参考指引 (Version 1.2020.22) PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 · 类图 · 活动图 · 组件图 · 状态图 · 对象图 · 部署图 · 定时图 同时还支持以下非 UML 图: • JSON Data · 线框图形界面 • 架构图 • 规范和描述语言 (SDL) • Ditaa • MindMap diagram • Work Breakdown Structure diagram • 以 AsciiMath 或 JLaTeX Math 符号的数学公式 通过简单直观的语言来定义这些示意图。 ## 1 时序图 ### 1.1 简单示例 你可以用 -> 来绘制参与者之间传递的消息,而不必显式地声明参与者。 你也可以使用 --> 绘制一个虚线箭头。 另外,你还能用 @enduml  ### 5.18 特殊领域语言 (SDL) 通过修改活动标签最后的分号分隔符 (;),可以为活动设置不同的形状。 • | • < • > • / • ] • } @startuml :Ready; :next(o)0 码力 | 295 页 | 3.08 MB | 2 年前3
PlantUML 1.2019.3 语言参考指引p1_1.jpg) PlantUML 语言参考指引 (Version 1.2019.3) PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 · 类图 · 活动图 · 组件图 ·状态图 · 对象图 · 部署图 · 定时图 同时还支持以下非 UML 图: · 线框图形界面 · 架构图 • 规范和描述语言 (SDL) • Ditaa diagram diagram · 甘特图 • 以 AsciiMath 或 JLaTeXMath 符号的数学公式通过简单直观的语言来定义这些示意图。 ## 1 时序图 ### 1.1 简单示例 你可以用 -> 来绘制参与者之间传递的消息,而不必显式地声明参与者。 你也可以使用 --> 绘制一个虚线箭头。 另外,你还能用 <- 和 <--,这不影响绘图,但可以提高可读性。注意:仅适用于时序图,对于其它示意图,规则是不同的。 -> "activity 6" endif endif else -> [false] "activity 2" endif PlantUML 语言参考指引 (1.2019.3) a3 --> if "last test" then --> "activity 7" else -->0 码力 | 157 页 | 1.78 MB | 2 年前3
PlantUML 1.2019.2 语言参考指引p1_1.jpg) PlantUML 语言参考指引 (Version 1.2019.2) PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 · 类图 · 活动图 · 组件图 ·状态图 · 对象图 · 部署图 · 定时图 同时还支持以下非 UML 图: · 线框图形界面 · 架构图 • 规范和描述语言 (SDL) • Ditaa diagram diagram · 甘特图 • 以 AsciiMath 或 JLaTeXMath 符号的数学公式通过简单直观的语言来定义这些示意图。 ## 1 时序图 ### 1.1 简单示例 你可以用 -> 来绘制参与者之间传递的消息,而不必显式地声明参与者。 你也可以使用 --> 绘制一个虚线箭头。 另外,你还能用 <- 和 <--,这不影响绘图,但可以提高可读性。注意:仅适用于时序图,对于其它示意图,规则是不同的。 ---> "activity 6" endif endif else -> [false] "activity 2" endif PlantUML 语言参考指引 (1.2019.2) a3 --> if "last test" then --> "activity 7" else -->0 码力 | 157 页 | 1.78 MB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













