小编Qua*_*isp的帖子

代码如何在 C++ 抽象机上存储和执行?

在我读到的关于 C++ 的第一本书中,它详细介绍了代码是如何在机器上实际执行的(它提到了程序计数器、调用堆栈、返回地址等)。我发现了解这些东西是如何工作的真的很有趣,尽管我知道没有必要了解计算机的工作原理来编写好的代码。

在这个问答网站上阅读相同的主题时,我发现它绝不是我以前学习的方式,因为我阅读的只是 C++ 的某个实现,这取决于某些计算机架构和特定的编译器。C++ 代码也可以在完全不同的东西上运行,只要有一个符合“正确”方式的编译器。标准和“抽象机器”的行为定义了正确的方法(我希望到目前为止我做对了)。

当然,我仍然想知道像内存的代码段或程序计数器这样的概念是否仍然在标准中“以某种方式”描绘,如果是,它们在多大程度上被描绘出来?抽象机中如何描述一个接一个执行的代码片段的概念?

由于有人在评论中询问我是否希望向我重复该标准:我无法很好地理解该标准,无法准确确定它对抽象机器的看法/或标准的哪些陈述可以被解释为关于“程序计数器”“代码存储”等抽象概念的陈述。所以是的,出于无能为力,我要求社区解释标准中的内容。这种解释的预期结果是仍然符合“抽象”标准的抽象机器内部结构的最详细概念。

c++ language-lawyer program-counter abstract-machine

8
推荐指数
1
解决办法
528
查看次数