C+-, nuevo lenguaje orientado a sujetos

C+- (cemásomenos)


Al contrario que C++, C+- es un lenguaje orientado a sujetos. Cada instancia de clase en C+-, denominadas sujetos, contiene miembros ocultos denominados prejuicios o preferencias no declaradas, que son inaccesibles a mensajes externos, así como miembros públicos denominados cuentas pendientes o reclamaciones. Los operadores C sobrecargados son:

  • >     mejor que
  • <     peor que
  • >>   mucho mejor que
  • <<   mejor olvidarlo
  • !      ni en broma
  • ==   comparable, más de lo mismo

C+- es un lenguaje fuertemente tipeado basado en estereotipos y lógica autocorrectiva. Las variable lógicas CIERTO y FALSO (llamadas constantes en lenguajes menos realistas) se complementan con CREIBLE y DUDOSO, que son más difusas que las categorías tradicionales de lógica difusa de Zadeh. Todos los booleanos pueden declararse con los modificadores fuerte (strong) o debil (weak). El modificador weak fue añadido para preservar la negación a instancias del Departamento de Defensa (DoD) para asegurar la compatibilidad con futuras versiones de Ada. Las falsedades bien construidas (WWFs) son compatibles a nivel de asignación con todos los booleanos. Las interacciones Qué-pasa-si y Porqué-no pueden implementarse con la condición especial incluso sino X entonces Y (everifnot X then Y).

C+- soporta ocultación de información y, sólo para clases amigables, distribución de rumores. Usando la terminología Eiffel, las clases no-amigables pueden eliminarse reordenando los contactos. Nótese que las clases amigables son intransitivas, volátiles y no-Abelianas.

La herencia simple y múltiple se han implementado mediante mutaciones aleatorias. Las reglas para desheredar las cubre un complejo protocolo de legalización testamentaria. Además de las clases base, derivada, virtual y abstracta, C+- soporta la clase destripador (gut). En ciertos contextos locales se permiten derivaciones polígamas y clases bastardas. En otros el acoplamiento flexible entre clases es ilegal así que se dispone de los operadores de matrimonio y divorcio:
marriage (MPariente1, FPariente1);
    // Ahora pueden derivarse clases hijo
    sclass MySclass:  public MPariente1, FPariente1
    {           //    define MySclass
 
    sclass YourSclass: public MPariente1, FPariente2
    // ilegítimo
 
    divorce (MPariente1, FPariente1);
 
    marriage (MPariente1, FPariente2);
    sclass YourSclass: public MPariente1, FPariente2
    {   //   OK casados
Las reglas de precedencia de operadores pueden suspenderse con la directiva #pragma dwim, denominada ¿Lo pillas o no? (Do What i Mean). La ANSIficación está firmemente establecida. El eslogan de C+- es: Se tu propio estándar.

No hay comentarios:

Publicar un comentario