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

pep*_*ers 11 c c++ concurrency programming-languages real-time

我正在阅读一篇关于Real-Time Concurrent C的期刊文章,它在摘要中提到(所以你们任何人都可以通过该链接看到上下文)"并发C,是C(和C++的并行超集) )".

现在我知道超集是什么,但在引用编程语言时,它们是指"并行超集"是什么意思?

unw*_*ind 19

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

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

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


Mik*_*our 9

这是两个独立的概念.

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

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


Dav*_*men 6

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

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

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

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