ML (Linguagem de Programação) - Wikipédia, A Enciclopédia Livre

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 12

ML (linguagem de

programação)
linguagem de programação

Este artigo não cita fontes confiáveis.


Saiba mais

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.
ML

Paradigma funcional · 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 Cyclone · Haskell ·


Kotlin · Nemerle ·
Rust

História
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» (http://www.lfcs.in
f.ed.ac.uk/) (em inglês)
«Moscow ML, uma implementação
popular de ML» (http://www.dina.kvl.d
k/~sestoft/mosml.html) (em inglês)
Standard ML de «New Jersey, outra
popular implementação» (http://smlnj.
sf.net/) Verifique valor |url= (ajuda)
(em inglês)
«F#, uma implementação de ML
utilizando o Microsoft .NET» (http://res
earch.microsoft.com/projects/ilx/fsha
rp.aspx) (em inglês)
«MLton, compilador ML com
otimizadores» (http://mlton.org/) (em
inglês)

Este artigo sobre informática é um


esboço. Você pode ajudar a Wikipédia
expandindo-o (https://pt.wikipedia.org/w/i
ndex.php?title=ML_(linguagem_de_progra
ma%C3%A7%C3%A3o)&action=edit) .

Obtida de "https://pt.wikipedia.org/w/index.php?
title=ML_(linguagem_de_programação)&oldid=60
616381"
Esta página foi editada pela última vez às
08h42min de 10 de março de 2021. •
Conteúdo disponibilizado nos termos da CC BY-
SA 4.0 , salvo indicação em contrário.

Você também pode gostar