ML (linguagem de programação)

ML
Paradigma
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
  • Cyclone
  • Haskell
  • Kotlin
  • Nemerle
  • Rust

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 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;

Bibliografia

  • 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

  • «Laboratory for Foundations of Computer Science» (em inglês) 
  • «Moscow ML, uma implementação popular de ML» (em inglês) 
  • Standard ML de «New Jersey, outra popular implementação» Verifique valor |url= (ajuda) (em inglês) 
  • «F#, uma implementação de ML utilizando o Microsoft .NET» (em inglês) 
  • «MLton, compilador ML com otimizadores» (em inglês) 
  • v
  • d
  • e
Página de categoria Categoria · Lista Lista
Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.
  • v
  • d
  • e