Skip to content

fix: deleted semantic redundancy and other changes #53

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Nyxvectar
Copy link

纠正例如:
"由于代码逻辑本身所带有的复杂性,而不可避免地拥有复杂性" ->
"则因逻辑本身的复杂性,其调试往往依赖经验、直觉、心态和运气"
以及其他修改。

@@ -46,19 +46,19 @@

### 什么是命令式语言

不同的计算概论课程会分别介绍 Python 和 C/C++这两种语言(计概范围内的 C 与 C++ 其实可大致看成一种语言)。虽然上到设计理念下到编写细节这两种语言都有很多不同点,但其都属于命令式语言(虽然现代 C++ 以及 Python 都支持面向对象和函数式设计,但其主体还是属于命令式语言)。命令式语言的计算理论来自于**图灵机**,通过对**状态的改变**描述计算的过程。它们的语句主要为对状态(也就是变量内部存储的值)的改变以及对控制流的改变(也就是条件或循环的跳转语句)。因此将简单的 C++ 和 Python 代码互相转换并不是什么难事,因为它们描述计算所用的方式所用的方式一样。另一种常见的编程范式是函数式语言,主要例子为 Haskell。其计算理论来自于 **λ演算**,通过创建匿名函数和应用函数描述计算。有和图灵机一样的描述能力。函数式语言相对来说更难理解,这里不再深入。
不同的计算概论课程会分别介绍 Python 和 C/C++这两种语言(计概范围内的 C 与 C++ 其实可大致看成一种语言)。虽然上到设计理念下到编写细节这两种语言都有很多不同点,但其都属于命令式语言(虽然现代 C++ 以及 Python 都支持面向对象和函数式设计,但其主体还是属于命令式语言)。命令式语言的计算理论来自于**图灵机**,通过对**状态的改变**描述计算的过程。它们的语句主要为对状态(也就是变量内部存储的值)的改变以及对控制流的改变(也就是条件或循环的跳转语句)。因此将简单的 C++ 和 Python 代码互相转换并不是什么难事,因为它们描述计算所用的方式所用的方式一样。另一种常见的编程范式是函数式语言,主要例子为 Haskell 和 Nix。 Haskell的计算理论来自于 **λ演算**,通过创建匿名函数和应用函数描述计算。有和图灵机一样的描述能力。而 Nix 语言的核心价值在于通过声明式 + 纯函数式的设计,让软件依赖管理和系统配置变得可复现,可维护,可扩展,无论何时何地,只要声明相同,环境必一致(如果输入是一成不变的话)。函数式语言相对来说更难理解,这里不再深入。
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nix就算了

Copy link
Member

@000lbh 000lbh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

整体上没大问题,请原负责同学进一步审阅


操作系统可以被看做一个功能很强大的封装模块。在有了操作系统之后,我们可以实现更方便地实现一些功能,同时实现一些没有操作系统就实现不了的功能。以下有一些简单的例子:

- 哪怕在只有一颗 cpu 的电脑上,也可以做到同时写代码和听音乐。但很明显,音乐播放器和代码编辑器的代码中不会包含自己如何和别的程序同时运行的功能,cpu 也不是生来就会同时运行多个程序。操作系统通过微观上协调多个程序**交替**执行,而在宏观上表现为多个程序**同时**执行。这种**并发**技术是操作系统的一个重要特征。
- 在实际上的电脑使用中,我们会遇到各种各样的错误,一个软件的小错误就导致整台电脑蓝屏甚至硬件损坏显然是不可接受的。虽然程序内部也应该包含错误处理机制,但遇到一些不负责的程序或者程序遇到了一些它们自己处理不了的情况时,操作系统的错误处理机制是必要的。比如在信科相关的课上,会有同学尝试编写生成上万个子进程却不负责销毁的代码,再比如有些同学会编写占用远大于内存大小的空间的代码。此时则需要操作系统进行“兜底”,在软件层面即时地阻断错误与异常继续向下层传播。关于操作系统与错误处理,这里有一个(可能)有趣的知乎问题:[如果抛开操作系统,直接在裸机上进行除零操作会发生什么情况?](https://www.zhihu.com/question/552173126)
- 哪怕在只有一颗 CPU 的电脑上,也可以做到同时写代码和听音乐。但音乐播放器和代码编辑器的代码本身不包含协同运行功能,CPU也非天生支持多程序并行。操作系统通过微观上协调多个程序**交替**执行,而在宏观上表现为多个程序**同时**执行。这种**并发**技术是操作系统的一个重要特征。
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这么写怕新手看不懂

@000lbh 000lbh requested a review from DrBit-64 June 29, 2025 05:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants