Files
endorphin-tabularium-docs/content/docs/smalltalk/00-overview.md
T

52 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Smalltalk-80:从消息到交互系统
Smalltalk 把语言、类库和开发工具放进同一个可探索的对象世界。本教程以“消息怎样找到行为”为起点,逐步走到集合、进程、图形与 MVC,帮助你阅读经典系统中的类与方法。
**资料范围**:A. Mével、T. Guéguen 著《Smalltalk-80》,Macmillan Education,1987;英文版编辑 Mario Wolczko,翻译 M. J. Stewart。书中说明以 Xerox Version 2 Virtual Image 为基础。用户提供的扫描 PDF 共 190 页,正文印刷页 1–174 对应 PDF 页 12–185;印刷页 p 的 PDF 页为 p + 11。
这里是按学习任务重组的中文研究导读,覆盖原书 21 章的主要主题,保留章节与页码定位,不是逐页译本或完整 API 手册。补充示例为本文编写,预期值来自语义推演,未在 Smalltalk 镜像运行。本文没有对某个 Smalltalk 实现仓库做逐文件源码核验;“源码研究”是站点分类,阅读原书后仍需进入对应镜像浏览实际方法。
## 选择阅读路线
| 目标 | 路线 | 读完能做什么 |
| --- | --- | --- |
| 初次接触 | 消息 → 语法 → 类与方法 → 集合 | 读懂表达式,分清返回值与接收者 |
| 研究语言机制 | 类与方法 → 对象协议 → 反射 | 追踪查找起点、对象身份和类侧行为 |
| 研究交互系统 | 开发环境 → 图形 → MVC | 追踪一次选择如何改变模型并刷新视图 |
| 对照原书 | 下方映射表 → 各篇来源说明 | 找到对应章、印刷页和扫描页 |
## 教程目录
1. [消息与对象:理解执行模型](/docs/source-studies/smalltalk/messages)
2. [语法与块:读懂一段 Smalltalk](/docs/source-studies/smalltalk/syntax-and-blocks)
3. [类、方法与元类:行为放在哪里](/docs/source-studies/smalltalk/classes-and-methods)
4. [对象协议:身份、复制与依赖](/docs/source-studies/smalltalk/object-protocol)
5. [类的架构与反射:系统怎样描述自己](/docs/source-studies/smalltalk/reflection)
6. [基础类库:数值、集合与流](/docs/source-studies/smalltalk/collections-and-streams)
7. [进程与同步:协作执行的对象](/docs/source-studies/smalltalk/processes)
8. [图形系统:坐标、位图与绘制](/docs/source-studies/smalltalk/graphics)
9. [开发环境:浏览、检查与调试](/docs/source-studies/smalltalk/live-environment)
10. [MVC 与曲线案例:连接数据和界面](/docs/source-studies/smalltalk/mvc)
11. [术语、练习与原书对照](/docs/source-studies/smalltalk/reference)
## 原书与新结构
| 原章 | 印刷页 | PDF 页 | 本教程 |
| --- | --- | --- | --- |
| 1 Introduction;2 Principles | 1–8 | 12–19 | 消息与对象 |
| 3 Classes;5 Methods | 9–12;21–25 | 20–23;32–36 | 类、方法与元类 |
| 4 Syntax | 13–20 | 24–31 | 语法与块 |
| 7 Object | 31–39 | 42–50 | 对象协议 |
| 8 Architecture of Classes | 40–52 | 51–63 | 类的架构与反射 |
| 9 Magnitude;10 Numeric;11 Collection;12 Stream | 53–90 | 64–101 | 基础类库 |
| 13 Processes | 91–95 | 102–106 | 进程与同步 |
| 14 Point/Rectangle;15 Graphics | 96–117 | 107–128 | 图形系统 |
| 6 Interface;16–19 Windows/Browsers | 26–30;118–149 | 37–41;129–160 | 开发环境 |
| 20 User Events;21 MVC | 150–174 | 161–185 | MVC 与曲线案例 |
## 阅读约定
代码使用 `:=` 表示赋值、`^` 表示方法返回,替代扫描版的箭头符号;字符串用单引号,注释用双引号。`smalltalk` 代码块可复制,但页面不执行它们。历史类名与选择子保留原样,所有平台相关操作均以原书镜像为范围。
“现代化”体现在清晰的阅读路线、可搜索文本、代码块、对照表、语义链接与练习。本文不把 1987 年的鼠标操作、字符集、进程调度或 MVC API 当作所有今天实现的共同规范。