meta-programaÇÃo nome: leonardo claro de Ávila ra: 4204147 orientador: sergio alves moreira
TRANSCRIPT
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 META-
PROGRAMAÇÃ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?
•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.
PARADIGMAS
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ÊNCIASARTHURGEEK.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/l-metaprog1.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/ruby-metaprogramming-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.