Niklaus Wirth设计了Pascal语言。他有个著名的论点: 算法 + 数据结构 = 计算机程序。理想的情况是编译器能聪明到理解算法,找出其中可以并行计算的部分。这样应用软件从串行计算过渡到并行计算时不用重新改写。我十年前就看到不少人在做这方面的工作,但没见到有实用的编译器问世。
Robert Kowalski是逻辑 程序设计的开创人之一。他提出:逻辑 + 控制 = 算法。如果程序员只负责算法的逻辑部分,由计算机来负责算法的控制部分,那么应用软件从串行计算过渡到并行计算顶多只是重新编译一下的事。