计算机导论_第4章_笔记

作者:薄荷椰果抹茶日期:2026/7/6

内容提要

  • 程序设计语言翻译系统
  • 操作系统
  • 工具软件

第1节 程序设计语言翻译系统

1.1 概述

计算机硬件只能识别并执行机器指令,但人们普遍习惯于使用高级程序设计语言或汇编语言来编写程序。为了让计算机能够理解高级程序设计语言或汇编语言并执行用它编写的程序,必须要为它配备一个"翻译",这就是程序设计语言翻译系统。

定义:程序设计语言翻译系统是一类系统软件,它能够将使用某一种源语言编写的程序翻译成为与其等价的使用另一种目标语言编写的程序。

  • 源程序:使用源语言编写的程序
  • 目标程序:使用目标语言编写的程序

三类翻译系统

类型说明
汇编语言翻译系统将汇编语言翻译为机器语言
高级程序设计语言编译系统将高级语言源程序整体翻译为目标程序
高级程序设计语言解释系统逐条翻译并立即执行

1.2 汇编语言翻译系统

功能:将用汇编语言书写的程序翻译成用二进制码(0/1)表示的等价机器语言,形成计算机可以执行的机器指令代码。

翻译步骤

  1. 用机器操作码代替符号化的操作符
  2. 用数值地址代替符号名字
  3. 将常数翻译为机器的内部表示
  4. 分配指令和数据的存储单元

工作示意

1汇编源程序 ──→ [汇编程序翻译器] ──→ 二进制机器语言程序
2  (输入)                                (输出)
3

例子:汇编指令 MOV AX, BX 经汇编器翻译后变成机器码 89D8(十六进制),CPU 可以直接执行。


1.3 高级程序设计语言编译系统

定义:编译程序是将用高级语言书写的源程序翻译成等价的机器语言程序或汇编程序的处理系统。它以源程序为输入,以目标程序为输出,最终产生一个可在具体计算机上执行的目标程序。

编译程序的结构(五道"工序")
1源程序
2  
3[词法分析] ──→ 单词(属性字序列)
4  
5[语法分析] ──→ 语法单位(表达式、语句、程序等)
6  
7[中间代码生成] ──→ 中间代码
8  
9[优化] ──→ 优化后的中间代码
10  
11[目标代码生成] ──→ 目标程序
12

辅助模块:表格管理程序出错处理程序


1.3.1 词法分析

定义:编译过程中的一个阶段,在语法分析前进行。输入是源程序字符串,输出是等价的属性字序列(内部表示形式)。

任务:从左至右逐个字符地扫描源程序,产生一个个单词符号,把源程序改造为由单词符号串组成的中间程序。

词法分析器的结构

1输入缓冲区  预处理子程序  扫描缓冲区  扫描器  单词符号列表
2

单词符号的识别

类别说明例子
基本字(关键字)语言预定义的保留字DO、IF、GOTO、int、for
标识符字母开头的字母数字串num、sum、i、count
常数算术常数,转为二进制内码5000、5.8
算符和界符运算符和分隔符=、==、++、--、>=、(、{

例子:对于代码 for (i=0; i<10; i++),词法分析器将其拆分为:

  • 关键字:for
  • 界符:();
  • 标识符:i
  • 算符:=<++
  • 常数:010

1.3.2 状态转换图与确定型有穷状态自动机(DFA)

状态转换图:一张有限方向图,用于识别(或接受)一定的字符串。

  • 结点:代表状态,用圆圈表示
  • 箭弧:状态之间用箭弧连结,箭弧上的标记(字符)代表该状态下可能出现的输入字符
  • 一张转换图有一个初态至少一个终态

识别标识符的状态转换图

1  (字母)       (字母或数字)
2[初态] ──→ [状态2] ←──┐
3                    
4  └──(其他)─→ [终态]  └──(其他)──→ [终态]
5

例子:标识符 sum 的识别路径:

当前状态读入字符下一状态
初态s(字母)状态2
状态2u(字母)状态2
状态2m(字母)状态2
状态2␣(其他)终态 ✓

识别整常数的状态转换图

1  (数字)         (数字)
2[初态] ──→ [状态2] ←──┐
3                    
4  └──(其他)─→ [终态]  └──(其他)──→ [终态]
5

1.3.3 确定型有穷状态自动机(DFA)—— 形式化定义

定义:一个确定的有穷自动机 D 是一个五元组:D = (K, Σ, M, S, F),其中:

符号含义
K有穷非空的状态集合
Σ有穷非空的输入符号字母表
M转换函数,M: K × Σ → K,表示当前状态 ki 遇到输入符号 a 时转移到 kj
S唯一初态,S ∈ K
F非空终态集合,F ⊆ K

例子:为正则语言 {(ab)^n b² | n ≥ 0} 构造状态转换图:

1        a         b         b
2[S] ──→ [A] ──→ [B] ──→ [C] ──→ [Z(终态)]
3                 
4        └────(a)──┘(回路实现 (ab)^n 部分)
5

该 DFA 接受的语言:字符串由 n 个 “ab” 重复后跟两个 “b” 组成。如 bb(n=0)、abbb(n=1)、ababbb(n=2)等。


1.3.4 语法分析

语法分析程序对词法分析产出的单词序列进行分析,按照语法规则识别出语法单位(表达式、语句、程序等)。


1.3.5 中间代码生成与优化
  • 中间代码生成:将语法单位转换为某种中间代码(便于后续优化和目标代码生成)
  • 优化:对中间代码进行优化,使生成的目标代码在运行速度和存储空间方面具有较高的质量

1.3.6 目标代码生成

将优化后的中间代码转换为目标程序(机器语言或汇编语言)。


1.4 高级程序设计语言解释系统

定义:按照源程序中语句的动态顺序,逐条翻译并立即执行相应功能的处理系统。

工作过程

  1. 由总控程序完成初始化工作
  2. 依次从源程序中取出一条语句进行语法检查,如有错则输出错误信息;通过检查则翻译成相应指令并执行
  3. 检查源程序是否已全部解释执行完毕,未完成则继续解释并执行下一个语句,直到全部处理完毕
1源程序 + 原始数据 ──→ [解释系统(逐句解释、执行)] ──→ 结果
2

优缺点

优点缺点
实现算法比较简单运行效率比较低

例子:Python 和 JavaScript 是典型的解释型语言。以下 Python 代码逐行被解释执行:

1x = 10          # 解释:分配变量 x,赋值 10
2y = x + 5       # 解释:取 x 的值,加 5,赋给 y
3print(y)        # 解释:输出 y 的值  15
4

1.5 编译 vs 解释 对比

对比维度编译系统解释系统
翻译方式整体翻译,生成目标程序逐条翻译并执行
执行效率高(一次翻译,多次执行)低(每次执行都要翻译)
典型代表C、C++、GoPython、JavaScript、PHP
产物独立的可执行文件(.exe 等)无独立目标程序
错误发现编译阶段集中报告执行到出错语句时才报告

第2节 操作系统

2.1 什么是操作系统

定义:操作系统是用来管理计算机系统的软硬件资源、提高计算机系统资源的使用效率、方便用户使用的程序集合。它是对计算机系统进行自动管理的控制中心。

  • 操作系统是计算机硬件(裸机)的直接外层,对硬件功能进行首次扩充
  • 操作系统通过各种命令提供给用户操作界面
  • 操作系统是其他软件运行的基础

引导过程:从外存储器装入主存储器 → 管理程序部分常驻主存(驻留程序)→ 其他部分按需调入(临时程序


2.2 操作系统的功能

2.2.1 资源管理功能
功能说明
处理机管理控制程序执行,登记各处理机及状态,按策略分配 CPU 给用户作业(进程)。目前大多为"多任务"、"多线程"操作系统
存储器管理按策略分配存储空间,记录主存使用情况,提供信息保护,作业结束后回收内存单元
输入输出设备管理响应外部 I/O 请求,记录设备状态,按设备特点分配和回收外部设备,控制设备按用户程序要求操作
文件管理对信息进行逻辑和物理组织,维护文件目录结构,实现对文件的各种操作。用户可按文件名存取数据,不必了解数据的物理位置
2.2.2 人机交互功能

主要依靠输入输出设备和相应软件完成:

传统设备新型设备
键盘、显示器、鼠标语音输入设备、文字读入设备、图形图像扫描输入设备

2.3 操作系统的分类

按照性能分类:

2.3.1 多道批处理操作系统

定义:在主存储器中存放多道用户作业,使其按照一定策略插空在 CPU 上运行,共享 CPU 和输入输出设备等系统资源。

  • 宏观上:多道作业同时运行
  • 微观上(单 CPU):某一瞬间只有一道作业在 CPU 上运行

例子:一台计算机同时处理三个批处理作业:作业 A(数据统计)、作业 B(文件转换)、作业 C(日志分析)。在宏观上看三个作业同时在跑,实际上 CPU 快速在它们之间切换分配时间片。

2.3.2 分时操作系统

定义:多个用户终端共享使用一台计算机,把 CPU 时间分割成一个个时间片,分别提供给各个用户终端。设计目标是提高对用户响应的及时性。

例子:大学机房里,一台小型机连接了 30 个终端,30 名学生同时登录使用,每人感觉就像独占了整台计算机——实际上 CPU 以极短的时间片轮流为每个人服务。

2.3.3 实时操作系统

定义:能够对外部事件作出及时的响应并对其进行处理的系统。强调对外部事件响应的及时性快捷性及系统的可靠性

例子

  • 工业控制:化工厂的温度监测系统,必须在温度超标的瞬间立即触发降温操作,延迟不可接受
  • 航空航天:火箭发射控制系统,对外部传感器数据的响应必须在毫秒级别
2.3.4 网络操作系统

定义:使网络上的计算机能够方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。

协议:由于网络上计算机的硬件特性、数据表示格式等不同,为了在互相通信时彼此能够理解,必须共同遵循的约定。

额外功能(相比普通操作系统):

  • 高效、可靠的网络通信(按网络协议进行)
  • 多种网络服务:文件传输、远程登录、电子邮件、信息检索等

例子:Windows Server 是典型的网络操作系统,一个办公室的多台电脑通过它共享打印机、共享文件夹,并通过 TCP/IP 协议互相通信。


2.4 几种常用的操作系统

2.4.1 MS-DOS
  • 全称:Microsoft Disk Operating System(微软磁盘操作系统)
  • 广泛用于 PC 及其兼容机

三大功能

  1. 磁盘文件管理
  2. 输入输出管理
  3. 命令处理

命令格式

类型格式
内部命令<命令动词> [<参数>]
外部命令[<驱动器名>][<路径名>]<命令动词> [<参数>]

引导过程:启动后检查驱动器 A 或 C 中是否有系统文件 MSDOS.SYS 和 IO.SYS,有则引导入主存,否则显示出错信息。

例子DIR C:\ 列出 C 盘根目录下的所有文件;COPY A:\file.txt C:\ 将 A 盘的文件复制到 C 盘。


2.4.2 Microsoft Windows

由 Microsoft 公司开发的一系列基于图形界面、多任务的操作系统,又称视窗操作系统


2.4.3 Unix 操作系统

发展历程:20 世纪 60 年代末由 AT&T 贝尔实验室的 K.ThompsonD.M.Ritchie 等研制。两位学者因卓越贡献获得了 1983 年图灵奖

主要特点

  • 多用户操作系统,适合终端或工作站连接到小型机或主机的场合
  • 功能由许多小的功能模块连接组装而成
  • 提供功能完备、使用灵活、可编程的 Shell 命令语言
  • 具有分层的、可装卸的文件系统,提供完整的文件保护功能
  • 采用输入输出缓冲技术,主存和磁盘的分配与释放自动高效进行
  • 提供了文本编辑程序、Shell 解释程序、汇编程序、多种编译程序、调试程序、通信程序以及系统管理与维护程序
  • 代码大部分用 C 语言书写,有很好的可移植性
  • 有一系列网络通信工具和协议,TCP/IP 协议就是在 Unix 上开发成功的

Unix 的框架结构(四层)

1用户层:
2  Shell 语言解释程序 | 程序设计语言编译程序 | 各种应用程序包子系统
3
4       系统调用命令
5
6内核层:
7  进程管理 | 存储管理 | 设备管理 | I/O中断管理 | 文件管理 | 汇编程序
8
9      
10
11计算机硬件(裸机)
12

四个基本成分

成分作用
内核核心,调度和管理计算机系统的各种资源
文件系统组织并管理数据资源
Shell命令解释程序,读入用户命令并调用相应程序执行
公用程序常用标准软件:编辑工具、网络管理工具、开发工具、保密与安全工具等

2.4.4 Linux

定义:一种可以运行在微机上的免费的 Unix 操作系统。由芬兰赫尔辛基大学学生 Linus Torvalds 于 1991 年开发。源代码免费开放,但部分发行版可能收费。

主要特点

  • 与 Unix 兼容的 32 位操作系统,支持 32 位和 64 位硬件
  • 继承 Unix 以网络为核心的设计思想,是性能稳定的多用户网络操作系统
  • 支持多任务、多进程和多 CPU
  • 模块化设计结构,有优于其他操作系统的扩充性
  • 用户不仅可以免费获得源代码,还可以修改以实现特定功能,任何人都可以参与开发
  • 提供完整网络集成,可轻松与 TCP/IP、LAN Manager、Windows for Workgroups、Novell NetWare 或 Windows NT 集成

流行版本

国际版本国内版本
Red Hat Linux红旗 Linux
Turbo Linux蓝点 Linux

例子:一名开发者在 Raspberry Pi(树莓派)上安装免费的 Raspbian(基于 Linux),搭建了自己的 Web 服务器;同时,大部分互联网公司的服务器都运行 Linux(如 CentOS、Ubuntu Server),支撑着全球的云服务和网站。


2.4.5 Mac OS
  • Apple 公司为 Mac 计算机设计的操作系统
  • 最早利用图形用户界面(GUI)的操作系统
  • 具有极强的图形处理能力,广泛用于桌面出版和多媒体应用

Mac OS X(新一代):

  • 核心系统 Darwin,采用卡耐基梅隆大学开发的 Mach 微内核
  • 可看作符合 POSIX(Portable Operating System Interface,可移植操作系统接口)标准的 Unix 变种
  • Darwin 本身开放源代码

Mac OS X 的特点

特点说明
系统稳定和良好性能集成 Mach 3.0 内核、基于 BSD Unix 的操作系统服务、高性能网络工具,支持多种文件系统
内存保护和管理为每个程序/进程分配单独地址空间,利用坚固结构保护程序,确保系统可靠性
多应用程序环境同时管理不同应用程序环境,给用户无缝整合的体验
可堆叠文件系统文件系统组件使用层结构,系统可堆叠

2.5 操作系统对比总结

操作系统类型核心特点典型应用场景
MS-DOS单用户单任务命令行界面、磁盘管理早期 PC(已淘汰)
Windows图形界面多任务用户体验好、软件生态丰富个人桌面、办公
Unix多用户多任务稳定性高、C 语言编写、可移植服务器、科研、大型机
Linux开源 Unix-like免费、可定制、社区驱动服务器、嵌入式、开发平台
Mac OS图形 Unix 变种图形处理强、用户体验优秀桌面出版、多媒体、个人创作

本章小结

  • 程序设计语言翻译系统操作系统是计算机系统软件中最重要的两种类型
  • 程序设计语言翻译系统:将高级语言翻译为可执行机器指令,包括汇编、编译、解释三大类
  • 操作系统:管理软硬件资源、提供人机交互界面、作为其他软件运行的基础
  • 常用操作系统包括 Windows、Unix、Linux、Mac OS 等,各有特点与适用场景

人物介绍——埃德斯加·狄克斯特拉(Edsgar Wybe Dijkstra)

  • 1972 年图灵奖获得者,荷兰计算机科学家
  • 因最早指出 “goto 是有害的” 以及首创结构化程序设计而闻名
  • 在算法理论、编译器、操作系统等多方面均有杰出贡献
  • 1983 年 ACM 评选 1958-1982 年的 25 篇里程碑论文,狄克斯特拉一人入选两篇
  • 1956 年设计了在有障碍物的两点之间找出最短路径的 “狄克斯特拉算法”(Dijkstra’s Algorithm),至今仍被广泛应用

例子:导航软件(如高德地图、Google Maps)在计算从起点到终点的最短路线时,底层核心算法就是狄克斯特拉算法——它能够在复杂的道路网络中找到时间最短或距离最短的路径。
(内容由AI生成,仅供参考)


计算机导论_第4章_笔记》 是转载文章,点击查看原文


相关推荐


图解 MongoDB 18|复制集拓扑:Primary、Secondary 和 Arbiter 的分工
十三Tech2026/6/28

存储引擎阶段回答了「数据怎么存、怎么不丢」,但留下一个致命问题:单机宕机了怎么办。一台 mongod 进程挂掉,不管是硬件故障、进程崩溃还是网络隔离,所有读写都会中断。这在生产环境是不可接受的。 MongoDB 解决单点故障的方式是复制集(Replica Set)——把数据复制到多个节点,一台挂了自动切换到另一台。这一阶段(18–23)就围绕复制集展开,从拓扑结构、复制原理、延迟、选举到读写关注,把 MongoDB 的高可用讲透。 先把机制边界说清楚 复制集是一组维护相同数据集的 mongod


百度 C++/PHP 研发一二面:一面扫八股和算法,二面开始逼近 Redis、MySQL 和秒杀设计
TechPioneer_lp2026/6/19

这篇百度 C++/PHP 研发面经很适合作为“后端基础到系统设计过渡”的样本来看。 它的一面还比较像常规校招: 算法 OS 计网 HTTP Redis 静态 / 动态链接 C++ 基础 但二面明显开始往: 智能指针 TCP 窗口和拥塞 Redis 各种底层结构 MySQL 索引、隔离级别、锁 秒杀系统和高并发设计 去推进了。 校招大礼包获取:入口 可能是至今最全,最好,最实用的校招大礼包,减少信息差,预期漫步无敌的刷提,不如有的放矢,针对性的准备,这


从单机到分布式:用 Go + Eino + DeepSeek V4 构建生产级 Code Review Agent
银河技术2026/6/11

从单机到分布式:用 Go + Eino + DeepSeek V4 构建生产级 Code Review Agent 不是把大模型接到 GitHub Webhook 上,就叫生产级 Code Review Agent。真正决定系统上限的,是任务编排、规则前置、上下文治理、并发隔离与可观测性。 引言:为什么团队越来越需要“生产级” Code Review Agent 在小团队里,Code Review 通常是一个“人盯人”的流程:开发者提 PR,Reviewer 看 diff,提几点


Webpack如何实现万物皆可import?loader的使用/配置/手写实践
漂流瓶jz2026/6/4

Webpack是前端历史上具有统治地位的打包工具,应用非常广泛。虽然现在逐渐被性能更强的工具替代,但是依然有很多工程使用。loader是Webpack中的一种重要的外部插入配置工具,负责对源代码进行转换。Webpack本身只能理解JavaScript和JSON文件,其它类型的文件不能处理。正是使用各种loader,Webpack才有了将各种格式的资源和代码识别和引入的能力。当然,loader的能力也并不仅限于此。 loader使用示例 为了了解loader的作用和使用方式,我们举例一些现有的知名


Android 离线优先架构实践:网络只是本地数据库的同步触发器
潜龙勿用之化骨龙2026/5/29

本文基于对 Learn-Kotlin-Coroutines 的工程化重构,记录从「请求式架构」走向「响应式单一数据源(SSOT)」的完整思路与实现方案。 引言:被网络绑架的 UI 过去很多 Android 项目的数据流都是这样的: 请求网络 → 拿到数据 → 更新 UI 这种模式在网络稳定时看起来没有问题。但一旦网络变慢、接口超时、页面频繁切换,问题就会迅速暴露: 页面白屏等待 数据状态不一致 本地缓存形同虚设 根本原因在于:UI 的命运被网络状态决定了。 现代 Android 架构正


ODA运维实战:Oracle 19c YJXT PDB表空间在线扩容全过程_20260503
sysrootsa2026/5/6

一、操作时间 2026 年 5 月 3 日 09:30 二、操作环境 平台:Oracle Database Appliance,ODA 数据库版本:Oracle Database 19c,19.25.0.0.0 主机:teierp1 实例:erpcdb1 CDB:ERPCDB PDB:YJXT 存储:ASM +DATA 操作方式:在线扩容 本次操作为 Oracle 表空间在线扩容,不涉及业务数据修改,不需要停库。 三、登录数据库并进入


AI!一种新的AI项目架构思想与尝试(怎么让AI更有效的开发)
无我Code2026/4/27

前言 在2026的今天,AI极大的提升了项目的开发效率,程序员在当下已经不是考虑AI行不行,而是应该如何积极的拥抱AI,虽然AI不是万能的银弹,但是在2026的今天,AI已经可以帮助我们快速的开发一款小而美的应用,或者解决一些简单的功能开发,提升我们的开发进度,减少我们敲击键盘的次数。那么在AI盛行的当下,我们的项目架构自然需要针对性的向AI方向进行调整,让AI能够更容易的理解项目,提升代码准确率已经是当下最需要解决的问题。 项目架构设计 在近期使用AI的过程中,我使用AI搭建了一个python


《 SwiftUI 进阶第8章:表单与设置界面》
90后晨仔2026/4/18

8.1 Form 组件 核心概念 Form 是 SwiftUI 中用于创建表单界面的专用组件,它提供了: 自动的分组和分隔线 自适应的布局 与系统设置一致的外观 支持多种表单控件 基本使用 import SwiftUI struct ContentView: View { var body: some View { NavigationStack { Form { Section {


OpenClaw(龙虾)最强开源对手!Github 40K Star了,又一个爆火的Agent..
AI袋鼠帝2026/4/10

大家好,我是袋鼠帝。 最近几天,不管是国内的开发者社群,还是国外的X,又有一个开源项目的热度简直高得离谱。 根据开源项目飙升榜的数据,它在一个月内的增长率达到了惊人的百分之1237。 仅仅过了两个月时间,它的标星数量就已经突破了40k大关。 在技术社区里,很多人甚至直接把它称为OpenClaw的第一个真正竞争对手。 这个爆火的开源项目,叫做 Hermes Agent,地址 github.com/NousResearc… 是由 Nous Research 团队倾力打造的开源Agent。 今


在 Debian 上部署 ELK 7.17 完整指南
itmanll2026/4/2

Elasticsearch 7.17 是 7.x 系列的最终维护版本,目前仍有大量生产环境集群运行此版本。本指南将详细介绍如何在 Debian 12/13 上完整部署 ELK 7.17 栈(Elasticsearch、Logstash、Kibana)。 环境要求 Debian 12(bookworm)或 Debian 13(trixie)至少 4GB 内存(默认堆内存占用约 2.4GB)开放端口:9200(Elasticsearch HTTP)、9300(Elasticsearch 传输)

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 聚合阅读