我想知道在一起使用多种语言的过程的正式名称是什么。 可以说我正在用C ++编写一个程序,它调用Java函数(并使用Java库),有时也调用Python函数。然后它从这些调用中收集结果并继续执行。
您如何命名这个过程?
答案 0 :(得分:3)
根据您使用的语言数量,使用不同语言的子问题的小小,这些语言对于手头的子问题的具体程度,以及您自己设计的语言中有多少来解决该特定子问题,它可能被称为面向语言的编程,多语言编程或只是编程。
例如,仅使用C ++,您实际上使用三种语言:C ++本身,C ++模板语言(基本上是混合函数/逻辑编程语言)和C ++宏语言。投入make
和sh
进行构建,JSON进行配置,roff
进行文档编制,使用Tcl进行测试,您将看到8种语言。但是,我只是称之为正常的编程,没有什么特别之处。这同样适用于结合HTML,CSS,ECMAScript,JSON,SQL,Java,XML,sh
的典型Web项目。
面向语言的编程处于频谱的另一端。在LOP中,您将问题分解为更小的子问题,子子问题等等,然后使用最适合该特定子问题的语言解决每个子问题,可能是您专门为该子问题设计的子问题。基本上,在LOP中,您使用语言的方式与在OOP中使用 Objects 的方式相同,在PP中使用过程,函数在FP等等。通常,这些语言是特定于域的,而且通常不是图灵完备的。
多语言编程位于中间位置:对不同的大型组件使用不同的语言,但不是与单个对象相同的抽象级别,并且通常使用预先存在的图灵 - 完整的通用语言,而不是自己设计。例如,trend.ly使用“用于思考的Smalltalk,用于暴力计算的Java,用于可视化的ECMAScript,用于将这三者粘合在一起的Ruby和用于部署的sh
”。您的描述听起来最像 Polyglot Programming 给我。
请注意,这些定义非常主观:例如,在Lisp中,设计和实现新语言如此显而易见,自然而琐碎,没有Lisp程序员会称之为“语言导向”编程”。他们只称它为“编程”。
我不会对它施加严格的规则,说“5到10种语言之间是Polyglot,更多是面向语言,更少是编程”。这更像是一种心态:当你看一个问题时,首先想到的是什么?“我怎样才能用这种语言来解决这个问题”,“什么是最好的语言来解决这个问题”或“什么是完美的语言解决这个问题看起来像“?
答案 1 :(得分:1)
它被称为多语言编程。