命令式与声明式代码

时间:2014-04-09 15:44:13

标签: vb.net paradigms

我试图理解命令式和声明性范式之间的区别,因为我必须对Visual Basic进行分类。 NET在不同的范例中。除了面向对象之外,我想它也是势在必行或声明性的。如果有人可以帮我解释我是如何意识到我会感激

3 个答案:

答案 0 :(得分:2)

命令式代码是程序性的:执行此操作,然后执行此操作,然后按顺序执行此操作。它非常精确和具体,符合您的要求。我们用于构建最终用户应用程序的大多数语言都是命令式语言,包括VB.Net。表示命令式语言的语言结构包括if块,循环和变量赋值。

声明性代码只描述了您希望系统提供的结果,但可以将一些实际的实现细节留给系统。声明性语言的规范示例是SQL(尽管它也有一些命令性功能)。您还可以将文档标记语言视为声明性的。表示声明性语言的语言结构包括基于集合的操作和标记模板。

这就是诀窍:虽然VB.Net传统上被认为是必要的,但在2008年引入LINQ时,VB.Net也具有智能程序员将利用的重要声明功能。这些功能允许您编写看起来像 lot 的VB.Net代码,如SQL。

答案 1 :(得分:1)

我将CSharp / VB归类为多范式。它们是命令式的(IF,FOR,WHILE),声明式(LINQ)面向对象和功能(Lambda)。我认为在今天的风景中没有更多的纯语言,它们有几个范例。

"多范式语言的概念是提供一个框架,程序员可以在这个框架中以各种风格工作,自由混合来自不同范式的构造。 http://en.wikipedia.org/wiki/Timothy_Budd

答案 2 :(得分:0)

VB.NET从未要求LINQ被认为是声明性的。在我的理解中,声明性意味着编程语言可以说英语,即业务逻辑的编写完全符合要求。实际实施可能会有所不同。这在一些思想流派中称为域驱动设计(DDD)。

就此而言,任何面向对象的语言都可以被视为声明性的。这并没有带走它的命令功能 - 那些用于使它成为你想要的声明。这是正确实施OO概念背后的力量,并考虑到具体任务。