O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Desenvolvendo DSLs Em Python

1.298 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
  • Seja o primeiro a comentar

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

×