开发者生态
morning
C 不是低级语言 (2018)
2026-09-08
1 阅读
约2分钟阅读
tosh
字号:
【HN用户评论摘要】
“低级语言”是像“VLSI”(超大规模集成)这样的术语之一,他们在 70 年代左右对其进行了定义,因此学术定义与大多数人的期望不同步。这很好,这是一个艺术术语,这些不需要立即显而易见。不过,我不喜欢这篇文章的标题,因为这个原因。真正更好的标题应该是“现代 x86 处理器不是 PDP-11”。字幕基本上是完美的。编辑:IMO 也不是
多年来我一直是这篇文章的粉丝,尽管它经常让我认为我们的超标量现代 CPU 确实没有任何真正的低级语言。有谁知道吗?
也许那时还没有,但我们现在基本上有了自己的穷人模板系统: #define array(T, N) struct array##T##N { T value[N]; }
无效复制(数组(int,32)* x,数组(int,32)* y){
*x = *y;
}
int main() {
数组(int,32)x;
数组(int, 32) y = { 1, 2, 3, 4 };
复制(&x,&y);
}
随着 lambda 和 defer 的(传言)的出现,C 正在走经典 WoW 的路。 https://en.wikipedia.org/wiki/C29_(C_standard_revision)
这是我最喜欢的论文之一;它偷走了我大约一年半的时间。我仍然渴望 Lisp 处理器,尽管数组语言现在可以在 GPU 上自行托管,在 APL 的支持下,我现在感觉更好。如果能够精确控制哪些内核停留在哪些缓存级别等,那就太酷了(...对于编译器编写者来说)。
从这个意义上说,甚至汇编也不是低级语言,因为指令可能隐藏微代码实际执行的操作。恕我直言,C 是过程编程语言可以获得的最低级别。
原始链接: https://queue.acm.org/doi/10.1145/3212477.3212479
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱