随着多核处理器普及,C++/C#/java这类过程式语言早晚要走向没落。

来源: 2010-10-28 17:36:36 [旧帖] [给我悄悄话] 本文已被阅读:

现在计算机已经越来越背离传统的冯.诺意曼计算机了。过程式语言不适合并行计算。

Niklaus Wirth设计了Pascal语言。他有个著名的论点: 算法 + 数据结构 = 计算机
程序。如果编译器能聪明到理解算法,找出其中可以并行计算的部分。这样应用软
件从串行计算过渡到并行计算时不用重新改写。我十几年前就看到不少人在做这方
面的工作,但没见到有实用的编译器问世。所以过程式语言早晚要走向没落。

Robert Kowalski是逻辑程序设计的开创人之一。他提出:逻辑 + 控制 = 算法。如
果程序员只负责算法的逻辑部分,由计算机来负责算法的控制部分,计算机可以根
据需要,把一个大任务分解成若干小任务,分配给数个处理器执行。那么应用软件
从串行计算过渡到并行计算顶多只是重新编译一下的事。