编程中的综合;究竟是什么?

时间:2013-07-06 11:05:58

标签: ruby-on-rails metaprogramming synthesis

目前我正在阅读一本关于Software Development Engineering的书。在本书的第一章中,它说:

  

综合是一种用于开发软件的生产力机制,通过该机制生成实现而不是手动创建。

让我困惑,我在互联网上找不到任何明确的解释。 那么有人能在编程领域告诉我一个真实世界的例子吗?如果它类似于代码生成器(例如Ruby on Rails命令行,用于自动创建项目目录和代码文件);它与元编程的区别是什么?

感谢。

2 个答案:

答案 0 :(得分:2)

程序合成是一种特殊形式的自动编程。您可以在机器人中考虑自动编程,其中程序是使用人工智能编写的,其他任务是自动执行的。这意味着如果你编写1 + 2的代码,它将给你3.所以你不必为5 + 6编写特殊代码来获得11。

有关详细信息,请参阅http://en.wikipedia.org/wiki/Program_synthesis

答案 1 :(得分:2)

  

综合是一种用于开发软件的生产力机制,通过该机制生成实现而不是手动创建。

这是事实,虽然这并没有提到“编程中的综合”究竟是什么。编程综合意味着处理软件开发过程的各个方面 至少原则上可以自动化。它的目标是从声明性规范中机械地合成正确和有效的计算机代码。正如this article.

所述

基本上,这意味着您可以指定一个规范,例如合成机器,它将根据您提供的规范生成输出(代码)。

代码综合和代码生成之间的主要区别在于代码合成发生在runtime