【问题标题】:What does "run-time representation" means in programming languages"?“运行时表示”在编程语言中意味着什么?
【发布时间】:2015-01-22 05:50:24
【问题描述】:

我正在学习“编程语言:设计与实现”课程,想知道“运行时表示”在编程语言中的含义?

【问题讨论】:

  • 您能说得更具体些吗?运行时表示什么?该短语是在什么上下文中使用的,您不了解它的具体内容是什么?
  • @svick 它也被称为构造的实现或运行时表示或存储表示,我不确定,这就是我问的原因。它用于研究编程语言:设计和实现。我不明白它的确切含义和含义。

标签: runtime programming-languages representation


【解决方案1】:

要理解它,您需要记住,(当代)计算机只知道整数(各种长度:1、2、4 或 8 字节)、IEEE 浮点数(4 或 8 字节)和内存地址(指针, 4 或 8 个字节)。

因此,例如,当您想要一个列表时,您(或者,至少是您正在使用的语言的编译器编写者)需要考虑在运行时如何在内存中表示(!)列表。

单链表元素的一种可能表示形式:

|________|________|
DataPtr   NextPtr

链表节点取两个相邻指针大小的内存字,第一个指向实际数据,第二个字指向下一个链表节点。

这里有两点需要注意:

  1. 表示非常随意。例如,我们可以切换数据和下一个指针,这将是与前一个一样好的另一种表示。

  2. 考虑元组或对的运行时表示。可能是:

    |________|________|

    PtrFirst PtrSecond

    也就是说,两个内存字分别保存指向第一个和第二个组件的指针。听起来很熟悉?

    那么,我们如何判断两个后续的带有指针的单词是表示一对还是一个列表元素呢?我们不能!我们的许多数据抽象最终将使用相同的运行时表示。

【讨论】:

    猜你喜欢
    • 2023-03-02
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 2010-10-21
    • 2014-02-08
    • 1970-01-01
    • 2021-01-03
    • 2022-07-20
    相关资源
    最近更新 更多