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.
Del original en inglés: New Subject Oriented Programming Language
No hay comentarios:
Publicar un comentario