λPage Thesis Slides

596 views

Published on

λPage Thesis Presentation

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
596
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

λPage Thesis Slides

  1. 1. Introducci´n o Conociendo λPage λPage por Dentro Pr´ximos Pasos o λPage Fernando Benavides Departamento de Computaci´n, FCEyN,Universidad de Buenos Aires. o 19 de julio de 2010 Fernando Benavides λPage
  2. 2. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o El Orador Fernando Benavides El camino recorrido Alumno de Computaci´n desde 2001 o Programador desde hace m´s de 10 a˜os a n Programador Funcional desde hace 2 a˜os n La idea Desarrollar una herramienta para los programadores funcionales como las que existen en el paradigma de orientaci´n a objetos o Fernando Benavides λPage
  3. 3. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o El Orador Fernando Benavides El camino recorrido Alumno de Computaci´n desde 2001 o Programador desde hace m´s de 10 a˜os a n Programador Funcional desde hace 2 a˜os n La idea Desarrollar una herramienta para los programadores funcionales como las que existen en el paradigma de orientaci´n a objetos o Fernando Benavides λPage
  4. 4. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o El Orador Fernando Benavides El camino recorrido Alumno de Computaci´n desde 2001 o Programador desde hace m´s de 10 a˜os a n Programador Funcional desde hace 2 a˜os n La idea Desarrollar una herramienta para los programadores funcionales como las que existen en el paradigma de orientaci´n a objetos o Fernando Benavides λPage
  5. 5. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o Trabajando en Haskell ¿C´mo trabaja un desarrollador o Haskell? Crea o modifica m´dulos con o su editor de texto favorito Los compila utilizando GHC Genera paquetes con Cabal Para realizar pruebas, recurre a GHCi Fernando Benavides λPage
  6. 6. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o Trabajando en Haskell ¿C´mo trabaja un desarrollador o Haskell? Crea o modifica m´dulos con o su editor de texto favorito Los compila utilizando GHC Genera paquetes con Cabal Para realizar pruebas, recurre a GHCi Fernando Benavides λPage
  7. 7. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o Trabajando en Haskell ¿C´mo trabaja un desarrollador o Haskell? Crea o modifica m´dulos con o su editor de texto favorito Los compila utilizando GHC Genera paquetes con Cabal Para realizar pruebas, recurre a GHCi Fernando Benavides λPage
  8. 8. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o Trabajando en Haskell ¿C´mo trabaja un desarrollador o Haskell? Crea o modifica m´dulos con o su editor de texto favorito Los compila utilizando GHC Genera paquetes con Cabal Para realizar pruebas, recurre a GHCi Fernando Benavides λPage
  9. 9. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o Trabajando en Haskell ¿C´mo trabaja un desarrollador o Haskell? Crea o modifica m´dulos con o su editor de texto favorito Los compila utilizando GHC Genera paquetes con Cabal Para realizar pruebas, recurre a GHCi Fernando Benavides λPage
  10. 10. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o GHCi GHCi permite: introducir c´digo para o ejecutarlo y observar los resultados obtenidos definir expresiones y utilizarlas cargar m´dulos para utilizar o sus funciones, tipos de datos, etc. Fernando Benavides λPage
  11. 11. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o Trabajando con Lenguajes Orientados a Objetos En cambio quienes programan en Java, .NET o Smalltalk cuentan con una IDE que provee Autocompleci´n de c´digo o o Compilaci´n autom´tica o a Debugger integrado Herramientas para “micro-testing” Fernando Benavides λPage
  12. 12. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o Trabajando con Lenguajes Orientados a Objetos En cambio quienes programan en Java, .NET o Smalltalk cuentan con una IDE que provee Autocompleci´n de c´digo o o Compilaci´n autom´tica o a Debugger integrado Herramientas para “micro-testing” Fernando Benavides λPage
  13. 13. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o Trabajando con Lenguajes Orientados a Objetos En cambio quienes programan en Java, .NET o Smalltalk cuentan con una IDE que provee Autocompleci´n de c´digo o o Compilaci´n autom´tica o a Debugger integrado Herramientas para “micro-testing” Fernando Benavides λPage
  14. 14. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o Trabajando con Lenguajes Orientados a Objetos En cambio quienes programan en Java, .NET o Smalltalk cuentan con una IDE que provee Autocompleci´n de c´digo o o Compilaci´n autom´tica o a Debugger integrado Herramientas para “micro-testing” Fernando Benavides λPage
  15. 15. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o Trabajando con Lenguajes Orientados a Objetos En cambio quienes programan en Java, .NET o Smalltalk cuentan con una IDE que provee Autocompleci´n de c´digo o o Compilaci´n autom´tica o a Debugger integrado Herramientas para “micro-testing” Fernando Benavides λPage
  16. 16. Introducci´n o Conociendo λPage Presentaci´n o λPage por Dentro Motivaci´n o Pr´ximos Pasos o “Micro-testing” El Workspace de Smalltalk permite: introducir c´digo para o ejecutarlo, inspeccionarlo y analizar los resultados obtenidos administrar varias paginas de texto crear objetos y utilizarlos Fernando Benavides λPage
  17. 17. Introducci´n o Conociendo λPage Como el Workspace de Smalltalk . . . λPage por Dentro . . . pero para Haskell Pr´ximos Pasos o Conociendo λPage Fernando Benavides λPage
  18. 18. Introducci´n o Conociendo λPage Como el Workspace de Smalltalk . . . λPage por Dentro . . . pero para Haskell Pr´ximos Pasos o Como el Workspace de Smalltalk . . . λPage es similar al Workspace de Smalltalk pues permite al usuario Evaluar expresiones Detectar excepciones Administrar p´ginas de texto libre a Intercalar expresiones y definiciones Fernando Benavides λPage
  19. 19. Introducci´n o Conociendo λPage Como el Workspace de Smalltalk . . . λPage por Dentro . . . pero para Haskell Pr´ximos Pasos o . . . pero para Haskell Pero, a su vez, por estar hecho para Haskell, presenta otros desaf´ ıos Lazy evaluation Expresiones puras vs. Expresiones con efectos Administraci´n de m´dulos o o Fernando Benavides λPage
  20. 20. Introducci´n o Conociendo λPage Como el Workspace de Smalltalk . . . λPage por Dentro . . . pero para Haskell Pr´ximos Pasos o . . . pero para Haskell Pero, a su vez, por estar hecho para Haskell, presenta otros desaf´ ıos Lazy evaluation Expresiones puras vs. Expresiones con efectos Administraci´n de m´dulos o o Fernando Benavides λPage
  21. 21. Introducci´n o Conociendo λPage Como el Workspace de Smalltalk . . . λPage por Dentro . . . pero para Haskell Pr´ximos Pasos o . . . pero para Haskell Pero, a su vez, por estar hecho para Haskell, presenta otros desaf´ ıos Lazy evaluation Expresiones puras vs. Expresiones con efectos Administraci´n de m´dulos o o Fernando Benavides λPage
  22. 22. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o λPage por Dentro Fernando Benavides λPage
  23. 23. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o Desarrollo de λPage λPage est´ desarrollado en Haskell a En gran parte est´ desarrollado utilizando λPage a Se conecta con GHC a trav´s de su API e Su interfaz gr´fica fue creada usando wxHaskell a Su alto grado de paralelismo se logra utilizando eprocess Fernando Benavides λPage
  24. 24. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o Desarrollo de λPage λPage est´ desarrollado en Haskell a En gran parte est´ desarrollado utilizando λPage a Se conecta con GHC a trav´s de su API e Su interfaz gr´fica fue creada usando wxHaskell a Su alto grado de paralelismo se logra utilizando eprocess Fernando Benavides λPage
  25. 25. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o Desarrollo de λPage λPage est´ desarrollado en Haskell a En gran parte est´ desarrollado utilizando λPage a Se conecta con GHC a trav´s de su API e Su interfaz gr´fica fue creada usando wxHaskell a Su alto grado de paralelismo se logra utilizando eprocess Fernando Benavides λPage
  26. 26. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o Desarrollo de λPage λPage est´ desarrollado en Haskell a En gran parte est´ desarrollado utilizando λPage a Se conecta con GHC a trav´s de su API e Su interfaz gr´fica fue creada usando wxHaskell a Su alto grado de paralelismo se logra utilizando eprocess Fernando Benavides λPage
  27. 27. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o Desarrollo de λPage λPage est´ desarrollado en Haskell a En gran parte est´ desarrollado utilizando λPage a Se conecta con GHC a trav´s de su API e Su interfaz gr´fica fue creada usando wxHaskell a Su alto grado de paralelismo se logra utilizando eprocess Fernando Benavides λPage
  28. 28. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o Arquitectura Principales Requerimientos: Conexi´n con GHC o Paralelismo Errores Controlados Presentaci´n de Resultados o Fernando Benavides λPage
  29. 29. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o Ejemplo de Interacci´n o Veremos c´mo interact´an estos componentes para evaluar la o u siguiente expresi´n: o r e a d F i l e ” hpage . c a b a l ” >>= r e t u r n . l e n g t h . head . l i n e s Fernando Benavides λPage
  30. 30. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o Ejemplo de Interacci´n o Procesos Involucrados: UI Manager operando Fernando Benavides λPage
  31. 31. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o Ejemplo de Interacci´n o Procesos Involucrados: UI Manager esperando HPage Server operando Fernando Benavides λPage
  32. 32. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o Ejemplo de Interacci´n o Procesos Involucrados: UI Manager esperando HPage Server esperando GHC Server operando Fernando Benavides λPage
  33. 33. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o Ejemplo de Interacci´n o Procesos Involucrados: UI Manager operando IO Server operando Value Filler esperando Fernando Benavides λPage
  34. 34. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o Ejemplo de Interacci´n o Procesos Involucrados: UI Manager operando Value Filler esperando Element Filler operando Runaway Killer operando Fernando Benavides λPage
  35. 35. Introducci´n o Conociendo λPage Desarrollo λPage por Dentro Arquitectura Pr´ximos Pasos o Ejemplo de Interacci´n o Procesos Involucrados: UI Manager operando Fernando Benavides λPage
  36. 36. Introducci´n o Conociendo λPage Limitaciones λPage por Dentro Trabajo a Futuro Pr´ximos Pasos o Pr´ximos Pasos o Fernando Benavides λPage
  37. 37. Introducci´n o Conociendo λPage Limitaciones λPage por Dentro Trabajo a Futuro Pr´ximos Pasos o Limitaciones M´s tipos especiales a Tuplas Either Maybe Composici´n o Listas de listas Acciones que generen listas Listas de acciones Nuevas visualizaciones M´s que un cuadro de texto a ¿Qu´ se puede hacer? e Clase Presentable Fernando Benavides λPage
  38. 38. Introducci´n o Conociendo λPage Limitaciones λPage por Dentro Trabajo a Futuro Pr´ximos Pasos o Limitaciones M´s tipos especiales a Tuplas Either Maybe Composici´n o Listas de listas Acciones que generen listas Listas de acciones Nuevas visualizaciones M´s que un cuadro de texto a ¿Qu´ se puede hacer? e Clase Presentable Fernando Benavides λPage
  39. 39. Introducci´n o Conociendo λPage Limitaciones λPage por Dentro Trabajo a Futuro Pr´ximos Pasos o Limitaciones M´s tipos especiales a Tuplas Either Maybe Composici´n o Listas de listas Acciones que generen listas Listas de acciones Nuevas visualizaciones M´s que un cuadro de texto a ¿Qu´ se puede hacer? e Clase Presentable Fernando Benavides λPage
  40. 40. Introducci´n o Conociendo λPage Limitaciones λPage por Dentro Trabajo a Futuro Pr´ximos Pasos o Limitaciones M´s tipos especiales a Tuplas Either Maybe Composici´n o Listas de listas Acciones que generen listas Listas de acciones Nuevas visualizaciones M´s que un cuadro de texto a ¿Qu´ se puede hacer? e Clase Presentable Fernando Benavides λPage
  41. 41. Introducci´n o Conociendo λPage Limitaciones λPage por Dentro Trabajo a Futuro Pr´ximos Pasos o Otras Herramientas Con λPage hemos acercado al desarrollador Haskell s´lo una de o muchas herramientas: Mejores herramientas para TDD Refactoring An´lisis de Terminaci´n a o ... Fernando Benavides λPage
  42. 42. Introducci´n o Conociendo λPage Limitaciones λPage por Dentro Trabajo a Futuro Pr´ximos Pasos o Otras Herramientas Con λPage hemos acercado al desarrollador Haskell s´lo una de o muchas herramientas: Mejores herramientas para TDD Refactoring An´lisis de Terminaci´n a o ... Fernando Benavides λPage
  43. 43. Introducci´n o Conociendo λPage Limitaciones λPage por Dentro Trabajo a Futuro Pr´ximos Pasos o Agradecimientos / Preguntas Sitio Web de λPage: http://hpage.haskell.com λPage en Github http://github.com/elbrujohalcon/hPage Fernando Benavides en la Internet http://profiles.google.com/greenmellon Fernando Benavides λPage

×