返回介绍

16.2 数据(x) 的全集 = 数据(x’) + 操作(x“) + 状态(Sx)

发布于 2024-12-15 23:01:51 字数 1827 浏览 0 评论 0 收藏 0

一个简单的数据依赖的模型可以是这样的 3

1
2
3
4
5
6
7
  x = 100;
  function foo_1() {
    x++;
  }
  function foo_2() {
    x--;
  }

在这个模型中,若 foo_1()foo_2() 是分布的,我们最终将不知道x如何分布,因此它们都必须使用数据x的全集。

如前所述,我们承认这种状况必然存在,无论它是发生于 foo() 函数的循环展开,还是用于解决 foo_1,…,foo_N 之间逻辑的时序依赖问题。我们的问题仅仅在于:如何让 foo_1 ,…, foo_N持有这个数据x

我们必须再次确认“x的全集”的含义。若“x的全集”是一个有限的数据集合 4 5 ,例如某个内存块或者某个对象,那么“持有这个数据x”意味着对这个x的全集的任意操作。这样的全集应当包括三个信息:数据、数据的操作以及数据的状态。

其一,x 包括数据x’。显然,x应当包括x’,它必然是可计算数据的一部分。尽管x’ 在概念上能够指代可计算数据的全体,但在应用中仅是其部分,这就如同 变量 在概念上指代任何数据,但在具体的代码中只表达确定数据。

其二,x包括上述数据集合x’的所有已知操作x“。对于某个确定的时间(所谓“已知”,便是与时间相关的),x’具有确定的操作x”。这基于两条理由:首先,使得x’在某一时间的操作具有不确定性——也就是说,既能够应用某个操作,又不可应用该操作——的逻辑是不存在的 6 ;其次,若存在在将来可能发生于x’的其他操作,那么这些操作与x’也将构成其他的数据集合。

其三,x包括指示它自身的状态SxSxx之于时间的信息,这意味着x在一个持续过程中可以被分别处理,这个信息既可以看做是x之于时间的依赖,也可以看做是x之于“某时的处理者”的依赖。

综上,x必须是{x’, *x“, Sx*}的全集。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文