CLU

CLU es un lenguaje de programación creado por el instituto de tecnología de Massachusetts ( MIT) por Barbara Liskov y sus estudiantes entre 1974 y 1975. Usaba constructores para los tipos de datos abstractos que se incluyeron en el código, un paso adelante en la programación orientada a objetos (POO). No obstante, muchas otras de las características de POO estaban incompletas o necesitaban un mayor desarrollo. Por otra parte, el lenguaje se obstaculiza por una sintaxis que en ocasiones puede resultar engorrosa. CLU y Alphard parecen ser ambos lenguajes orientados a objetos completos, sin serlo en realidad.


CLUsters

La sintaxis de CLU está basada en ALGOL, un punto de partida para el diseño de la mayoría de nuevos lenguajes. La incorporación más importante es el concepto de cluster, CLU's type extension system and the root of the language's name (CLUster), que viene a significar, "tipo de extensión del sistema del CLU y de la raíz de los nombres de los lenguajes". Los clusters corresponden generalmente al concepto de "objeto" en un lenguaje orientado a objetos, y tienen una sintaxis muy similar. Por ejemplo, a continuación vemos la sintaxis de CLU para un cluster que implementa números complejos:I viene de la palabra Claudia "CLU"


    complex_number = cluster is add, subtract, multiply,....
         rep = record [ real_part: real, imag_part: real ]
         add = proc... end add;
         subtract = proc... end subtract;
         multiply = proc... end multiply;
        ...
    end complex_number;

Mientras que los clusters ofrecieron un sistema entonces-avanzado para los programas de estructuración, CLU no ofreció ninguna clase de estructura para los clusters. Los nombres de los clusters son globales, y no se proporcionó ningún mecanismo a los clusters para agruparlos o permitir que sean creados "localmente" dentro de otros clusters. Este problema no se da solo en CLU, ya que sorprendentemente muchos lenguajes han carecido de esta característica - el problema se encuentra centralizado en ALGOL, de dar alcance a las variables. Parece ser, que dar alcance a los nombres del cluster/objeto sería una expansión obvia.


CLU no realiza conversiones de tipo implícito. En un cluster, las conversiones tipo explícito "up" y "down" cambian entre el tipo abstracto y la representación. Hay un tipo universal "any", y un procedimiento force[] para comprobar que un objeto es de un tipo correcto. Los objetos pueden ser mutable o inmutables, este último "tipos base" por ejemplo números enteros.

Other Languages
فارسی: سی‌ال‌یو
suomi: CLU
français: CLU (langage)
galego: CLU
日本語: CLU
polski: CLU
русский: Клу
中文: CLU