当一种语言是另一种语言的并行超集时,这意味着什么?

时间:2015-05-21 15:27:27

标签: c++ c concurrency programming-languages real-time

我正在阅读a journal article about Real-Time Concurrent C,它在摘要中提到(所以你们任何人都可以通过该链接看到上下文)"并发C,是C的并行超集(和C ++)"。

现在我知道超集是什么,但他们的意思是"并行超集"何时提到编程语言?

3 个答案:

答案 0 :(得分:19)

他们声称有两件事,而不是一件被“修改”的事情。这就像说“快速的红车”;汽车快速红色,它没有快速的颜色。

  • 它是并行的,因为它支持并行编程
  • 这是一个超集,因为每个有效的C或C ++程序也是一个有效的并发C程序。

这也有点奇怪,因为并非每个有效的C程序都是有效的C ++程序。

答案 1 :(得分:9)

这是两个不同的概念。

"超集"意味着它扩展了语言,而不删除或更改任何现有的语言功能。因此,任何有效的C程序(理论上)都是有效的并发C程序。

"并行"意味着扩展支持并行执行 - 程序可以同时执行多个操作。

答案 2 :(得分:6)

这篇文章。它写于上一个千年。它早于第一个C ++标准和POSIX的实时扩展的第一个版本。

虽然C ++在概念上存在,但是没有办法说出C ++是什么。 1991年没有C ++标准,事实上或官方标准。如今,有一个C ++标准。

直到最近,C ++还没有正式支持并行性。 POSIX扩展了C而不是C ++,严格来说,它不是超集;它与关键领域的C标准相冲突。这同样适用于C / C ++的Microsoft扩展。

在我看来,ISO / IEC 9899和ISO / IEC 14882的第一个并行超集是C11和C ++ 11,严格来说,即使那些也不是超集。它们在某些领域扩展了C / C ++,但在其他领域限制了它(例如,restrict,它不是原始C标准中的关键字。)