声明式编程是一种指定程序应该做什么而不是指定如何做的方法。大多数计算机语言都是基于解决问题所需的步骤,但是有些语言只指出问题的本质特征,并由计算机来决定解决问题的最佳方法。前者支持命令式编程,而后者支持声明...
声明式编程是一种指定程序应该做什么而不是指定如何做的方法。大多数计算机语言都是基于解决问题所需的步骤,但是有些语言只指出问题的本质特征,并由计算机来决定解决问题的最佳方法。前者支持命令式编程,而后者支持声明式编程

声明式编程是一种指定程序应该做什么的方法,我们可以考虑下面的SQL示例,从销售数据中获取利润超过某个数字(例如700美元)的所有销售区域Select Region,Profit from Sales where Profit;700此语句不指示SQL系统必须执行的操作获取数据,SQL系统可以遍历每个销售记录,判断是否满足条件,或者,它可以快速地从预先排序的数据中获取前几条记录,语句只表示所需数据的性质,Prolog是一种声明性编程语言,用来表示实体之间的逻辑关系祖先(M,C):—母亲(M,C)祖先(X,Z):—母亲(X,Y),祖先(Y,Z)上述程序表示真理。如果M是C的母亲,那么M就是C的祖先。如果X是某人Y的母亲,而Y又是Z的祖先,那么X是Z的祖先,有了这个和一些母子事实,程序就可以回答关于整个母系家谱的问题,在程序执行过程中,Prolog系统建立了许多真实的语句,这样就创建了一个知识库。这个知识库可以自己高效地搜索。上述程序的创建者没有指定如何搜索。HTML和CSS是声明性编程语言。例如,HTML示例
<;table border="1">;表示细边框。CSS示例是
color:blue。它指定文本颜色。如这些示例所示,HTML和CSS指定网页上应该显示什么,但不是如何显示。声明性编程语言的优势主要有两个方面。程序简洁;这使得即使是非程序员也很容易获得解决方案上面的SQL示例,分析师或业务支持人员可以获得所需的信息,类似地,外行人员可以用简单的HTML和CSS命令编写可接受的web页面声明式编程模型的第二个优点是,在后台的计算机系统中提供了指示如何解决问题的重复命令式代码,这种代码可以高效地结合计算中的最佳思想,可以利用并行性。