Desenvolvendo DSLs Em Python

1.251 visualizações

Publicada em

Palestra "relâmpago" (15 min) mostrando alguns detalhes de construção de DSLs em Python: decorators, sobrecarga de operadores, __getattr__, utilizando como exemplo a biblioteca de expectations e matchers Should-DSL (http://github.com/hugobr/should-dsl)

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.251
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
39
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvendo DSLs Em Python

  1. 1. Desenvolvendo DSLs em Python Rodrigo S. Manhães Núcleo de Pesquisa em Sistemas de Informação/IFF Laboratório de Ciências Matemáticas/UENF Gerência de Recursos Computacionais/UENF
  2. 2. domain specific language
  3. 3. make CSS SQL Django * Ruby on Rails *
  4. 4. concisão
  5. 5. concisão fluência
  6. 6. Django
  7. 7. concisão fluência expressividade
  8. 8. unittest should-dsl
  9. 9. should-dsl expectativas para testes e especificações automatizadas http://github.com/hugobr/should-dsl
  10. 10. O que é isso? e isso?
  11. 11. sobrecarga de operadores
  12. 12. sobrecarga de operadores
  13. 13. ...entre outros
  14. 14. ops!
  15. 15. operadores invertidos ...entre outros
  16. 16. __ror__
  17. 17. __ror__ __or__
  18. 18. objeto atributo
  19. 19. e se eu quiser outros matchers?
  20. 20. matchers customizados
  21. 21. concisão fluência expressividade extensibilidade
  22. 22. atributo??
  23. 23. Python decorators
  24. 24. classe Should
  25. 25. respondendo a mensagens perdidas
  26. 26. classe Should
  27. 27. __ror__ __or__
  28. 28. E isso foi só o começo... inspect e frame objects http://github.com/hugobr/pyhistorian http://github.com/nsigustavo/ludibrio codecs e tokenize http://github.com/fmeyer/yeti
  29. 29. De onde vêm as imagens (4) http://www.flickr.com/photos/clover_1/176047283/ (5) http://www.flickr.com/photos/ysc/2179798100/ (25) http://www.flickr.com/photos/jasperdeboer/15346117/ (37) http://www.flickr.com/photos/waldopepper/3424717308/ (38) http://www.flickr.com/photos/lwr/12364944/
  30. 30. Alguns exemplos extraídos de http://media.brianbeck.com/files/Python_DSLs_I.pdf

×