META-PROGRAMAÇÃO
Nome: Leonardo Claro de Ávila
RA: 4204147
Orientador: Sergio Alves Moreira
INTRODUÇÃO
•O QUE É META-PROGRAMAÇÃO?
•O QUE É PARADIGMA DE PROGRAMAÇÃO?
•DEFINIÇÕES DA META-PROGRAMAÇÃO
•VISÃO GERAL DO PARADIGMA METAPROGRAMAÇÃO
•FUNCIONAMENTO DA META-PROGRAMAÇÃO
•BENEFÍCIOS DA META-PROGRAMAÇÃO
•CONCLUSÃO
O QUE É META-PROGRAMAÇÃO?
O QUE É PARADIGMA DE
PROGRAMAÇÃO?
PARADIGMAS
•Paradigma Imperativo
•Linguagens: Basic, Pascal, C, Assembler.
•Paradigma Funcional
•Linguagens: Lisp, ML, OCaml, Haskell.
•Paradigma Lógico
•Linguagens: Prolog.
•Paradigma Orientado Objectos
•Linguagens: C++, Java, Eiffel.
•Paradigma Meta-Programação
•Linguagens: Ruby, Python, Lua.
•Paradigma Concorrente
•Linguagens: Occam, Ada, Java.
DEFINIÇÕES DA
META-PROGRAMAÇÃO
Metacódigo: é um programa que gera como saída o código
para outro programa. Nada além e não requer o uso de
nenhum outro paradigma.
Metafunções: são funções que retornam outras funções (e
muitas vezes também recebem funções como parâmetro).
Com elas é possível criar funções dinamicamente, em tempo
de execução.
Metaclasses: são classes cujas instâncias também são
classes, portanto com elas é possível criar classes em tempo
de execução.
VISÃO GERAL DO PARADIGMA
META-PROGRAMAÇÃO
FUNCIONAMENTO DA
META-PROGRAMAÇÃO
BENEFÍCIOS DA
META-PROGRAMAÇÃO
CONCLUSÃO
DÚVIDAS?
REFERÊNCIAS
ARTHURGEEK.NET – Disponível em:
<http://www.arthurgeek.net/2007/5/22/codigos-mais-claros-usando-ruby>.
Acesso em: 11 maio.2008.
HTMLSTAFF – Disponível em: <http://www.htmlstaff.org/ver.php?id=3764>.
Acesso em: 25 fev. 2008.
IBM – Disponível em: <http://www.ibm.com/developerworks/linux/library/lmetaprog1.html>. Acesso em: 20 março.2008.
MINERAMA – Disponível em:
<http://www.minerama.net/tags/metaprograma%C3%A7%C3%A3o>.
Acesso em: 20 maio.2008.
OLA BINI – Disponível em: <http://ola-bini.blogspot.com/2006/09/rubymetaprogramming-techniques.html >. Acesso em: 22 maio.2008.
REFLEXÕES DE MONTE GASPPA E GIULIA C. – Disponível em:
<http://montegasppa.blogspot.com/2006/07/metaprogramao.html>.
Acesso em: 25 fev. 2008.
WEBLY / IEVOLUTION – Disponível em:
<http://forum.ievolutionweb.com/index.php?showtopic=13999>. Acesso em: 12
maio.2008.
WIKIPEDIA – Disponível em: <http://en.wikipedia.org/wiki/Metaprogramming>.
Acesso em : 24 fev. 2008.
Download

Apresentação - META