ML (linguagem de programação)

Origem: Wikipédia, a enciclopédia livre.
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

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

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

Olá Mundo

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

 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;

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

Ligações externas

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