像C++、C这样的语言是作为通用语言设计的。一般来说,它必须从头开始,而不是一开始就抽象。否则,它就不能做抽象之前发生的事情,因为那不是他的任务。它在历史上能很好地解决的问题是在系统编程领域。
通用语言通常在语法上是严格的(如我们所见,C,C++,Java)。除了系统字段以外的应用领域通常是特定的、灵活的,而不是一般的,因此传统的“通用语言语法+通用库”的方式不适合解决这样的问题(因为它不是传统语言能够并且已经非常抽象的那些领域)。
通用语言是一种系统编程语言,所以它往往是基于一种接近计算机底层的离散形式,其他语言通常被称为自然语言,或者DSL语言(相对于C++,C)功能不强,不深入底层,不能控制计算机做任何一般的事情,所以它通常基于高层模型。
特定的应用领域往往需要更具体的抽象,需要特定的语言元素和特定的语法结构才能很好地表达出来。例如,在文本处理领域(当C++处理文本时,没有特殊的标准文本库,也没有直接支持regex表达式的语言级支持),Python显然比C++更容易支持该领域的工具。
除了比较C++和python之外,我们必须知道使用传统的系统编程方法和语言来完成特定的字段是不合适的,因为如果我们坚持这样做,那么我们要么需要通用语言来提供新的语法(这非常困难,语言的扩张是不现实的,它会导致语言过于复杂多变。或者我们可以在不改变语法的情况下提供新的库,比如文本模式匹配。C++在语法级别没有直接支持,所以它使用boost.regex。换言之,这些方法只需要在一般应用下进行专门化,让它们做一些自己不擅长和意想不到的事情。C和C++并不是绝对的“通用”(它们只是DSL,C是系统实现的DSL,C++是系统开发的DSL——注意,我们不考虑C++的第二层)。
想要了解更多编程语言可以致电 028-66005555