2

我想知道一起使用多种语言的过程的正式名称是什么。假设我正在用 C++ 编写一个程序,该程序调用 Java 函数(并使用 Java 库),有时还调用 Python 函数。然后它收集这些调用的结果并继续执行。

你会如何命名这个过程?

4

2 回答 2

3

根据您使用多少种不同的语言、使用不同语言的子问题有多小、这些语言对于手头的子问题的具体程度以及您自己设计的用于解决该特定子问题的语言中的多少,可能是称为Language-Oriented ProgrammingPolyglot Programming或只是Programming

例如,仅使用 C++,您实际上会使用三种语言:C++ 本身、C++ 模板语言(基本上是一种混合功能/逻辑编程语言)和 C++ 宏语言。投入makesh用于构建,JSON 用于配置、roff文档和 Tcl 用于测试,您正在查看 8 种语言。但是,我只是称其为普通Programming,并没有什么特别之处。这同样适用于结合 HTML、CSS、ECMAScript、JSON、SQL、Java、XML 的典型 Web 项目sh

面向语言的编程处于光谱的另一端。在 LOP 中,您将问题分解为更小的子问题、子子问题等,然后使用最适合该特定子问题的语言解决每个子问题,可能是您专门为该子问题设计的语言。基本上,在 LOP 中,您使用语言的方式与在 OOP 中使用对象、在 PP中使用过程、在 FP中使用函数等方式相同。通常,这些语言是特定于领域的,通常不是图灵完备的。

多语言编程处于中间位置:您对不同的较大组件使用不同的语言,但与单个对象的抽象级别不同,并且您通常使用预先存在的图灵完备的通用语言,而不是设计他们自己。例如,trend.ly 使用“Smalltalk 用于思考,Java 用于蛮力计算,ECMAScript 用于可视化,Ruby 用于将这三者粘合在一起并sh用于部署”。对我来说,您的描述听起来最像多语言编程

请注意,这些定义是非常主观的:例如,在 Lisp 中,设计和实现新语言是如此明显、自然和微不足道,以至于没有 Lisp 程序员会称他所做的事情为“面向语言的编程”。他们只是称之为“编程”。

我不会对它提出硬性规定,说“在 5 到 10 种语言之间是多语言,更多是面向语言的,更少只是编程”。这更像是一种心态:当你看到一个问题时,首先想到的是“我如何用这种语言解决这个问题”,“解决这个问题的最佳语言是什么”或“完美的语言是什么?解决这个问题的样子”?

于 2012-08-21T14:08:02.767 回答
1

它被称为多语言编程。

于 2012-08-21T13:30:31.837 回答