3

我正在查看一些 C++ 代码,它包含一个用于编写脚本的堆栈机器。我几年前学习了 C++,但从未在我的日常工作中使用它,所以我不知道这是常见的做法,还是仅在某些非常特定的情况下使用?

4

1 回答 1

1

如果您需要评估诸如2 + 3 * 7or之类的表达式x = a + b / sin(c),那么面向堆栈的方法将非常有效。

我不会说这太常见了。我知道 Emacs 是围绕一个 lisp 解释器构建的,而后者通常被实现为一个堆栈机器,我不确定我是否知道任何使用这种方法的东西。但这并不是说在某些领域这并不常用。

考虑/考虑它我还认为 Java VM 本质上是一个堆栈机器,PostScript 也是如此(以及扩展的 PDF 解释器,因为该概念基于简化的 PostScript 格式)。

于 2013-09-09T10:16:05.923 回答