ML (linguagem de programação)

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
ML
Paradigma programação funcional, programação imperativa
Surgido em 1973
Criado por Robin Milner e outros na Universidade de Edimburgo
Estilo de tipagem: estática, forte
Dialetos: Standard ML, OCaml, F#
Influenciada por ISWIM
Influenciou Haskell, Cyclone, Nemerle

ML é uma linguagem de programação funcional de proposta geral desenvolvida por Robin Milner e outros no final dos anos 1970 na Universidade de Edimburgo, cuja sintaxe foi inspirada pelo ISWIM. É considerada uma linguagem funcional impura, por permitir a programação imperativa, ao contrário de outras linguagens funcionais como Haskell.

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

Standard ML foi criada por pesquisadores da LFCS (Laboratory for Foundations of Computer Science) na década de 1980. Em 1987, Robin Milner e LFCS ganharam o Prêmio BCS Award for Technical Excellence por trabalhar no Standard ML.

ML foi originalmente concebida como uma metalinguagem para o sistema de prova de teorema de Edimburgo LCF, mas evoluiu para uma linguagem de propósito geral de sucesso. Esta linguagem foi padronizada em 1990 e revista em 1997 como Standard ML 97.

Características[editar | editar código-fonte]

ML é conhecida como uma linguagem funcional e impura, por permitir efeitos colaterais e, por esta razão também é considerada uma linguagem de programação multi-paradigma.

As características do ML são incluir chamada-a-valor avaliação e estratégia, em primeira classe funções de gerenciamento automático de memória através de coleta seletiva de lixo, polimorfismo paramétrico, tipagem estática, tipo inferência, tipos de dados algébricos, correspondência padrão, exceção e manuseio.

Hoje existem vários idiomas no ML família; os dois principais dialetos são Standard ML e Caml, mas existem outros que influenciaram muitas outras línguas, como Haskell, Cyclone, e Nemerle.

Os pontos fortes da ML são aplicados principalmente em língua e manipulação (compiladores, analisadores, provadores de teoremas), mas é uma linguagem de aplicação geral também utilizado em bioinformática, sistemas financeiros, e aplicativos, incluindo um banco de dados genealógicos, um clienteP2P / programa servidor, etc..

Exemplos de código[editar | editar código-fonte]

Olá Mundo[editar | editar código-fonte]

O Programa Olá Mundo de linguagens funcionais é tipicamente a função Fatorial, como expressado abaixo em ML:

 fun fac : (int -> int) 0 = 1
   | fac n = n * fac (n-1);

O fatorial foi definido como uma função recursiva, com uma única condição de parada, assemelhando-se as descrições dessa função em livros de Matemática. Parte da primeira linha é opcional, e descreve os tipos da função.

Outros exemplos de funções[editar | editar código-fonte]

 fun quadrado(x:real) = x*x;
 fun reverso(L) = 
         if L = nil then nil
         else reverso(tl(L)) @ [hd(L)];
 (* máximo entre 3 reais - note que ML deduz que b e c são reais mesmo sem declaração *)
 fun maior3(a:real,b,c) = 
     if a>b then
         if a>c then a
         else c
     else
         if b>c then b
         else c;

Bibliografia[editar | editar código-fonte]

  • ULLMAN, Jeffrey D.. Elements of ML Programming: ML97 Edition. Englewood Cliffs, New Jersey, EUA: Prentice Hall, 1998. 383 p. ISBN 0-13-790387-1

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

Ícone de esboço Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.