c++ - subconjuntos - superconjunto simbolo
¿Qué significa cuando un idioma es un superconjunto paralelo de otro? (3)
Estoy leyendo un artículo de revista sobre C concurrente en tiempo real , y menciona en abstracto (para que cualquiera de ustedes pueda ver el contexto a través de ese enlace también) que "Concurrente C, es un superconjunto paralelo de C (y de C ++) ) ".
Ahora sé qué es un superconjunto, pero ¿qué quieren decir con un "superconjunto paralelo" cuando se refiere a los lenguajes de programación?
Esos son dos conceptos separados.
"Superconjunto" significa que amplía el idioma, sin quitar o cambiar ninguna característica de idioma existente. Entonces, cualquier programa C válido es (en teoría) un programa concurrente C válido.
"Paralelo" significa que las extensiones admiten ejecución paralela: los programas pueden hacer más de una cosa al mismo tiempo.
Este artículo es viejo . Fue escrito en algún milenio anterior. Es anterior al primer estándar de C ++ y el primer lanzamiento de la extensión en tiempo real a POSIX.
Si bien C ++ existía conceptualmente en aquel entonces, no había forma de decir qué era C ++. No había estándares de C ++, de facto u oficiales, en 1991. Hoy en día, existe un estándar de C ++.
C ++ no ha admitido oficialmente el paralelismo hasta hace muy poco. POSIX extiende C en lugar de C ++, y estrictamente hablando, no es un superconjunto; entra en conflicto con el estándar C en áreas clave. Lo mismo se aplica a las extensiones de Microsoft para C / C ++.
En mi opinión, los primeros superconjuntos paralelos de ISO / IEC 9899 e ISO / IEC 14882 son C11 y C ++ 11, y estrictamente hablando, incluso esos no son superconjuntos. Extienden C / C ++ en algunas áreas, pero lo restringen en otras (por ejemplo, restrict
, que no era una palabra clave en el estándar C original).
Reclaman dos cosas, ninguna es "modificada". Es como decir "un coche rojo rápido"; el auto es rápido y rojo, no tiene un color rápido.
- Es paralelo, porque admite programación paralela
- Es un superconjunto, porque cada programa C o C ++ válido también es un programa válido de Concurrent C.
Eso es un poco extraño también, ya que no todos los programas C válidos son válidos en C ++.