首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >祈使与功能&理解冯·诺依曼的瓶颈

祈使与功能&理解冯·诺依曼的瓶颈
EN

Stack Overflow用户
提问于 2017-05-11 17:44:41
回答 1查看 658关注 0票数 3

在的Coursera课程中,Martin讨论了命令式编程是如何受到von瓶颈的约束的,因为它主要涉及可变的状态,因此也涉及赋值和取消引用。

von瓶颈是处理器和内存之间读取/写入数据的延迟。

我很难理解两件事,我希望有人能帮我弄清楚:-

  1. 如果我们只在编写Scala程序时使用不可变对象,那么当我们在构造数据时用数据初始化一个不可变对象时,我们仍然有赋值,而不是进一步的重新分配。当我们想要去引用一个不可变的对象时,仍然有可能它不再存在于缓存中,并且必须再次从主存->延迟中获取。 我很难理解使用不变的数据结构是如何帮助解决von瓶颈的。有谁能帮我欣赏其中的案例吗?
  2. 在他的课程演讲中,Martin在谈到von瓶颈时指出了以下几点: 命令式编程将逐字编程概念化,这将成为可伸缩性的一个问题,因为我们处理的数据结构太低了。函数式编程语言(通常)倾向于定义用于处理高级抽象(如collectionspolynomialsdocuments等)的理论和技术。

我知道使用高级抽象确实可以帮助开发人员提高开发工作的效率,但是抽象如何帮助解决von瓶颈?

EN

回答 1

Stack Overflow用户

发布于 2018-04-13 15:00:13

您需要阅读John发表的原始论文“编程能从Von风格中解放出来吗?一种函数式及其程序代数”。它主要讨论了两种瓶颈,一种是物理硬件的局限性,另一种是由于程序员对语言的思维方式而形成的概念瓶颈。关于你的第二个问题由于早期的语言更接近于各自的硬件实现,程序员的思维习惯于模仿事件的顺序流。Functional为我们提供了一种新的方法来查看程序,在这些程序中并行执行或对一组数据工作进行操作。

关于第一个问题,我想重复一下来自wiki.c2.com的评论

“编程语言的选择对硬件有什么影响?在von机器上编译的函数式语言仍然会受到瓶颈的影响。”答案是ReferentialTransparency-这使得并行计算变得更容易处理(并且能够被自动化)。有效地并行化命令式语言仍然是一个活跃的研究课题。

http://wiki.c2.com/?CanProgrammingBeLiberatedFromTheVonNeumannStyle

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43922355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档