编程语言与软件工程2015freudenbergs.de
复活 Smalltalk-78(2014)
Reviving Smalltalk-78 (2014)
进阶 · 约 35 分钟读完前置知识:Smalltalk 基础、解释器/虚拟机概念、早期个人计算机架构
导读
这篇论文介绍如何“复活”Smalltalk-78,让这套早期 Smalltalk 系统在现代环境中重新可运行,并展示其解释器/虚拟机可以做得非常小。文中也涉及在内存受限的微处理器上运行早期 Smalltalk 的移植挑战,以及后来的浏览器演示版本。
HN 关注点:软件考古与工程震撼:1978 年的 Smalltalk 能在浏览器里跑,解释器体积小得惊人,同时引发对历史内存数字的考据。
HN 评论精选
这几条评论里:支持 1 质疑 1 补充 2
支持解释器体积极小,和现代 JS 页面相比令人惊叹。
看看这个解释器的大小,然后再加载一些别的 JS 页面并测量它们的大小。相当令人印象深刻!
patrickg_zill查看英文原文
Consider the size of the interpreter and then go load some other JS pages and measure the size of them. Pretty impressive!
补充提供可直接在线体验的浏览器版 Smalltalk-78。
这里有一个在浏览器里运行的链接:https://bertfreudenberg.github.io/Smalltalk78/
scroot查看英文原文
Here's a link to the thing running in a browser: https://bertfreudenberg.github.io/Smalltalk78/
补充补充了原始演讲视频资料。
我找到了 Dan Ingalls 关于 Smalltalk-78 的演讲视频:https://youtu.be/pTh65b8qSY8
pmarin查看英文原文
I found the video of the presentation that Dan Ingall did on smalltalk-78 https://youtu.be/pTh65b8qSY8
质疑质疑原文“256k bytes”应为 bits,因为 1976 年 256KB 内存过大。
原文说:“把 Smalltalk-76 移植到只有 256k 字节内存的微处理器上……”这里应该是 bits 而不是 bytes 吧?1976 年 256k 字节是巨大的。即使按 8 位算,那也是 16k。我对 Smalltalk 了解不多,但那个时代这仍似乎占很大空间。
reaperducer查看英文原文
FTA: "The challenge of porting Smalltalk-76 to a microprocessor with only 256k bytes of memory..." Should that be bits, not bytes? 256k bytes was massive in 1976. Even at 8 bits, that would be 16k. I don't know that much about Smalltalk, but that still seems like a lot of space for the era.
相关资源
从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。
历次讨论
- 2015Hacker News 讨论帖81 分 · 23 评
- 2018Hacker News 讨论帖155 分 · 21 评
同领域还值得读
Google 的软件工程(2017)
Software Engineering at Google (2017)
介绍了 Google 的软件工程实践,包括其单一代码库(monorepo)、几乎全部开发在主干进行而非分支、代码审查、构建系统 Blaze、协议缓冲区等工具与流程,并讨论了频繁重…
编程语言与软件工程2017 · 1,127 分 · 465 评 · 引用 15入门 · 约 45 分钟编辑精选Peter Naur:编程作为理论构建 (1985)
Peter Naur – Programming as Theory Building (1985)
Peter Naur 1985 年的经典论文《Programming as Theory Building》提出:编程的本质不是写代码或文档,而是在程序员头脑中构建对程序及其运行…
编程语言与软件工程2016 · 629 分 · 74 评入门 · 约 45 分钟编辑精选SciPy 1.0:Python 科学计算的基础算法
SciPy 1.0: fundamental algorithms for scientific computing in Python
这篇发表于 Nature Methods 的论文介绍了 SciPy 1.0——Python 科学计算生态的基石库,涵盖其核心算法模块(优化、积分、插值、线性代数等)、软件架构与社…
编程语言与软件工程2020 · 387 分 · 98 评入门 · 约 45 分钟编辑精选Lisp 的历史(1979)
History of Lisp (1979)
这是 Lisp 发明者 John McCarthy 于 1979 年为 HOPL(编程语言史)会议撰写的回顾文章,讲述 Lisp 的起源、设计动机与早期演进,文中也涉及 if 表…
编程语言与软件工程2018 · 352 分 · 44 评入门 · 约 45 分钟编辑精选使用 NumPy 进行数组编程
Array Programming with NumPy
这篇 Nature 文章介绍 NumPy 的数组编程模型及其在科学计算中的核心作用:以 ndarray 为中心,通过向量化操作让 Python 高效处理多维数组。
编程语言与软件工程2020 · 318 分 · 134 评入门 · 约 40 分钟编辑精选