Programming Languages Part A Section1 翻译
这里对Section 1进行翻译。
课程主页:
https://www.coursera.org/learn/programming-languages/home
B站搬运:
https://www.bilibili.com/video/BV1dL411j7L7
Coursera编程语言课程 第1节总结标准说明:本总结涵盖的材料与课堂视频以及随视频发布的材料(幻灯片、代码)大致相同。它有助于以叙述的方式阅读材料,并将整个课程部分的材料放在一份文件中,特别是在以后复习材料时。请在讨论区上报告这些笔记中的错误。
目录
欢迎使用编程语言
ML表达式和变量绑定
使用use
变量是不可改变的(Immutable)
函数绑定
Pairs和其他元组
列表
Let表达式
Options
一些其他表达式和运算符
缺乏突变(Mutation)和突变的好处
程序设计语言的各个部分
欢迎来到《程序设计语言》(也可参见课程网页上关于课程结构、作业、评分、软件安装等的介绍性材料。这些材料在此不再重复。)
一门名为”编程语言”的课程可能意味着许多不同的事情。对我们来说,这意味着有机会学习几乎每种编程语言中以某种 ...
CS144 Lab3
这里回顾CS 144 Lab 3: the TCP sender。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
Lab 3: the TCP sender准备工作下载代码以及跑通流程git checkout -b lab3-startercode
git fetch
git merge origin/lab3-startercode
make -j4 && make check_lab3
说明
为了模块化,增加了Timer类。
整体思路是发送数据,然后判断是否要重传。
SYN, FIN对应的负载长度为0。
ack n表示序号n之前的都收到。
代码Timer实现 Timer类,方便后续使用:
class Timer {
private:
// 是否过期
bool _expire ...
CS144 Lab3翻译
这里给出CS 144 Lab 3: the TCP sender的翻译。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
实验3:TCP发送方0. 合作政策编程作业必须是你自己的工作:你必须编写你为编程作业提交的所有代码,但我们作为作业的一部分提供给你的代码除外。请不要复制和粘贴来自StackOverflow,GitHub或其他来源的代码。如果你的代码基于你在网上或其他地方找到的样例,请在提交的源代码中的注释中引用URL。
与他人合作:你不能把你的代码给别人看,也不能看别人的代码,更不能看往年的解决方案。你可以与其他学生讨论作业,但不要抄袭任何人的代码。如果你与其他学生讨论作业,请在你提交的源代码中的注释中列出他们的姓名。请参阅课程管理讲义了解更多详细信息,如果有任何不清楚的地方,请在Piazza上询问。
Piazza:请随时在Piazza上提问 ...
MIT 6.S081 Operating System Enginerring Lab6 Copy-on-Write
这里给出Lab6 Copy-on-Write的解析。
学习资料:
https://pdos.csail.mit.edu/6.828/2020/schedule.html
https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/
https://th0ar.gitbooks.io/xv6-chinese/content/
https://www.bilibili.com/video/BV19k4y1C7kA?p=6
参考资料:
https://github.com/PKUFlyingPig/MIT6.S081-2020fall/blob/master/reports/COW.md
https://fanxiao.tech/posts/MIT-6S081-notes/
https://www.bilibili.com/video/BV19k4y1C7kA?p=11
Implement copy-on write(hard)注意点
需要增加记录应用次数的数组;
只有当引用计数为0时,才能真正free;
注意设置fl ...
CS144 Lab2
这里回顾CS 144 Lab 2: the TCP receiver。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
Lab 2: the TCP receiver准备工作下载代码以及跑通流程git checkout -b lab2-startercode
git fetch
git merge origin/lab2-startercode
cd build
make -j4 && make check_lab2
接口// Construct a `TCPReceiver` that will store up to `capacity` bytes
TCPReceiver(const size_t capacity); // implemented for you in .hh file
// Handle an inbo ...
CS144 Lab2翻译
这里给出CS 144 Lab 2: the TCP receiver的翻译,因为做Lab的时候发现要反复阅读讲义,但直接看英语还是有点效率过低,所以索性翻译一遍。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
实验2:TCP接收方0. 合作政策编程作业必须是你自己的工作:除了我们作为作业的一部分提供给您的代码外,您必须编写编程作业的所有代码。请不要复制和粘贴来自StackOverflow,GitHub或其他来源的代码。如果你的代码基于你在网上或其他地方找到的样例,请在提交的源代码中的注释中引用URL。
与他人合作:你不能把代码给别人看,也不能看别人的代码,更不能看往年的解决方案。你可以与其他学生讨论作业,但不要抄袭任何人的代码。如果你与其他学生讨论作业,请在你提交的源代码中的注释中列出他们的姓名。请参阅课程管理讲义以了解更多详细信息,如果有任何 ...
MIT 6.S081 Operating System Enginerring Lab5 Lazy allocation
这里给出Lab5 Lazy allocation的解析。
学习资料:
https://pdos.csail.mit.edu/6.828/2020/schedule.html
https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/
https://th0ar.gitbooks.io/xv6-chinese/content/
https://www.bilibili.com/video/BV19k4y1C7kA?p=6
参考资料:
https://github.com/PKUFlyingPig/MIT6.S081-2020fall/tree/master/reports
https://fanxiao.tech/posts/MIT-6S081-notes/
https://www.bilibili.com/video/BV19k4y1C7kA?p=6
Eliminate allocation from sbrk() (easy)修改xv6-labs-2020/kernel/sysproc.c/sys_sbrk, ...
MIT 6.S081 Operating System Enginerring Lab4 Traps
这里给出Lab4 Traps的解析。
学习资料:
https://pdos.csail.mit.edu/6.828/2020/schedule.html
https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/
https://th0ar.gitbooks.io/xv6-chinese/content/
https://www.bilibili.com/video/BV19k4y1C7kA?p=6
参考资料:
https://github.com/PKUFlyingPig/MIT6.S081-2020fall/tree/master/reports
https://fanxiao.tech/posts/MIT-6S081-notes/
https://www.bilibili.com/video/BV19k4y1C7kA?p=6
RISC-Vassembly(easy)首先运行如下命令生成call.asm:
make fs.img
哪些寄存器包含函数的参数?例如,哪个寄存器在main对printf的调用中保存 ...
CS144 Lab1
这里回顾CS 144 Lab 1: stitching substrings into a byte stream。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
参考资料:
https://blog.csdn.net/zztiger123/article/details/105544640
Lab 1: stitching substrings into a byte stream在该实验中:我们将实现一个流重组器——一个将字节流的小片段(称为子串,或段)按正确的顺序缝合成连续的字节流的模块。
准备工作下载代码以及跑通流程git clone https://gitee.com/kangyupl/sponge
git checkout -b lab1-startercode origin/lab1-startercode
mkdir bui ...
CS144 Lab0
这里回顾CS 144 Lab 0: networking warmup。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
Lab 0: networking warmup2 Networking by hand2.12telnet cs144.keithw.org http
Trying 104.196.238.229...
Connected to cs144.keithw.org.
Escape character is '^]'.
GET /hello HTTP/1.1
Host: cs144.keithw.org
HTTP/1.1 200 OK
Date: Sat, 13 Nov 2021 03:32:18 GMT
Server: Apache
Last-Modified: Thu, 13 Dec 2018 15:45:29 GMT
E ...
CS144 实验环境配置
这里给出CS 144的环境配置方式。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
参考资料:
https://web.stanford.edu/class/cs144/vm_howto/vm-howto-iso.html#install_ubuntu
https://web.stanford.edu/class/cs144/vm_howto/vm-howto-byo.html
https://kiprey.github.io/2021/11/cs144-lab0/
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://www.cnblogs.com/devilmaycry812839668/p/10351763.html
https://www.sysgeek. ...
MIT 6.S081 Operating System Enginerring Lab3 Page Tables
这里给出Lab3 Page Tables的解析。
学习资料:
https://pdos.csail.mit.edu/6.828/2020/schedule.html
https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/
https://th0ar.gitbooks.io/xv6-chinese/content/
https://www.bilibili.com/video/BV19k4y1C7kA?p=6
参考资料:
https://github.com/PKUFlyingPig/MIT6.S081-2020fall/tree/master/reports
https://fanxiao.tech/posts/MIT-6S081-notes/#38-lab-3-pgtbl
https://www.bilibili.com/video/BV19k4y1C7kA?p=6
准备工作修改测评脚本:
将
#!/usr/bin/env python
修改为:
#!/usr/bin/env python3
测试为:
. ...