CLU (linguagem de programação)

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

CLU é uma linguagem de programação criada pelo MIT pela estudante Barbara Liskov entre 1974 e 1975. Utiliza construtores para tipos de dados abstratos, um primeiro passo para a programação orientada a objeto (OOP) largamente utilizada a partir da década de 1990, mas havia muitas outras características da orientação a objeto que não estavam incluídas da CLU, como herança.

História[editar | editar código-fonte]

O propósito da linguagem CLU foi prover suporte linguístico à abstração de dados. Segundo Barbara Liskov, a linguagem CLU foi a primeira linguagem implementada a atingir este objetivo.[1] Embora inicialmente o objetivo não fosse produzir uma nova linguagem, logo este objetivo surgiu entre a primavera e o verão de 1973.[1] O objetivo principal do projeto foi a pesquisa em metodologia de programação. CLU foi projetada como uma linguagem de propósito geral embora mais voltada á computação simbólica do que à computação numérica. O projeto iniciou-se em 1974 com quatro projetistas: Barbara Liskov e três estudantes Russ Atkinson, Craig Schaffert e Alan Syder. Após algum tempo, outros estudantes se juntaram ao grupo. Entre os princípios seguidos pelo grupo se destacaram:

  • Manter o foco no objetivo inicial da linguagem.
  • O uso do mínimo de recursos necessários.
  • Simplicidade.
  • Poder de Expressão.
  • Uniformidade
  • Segurança
  • Performance.

CLUsters[editar | editar código-fonte]

Um programa CLU consiste de um grupo de módulos. Três tipos de módulos são disponibilizados: Procedures, Iterators e Clusters. Uma procedure executa uma ação em zero ou mais argumentos e termina retornando zero ou mais objetos. Um iterator realiza a computação de uma seqüencia de itens baseado em seus argumentos. Um cluster implementa uma abstração de dados, que é um conjunto de objetos e um conjunto de operações primitivas para criar e manipular estes objetos. As operações podem ser tanto procedurais quanto abstrações de controle.[2]

A sintaxe da CLU foi baseada em ALGOL. Sintaxe CLU para a implementação de números complexos:

     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;

CLU não suporta conversão explícita de tipos de dados. Existe um único tipo de dado universal que é representado por any e um procedimento force[] que "força" um tipo de dado que o programa queira.

Influências do CLU em outras linguagens[editar | editar código-fonte]

  • Todos os objetos em programas CLU tem gerenciamento automático de memória. Influência direta em Java.
  • Python e C# incluíram generators (iterador em C#), que foi inicialmente desenvolvido para CLU [1]

Ver também[editar | editar código-fonte]

Referências

  1. a b BERGIN, Thomas J.; GIBSON, Richard G.. History of Programming Languages II. New York: ACM Press, Addison-Wesley, 1996. 864 pp. ISBN 0-201-89502-1
  2. LISKOV, Barbara; ATKINSON, Russel; BLOOM, Toby; MOSS, Eliot; SCHAFFERT, J. Craig; SCHEIFLER, Robert; SNYDER, Alan. CLU Reference Manual: Lecture Notes in Computer Science nº 114. New York: Springer-Verlag, 1981. 190 pp. ISBN 0-387-10836-X

Ligações externas[editar | editar código-fonte]