编程语言与软件工程2024tom7.org
一篇研究论文同时也是一个可执行的 x86 程序
Research paper is also an executable x86 program
进阶 · 约 25 分钟读完前置知识:x86 汇编基础、机器码与指令编码、ASCII 字符编码
导读
这篇论文(及其配套视频)展示了 Tom 7 的一个极端创意:整篇论文的文本同时是一段可在 x86 上执行的程序。作者讨论如何在仅使用可打印 ASCII 字符构成的 x86 指令子集里写程序(因而无需自修改代码),并把它与同样全可打印的 EICAR 反病毒测试文件作比较。
HN 关注点:HN 读者被“论文本身就是一个可执行程序”这种形式与内容合一的恶作剧式工程所吸引,好奇它如何实现、运行时到底会做什么。
HN 评论精选
这几条评论里:质疑 1 补充 3
补充强调论文用的是纯可打印指令子集、无自修改代码,并与 EICAR 类比。
不仅如此,它还是一段用 x86 指令的可打印子集写成的 x86 可执行程序(所以没有自修改代码),论文第 3 节提到了这一点,并与同样全可打印的 EICAR 反病毒测试文件作了对比。
lifthrasiir查看英文原文
Not only that, but it is an executable x86 program written in a printable subset of x86 instructions (so no self-modifying code), as noted in the section 3 with a comparison to the similarly printable EICAR anti-virus test file.
补充提供了配套视频链接。
这里是这篇论文的配套视频:https://www.youtube.com/watch?v=LA_DrBwkiJA
Hogarth01查看英文原文
Here's the companion video for the paper: https://www.youtube.com/watch?v=LA_DrBwkiJA
质疑询问是否通过改扩展名即可执行。
把 .txt 文件改名成 .exe 就能运行吗?
mizzao查看英文原文
Is it executable by renaming the .txt file to an .exe or what?
相关资源
从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。
历次讨论
- 2024Hacker News 讨论帖189 分 · 28 评
同领域还值得读
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 分钟编辑精选