ML: Introdução à metaprogramação

Divulgação: Seu suporte ajuda a manter o site funcionando! Ganhamos uma taxa de indicação por alguns dos serviços que recomendamos nesta página.


ML significa “meta-language” e ML é um membro da família de linguagens de programação de uso geral.

Como muitas linguagens de programação antigas, o ML foi criado pela comunidade acadêmica para fins de pesquisa e seus recursos influenciaram muitas linguagens de programação que seguiram seus passos..

O que é ML?

ML é uma linguagem de programação funcional estendida e com vários paradigmas. Também é frequentemente rotulado como uma linguagem funcional “impura”, porque permite efeitos colaterais. Os recursos imperativos da ML são construídos sobre um núcleo funcional.

É particularmente útil para a metaprogramação – escrever programas que manipulam outros programas e esse é o objetivo original da ML. O ML é bem conhecido pelo uso do sistema do tipo Hindley-Milner que pode atribuir automaticamente os tipos da maioria das expressões sem anotações explícitas do tipo.

O ML é usado para uma ampla variedade de programação:

  • Aplicações científicas;
  • Provadores de teoremas;
  • Analisadores, compiladores, linguagens de programação;
  • Aplicações de sistemas financeiros;
  • Bioinformática e bancos de dados genealógicos.

O ML também é usado na educação, em cursos introdutórios de programação para demonstrar métodos e lógica básicos de programação.

Breve história do ML

A linguagem de programação ML foi desenvolvida na década de 1970 por Robin Milner e seus colegas da Universidade de Edimburgo durante seu trabalho na lógica para funções computáveis ​​(LCF) – um comprovador interativo de teoremas automatizados. O LCF foi implementado no ML e introduzido em 1972. A sintaxe do ML foi inspirada na linguagem de programação ISWIM.

O ML evoluiu ainda mais para várias linguagens de programação, todos parte da família ML. Os dois dialetos mais importantes hoje são Standard ML (SML) e OCaml. Recursos e idéias do ML influenciaram muitas outras linguagens como Cyclone, Elm, Nemerle, Haskell, C ++ e outras.

Recursos

Esta é uma linguagem estritamente tipificada, utilizando o sistema do tipo Hindley-Milner para garantir a segurança do tipo. Como resultado, um programa ML bem digitado não causa erros de tipo de tempo de execução. Sua sintaxe e controle de fluxo são fundamentalmente diferentes das linguagens do tipo C, portanto você não encontrará mapeamento trivial entre o código C e ML.

O ML apresenta um sistema automático de gerenciamento de memória através da coleta de lixo, onde a memória é automaticamente alocada e liberada pelo compilador. O polimorfismo paramétrico é suportado, o que significa que você pode escrever uma única função polimórfica que pode aceitar um parâmetro de qualquer tipo compatível.

O ML possui funções de primeira classe e fechamentos lexicais, facilitando a composição de várias funções, uma tarefa que pode ser muito complicada em linguagens de programação imperativas.

O ML também suporta tipos de dados polimórficos recursivos com correspondência de padrões e possui um excelente sistema de módulos centrado em estruturas e assinaturas. Utiliza principalmente avaliação ávida, o que significa que todas as subexpressões são sempre avaliadas, enquanto a avaliação preguiçosa ainda pode ser alcançada através do uso de tampas.

Introdução ao ML

Se você tem experiência anterior em métodos e lógica de programação, iniciar a programação de ML não deve representar um grande desafio. No entanto, se ML é sua primeira introdução à programação, você deve começar com tutoriais e cursos básicos, antes de passar para os mais exigentes.

Seu ambiente de desenvolvimento de ML

Obviamente, você precisará configurar seu próprio ambiente de desenvolvimento pessoal de ML. Sugerimos o uso do derivado e compilador Standard ML de New Jersey (SML / NJ), pois é o primeiro e mais popular compilador para a linguagem de programação ML.

Atualmente, o SML / NJ é suportado nas três grandes plataformas de sistemas operacionais: Mac OS X, Linux e Windows. Em outras palavras, você não deve ter problemas para executar um ambiente de desenvolvimento de ML em praticamente qualquer computador.

A instalação do ML nessas plataformas é simples e bem documentada. Basta escolher o download certo para sua plataforma na página de download SML / NJ e seguir as instruções de instalação.

Recursos

O ML existe há anos, portanto, não há escassez de vários recursos. Quando se trata de aprender o idioma, isso é sempre uma coisa boa. Mas lembre-se de que muitos recursos de ML são bastante antigos e podem estar desatualizados.

Concentramos nossa pesquisa em tutoriais relevantes e relativamente recentes, e-books e cursos interativos. No entanto, até recursos antigos podem ser úteis se você está apenas começando.

Cursos e tutoriais de ML

Focar nos recursos teóricos é uma boa maneira de dar os primeiros passos na programação de ML, mas depois de dominar o básico, você precisará mudar para exemplos práticos.

Para realmente apreciar todo o potencial do ML, você precisará vê-lo em ação. Quando estiver familiarizado com a sintaxe básica, você poderá levar seu treinamento para o próximo nível e experimentar guias e tutoriais práticos:

  • Programação no padrão ML’97: um tutorial on-line de Stephen Gilmore: este é um tutorial gratuito de introdução à introdução de conceitos importantes na linguagem do ML e ilustrando-os com breves exemplos. Está disponível em vários formatos.
  • Programação em ML padrão (pdf) por Robert Harper: este é um tutorial gratuito de ML criado para o curso da Carnegie Mellon University “Ciência da computação 12-212: Princípios de programação”.
  • Uma introdução suave ao ML por Andrew Cumming: este é um curso gratuito que contém uma introdução e sete lições sobre o ML com muitos outros recursos úteis.
  • Dicas para cientistas da computação sobre ML padrão (revisado) (pdf) por Mads Tofte: este é um livro gratuito, com inúmeras dicas úteis sobre programação de ML.

Recursos adicionais

O próximo passo é focar em recursos mais elaborados, como tutoriais práticos com muito código de exemplo. Esses exemplos da vida real ajudarão você a entender a programação de ML. Destacamos alguns dos mais comumente referenciados:

  • ML padrão do Guia do Usuário de Nova Jersey: este é um guia on-line para programação no ML padrão usando SML / NJ, cobrindo tudo, desde a instalação do SML / NJ até as perguntas frequentes, recursos especiais, estrutura do compilador e bibliotecas.
  • A Biblioteca Standard ML Basis é uma referência on-line da Biblioteca Standard ML Basis.

Livros

Também incluímos alguns livros sobre programação de ML. Muitos desses e-books são recomendados pelos educadores de ML e serão úteis como referência enquanto você estiver trabalhando em guias e tutoriais práticos:

  • ML para o Programador de Trabalho, 2ª Edição, por L C Paulson: concentra-se em explicar como programar na linguagem ML e no ensino dos fundamentos da programação funcional.
  • Elements of ML Programming, ML97 Edition (2nd Edition) por Jeffrey D Ullman: este livro fornece um tutorial introdutório altamente acessível e passo a passo sobre programação de ML e uma referência completa e explicação de recursos avançados. Nenhum conhecimento prévio de ML ou programação funcional é necessário.
  • The Little MLer, de Felleisen e Friedman: este livro apresenta aos iniciantes em programação e aos experientes em outras linguagens de programação os princípios de tipos, computação e construção de programas.

Avançando

Como em todas as linguagens de programação, o ML será finalmente aprendido fazendo. Portanto, configure seu ambiente de desenvolvimento e, com a ajuda desses recursos, comece a codificar. Boa sorte!

Aprenda sobre outras linguagens de programação interessantes.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map