18
2017
12

电脑行为管理软件经典的声明式语言

这些语言都非常擅长利用类型系统和对象描述现实世界中的情形。它们都非常严格——即编译器要进行许多安全检查。安全检查(或类型合理性)表示,不能轻易地把Cow类型变成Sheep类型,所以如果在方法的签名中声明需要一个Cow类型,编译器就要保证不会给方法传送Sheep类型。这些语言通常有奇异的重用机制——用多态性原则编写的代码很容易抽象出来,这样其他地方的代码,从同一个模块到完全不同的项目,就可以利用已编写好的代码。这些语言还非常流行,所以如果需要一个团队来解决问题,显然这些语言就是很好的选择。

声明式语言:声明式语言描述了执行的内容,而不是执行方式(这与命令式语言相反,命令式语言描述了如何通过程序语句操作状态)。

为人所熟知的声明式语言是HTML,它描述了页面的布局:需要的字体、文本和修饰符,在哪里显示图像。另一个经典的声明式语言是SQL,它描述了要从关系数据库中提取的内容。最近的一个声明式语言例子是XAML(eXtensible Application Markup Language),它引出了一大串基于XML的声明式语言。

声明式语言非常擅长描述和传输数据。多年来,我们从命令式语言中调用它们来检索和操作数据。

动态语言包括具有“动态”特性的所有语言,如后期绑定和调用、REPL(Read Eval Print Loops)、快速类型化(不严格的类型化,即如果对象看起来像一只鸭子,行走起来也像一只鸭子,它就一定是一只鸭子)等。

动态语言一般会尽可能把编译的操作推迟到运行时执行。一般的C#方法调用Console.WriteLine()会进行静态检查,并在编译时链接,而动态语言会把这些操作都推迟到运行时。动态语言会在执行程序时查找Console类型上的WriteLine()方法,如果找到了,就在运行时调用它。如果没有找到该方法或该类型,动态语言就会让程序员关联一个“失败方法”,使程序与可以捕获这些失败,以编程方式“尝试其他操作”。

 

« 上一篇

相关文章:

评论列表: