SlideShare a Scribd company logo
1 of 43
Download to read offline
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


                     17 de julio de 2010




               Fernando Benavides    λPage
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
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
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
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
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
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
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
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
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
                                               Herramientas de refactoring
                                               Debugger integrado
                                               Herramientas para
                                               “micro-testing”




                 Fernando Benavides    λPage
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
                                               Herramientas de refactoring
                                               Debugger integrado
                                               Herramientas para
                                               “micro-testing”




                 Fernando Benavides    λPage
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
                                               Herramientas de refactoring
                                               Debugger integrado
                                               Herramientas para
                                               “micro-testing”




                 Fernando Benavides    λPage
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
                                               Herramientas de refactoring
                                               Debugger integrado
                                               Herramientas para
                                               “micro-testing”




                 Fernando Benavides    λPage
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
                                               Herramientas de refactoring
                                               Debugger integrado
                                               Herramientas para
                                               “micro-testing”




                 Fernando Benavides    λPage
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
                                               Herramientas de refactoring
                                               Debugger integrado
                                               Herramientas para
                                               “micro-testing”




                 Fernando Benavides    λPage
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
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
Introducci´n
                                    o
                    Conociendo λPage     Como el Workspace de Smalltalk . . .
                    λPage por Dentro     . . . pero para Haskell
                       Pr´ximos Pasos
                         o




λ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
Introducci´n
                                      o
                      Conociendo λPage     Como el Workspace de Smalltalk . . .
                      λPage por Dentro     . . . pero para Haskell
                         Pr´ximos Pasos
                           o




Pero, a su vez, por estar hecho para Haskell, toma en cuenta sus
caracter´
        ısticas:
    Lazy evaluation
    Acciones con efectos colaterales
    Administraci´n de m´dulos
                o      o




                   Fernando Benavides      λPage
Introducci´n
                                      o
                      Conociendo λPage     Como el Workspace de Smalltalk . . .
                      λPage por Dentro     . . . pero para Haskell
                         Pr´ximos Pasos
                           o




Pero, a su vez, por estar hecho para Haskell, toma en cuenta sus
caracter´
        ısticas:
    Lazy evaluation
    Acciones con efectos colaterales
    Administraci´n de m´dulos
                o      o




                   Fernando Benavides      λPage
Introducci´n
                                      o
                      Conociendo λPage     Como el Workspace de Smalltalk . . .
                      λPage por Dentro     . . . pero para Haskell
                         Pr´ximos Pasos
                           o




Pero, a su vez, por estar hecho para Haskell, toma en cuenta sus
caracter´
        ısticas:
    Lazy evaluation
    Acciones con efectos colaterales
    Administraci´n de m´dulos
                o      o




                   Fernando Benavides      λPage
Introducci´n
                  o
  Conociendo λPage     Dise˜o
                           n
  λPage por Dentro     Arquitectura
     Pr´ximos Pasos
       o




λPage por Dentro




  Fernando Benavides   λPage
Introducci´n
                                    o
                    Conociendo λPage     Dise˜o
                                             n
                    λPage por Dentro     Arquitectura
                       Pr´ximos Pasos
                         o




λ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 fu´ creada usando wxHaskell
              a      e

Su alto grado de paralelismo se logra utilizando eprocess




                    Fernando Benavides   λPage
Introducci´n
                                    o
                    Conociendo λPage     Dise˜o
                                             n
                    λPage por Dentro     Arquitectura
                       Pr´ximos Pasos
                         o




λ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 fu´ creada usando wxHaskell
              a      e

Su alto grado de paralelismo se logra utilizando eprocess




                    Fernando Benavides   λPage
Introducci´n
                                    o
                    Conociendo λPage     Dise˜o
                                             n
                    λPage por Dentro     Arquitectura
                       Pr´ximos Pasos
                         o




λ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 fu´ creada usando wxHaskell
              a      e

Su alto grado de paralelismo se logra utilizando eprocess




                    Fernando Benavides   λPage
Introducci´n
                                    o
                    Conociendo λPage     Dise˜o
                                             n
                    λPage por Dentro     Arquitectura
                       Pr´ximos Pasos
                         o




λ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 fu´ creada usando wxHaskell
              a      e

Su alto grado de paralelismo se logra utilizando eprocess




                    Fernando Benavides   λPage
Introducci´n
                                    o
                    Conociendo λPage     Dise˜o
                                             n
                    λPage por Dentro     Arquitectura
                       Pr´ximos Pasos
                         o




λ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 fu´ creada usando wxHaskell
              a      e

Su alto grado de paralelismo se logra utilizando eprocess




                    Fernando Benavides   λPage
Introducci´n
                                       o
                       Conociendo λPage     Dise˜o
                                                n
                       λ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
Introducci´n
                                        o
                        Conociendo λPage     Dise˜o
                                                 n
                        λ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
Introducci´n
                                          o
                          Conociendo λPage     Dise˜o
                                                   n
                          λPage por Dentro     Arquitectura
                             Pr´ximos Pasos
                               o



Ejemplo de Interacci´n
                    o




 Procesos Involucrados:
     UI Manager operando




                      Fernando Benavides       λPage
Introducci´n
                                          o
                          Conociendo λPage     Dise˜o
                                                   n
                          λPage por Dentro     Arquitectura
                             Pr´ximos Pasos
                               o



Ejemplo de Interacci´n
                    o




 Procesos Involucrados:
     UI Manager esperando
     HPage Server operando




                      Fernando Benavides       λPage
Introducci´n
                                          o
                          Conociendo λPage     Dise˜o
                                                   n
                          λ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
Introducci´n
                                          o
                          Conociendo λPage     Dise˜o
                                                   n
                          λ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
Introducci´n
                                          o
                          Conociendo λPage     Dise˜o
                                                   n
                          λ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
Introducci´n
                                          o
                          Conociendo λPage     Dise˜o
                                                   n
                          λPage por Dentro     Arquitectura
                             Pr´ximos Pasos
                               o



Ejemplo de Interacci´n
                    o




 Procesos Involucrados:
     UI Manager operando




                      Fernando Benavides       λPage
Introducci´n
                 o
                      Limitaciones
 Conociendo λPage
                      Trabajo a Futuro
 λPage por Dentro
                      Agradecimientos / Preguntas
    Pr´ximos Pasos
      o




Pr´ximos Pasos
  o




 Fernando Benavides   λPage
Introducci´n
                                    o
                                         Limitaciones
                    Conociendo λPage
                                         Trabajo a Futuro
                    λPage por Dentro
                                         Agradecimientos / Preguntas
                       Pr´ximos Pasos
                         o




¿Qu´ falta?
   e
    Nuevas visualizaciones
         M´s que un cuadro de texto
          a
    M´s tipos especiales
     a
         Tuplas
         Either
         Maybe
    Composici´n
             o
         Listas de listas
         Acciones que generen listas
         Listas de acciones
¿Qu´ se puede hacer?
   e
    Clase Presentable


                    Fernando Benavides   λPage
Introducci´n
                                    o
                                         Limitaciones
                    Conociendo λPage
                                         Trabajo a Futuro
                    λPage por Dentro
                                         Agradecimientos / Preguntas
                       Pr´ximos Pasos
                         o




¿Qu´ falta?
   e
    Nuevas visualizaciones
         M´s que un cuadro de texto
          a
    M´s tipos especiales
     a
         Tuplas
         Either
         Maybe
    Composici´n
             o
         Listas de listas
         Acciones que generen listas
         Listas de acciones
¿Qu´ se puede hacer?
   e
    Clase Presentable


                    Fernando Benavides   λPage
Introducci´n
                                    o
                                         Limitaciones
                    Conociendo λPage
                                         Trabajo a Futuro
                    λPage por Dentro
                                         Agradecimientos / Preguntas
                       Pr´ximos Pasos
                         o




¿Qu´ falta?
   e
    Nuevas visualizaciones
         M´s que un cuadro de texto
          a
    M´s tipos especiales
     a
         Tuplas
         Either
         Maybe
    Composici´n
             o
         Listas de listas
         Acciones que generen listas
         Listas de acciones
¿Qu´ se puede hacer?
   e
    Clase Presentable


                    Fernando Benavides   λPage
Introducci´n
                                    o
                                         Limitaciones
                    Conociendo λPage
                                         Trabajo a Futuro
                    λPage por Dentro
                                         Agradecimientos / Preguntas
                       Pr´ximos Pasos
                         o




¿Qu´ falta?
   e
    Nuevas visualizaciones
         M´s que un cuadro de texto
          a
    M´s tipos especiales
     a
         Tuplas
         Either
         Maybe
    Composici´n
             o
         Listas de listas
         Acciones que generen listas
         Listas de acciones
¿Qu´ se puede hacer?
   e
    Clase Presentable


                    Fernando Benavides   λPage
Introducci´n
                                   o
                                        Limitaciones
                   Conociendo λPage
                                        Trabajo a Futuro
                   λPage por Dentro
                                        Agradecimientos / Preguntas
                      Pr´ximos Pasos
                        o




Con λPage hemos acercado al desarrollador Haskell s´lo una de
                                                   o
muchas herramientas:
    Soporte para TDD
    Refactoring
    An´lisis de Terminaci´n
      a                  o
    Debugging




                  Fernando Benavides    λPage
Introducci´n
                                      o
                                           Limitaciones
                      Conociendo λPage
                                           Trabajo a Futuro
                      λPage por Dentro
                                           Agradecimientos / Preguntas
                         Pr´ximos Pasos
                           o




Con λPage hemos acercado al
desarrollador Haskell s´lo una de
                       o
muchas herramientas:
    Soporte para TDD
    Refactoring
    An´lisis de Terminaci´n
      a                  o
    Debugging




                     Fernando Benavides    λPage
Introducci´n
                                      o
                                           Limitaciones
                      Conociendo λPage
                                           Trabajo a Futuro
                      λPage por Dentro
                                           Agradecimientos / Preguntas
                         Pr´ximos Pasos
                           o



¡Gracias a todos!



       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

More Related Content

Viewers also liked (18)

Prueba Power Point
Prueba Power PointPrueba Power Point
Prueba Power Point
 
Unidad 1
Unidad 1 Unidad 1
Unidad 1
 
Mgrani trier-faktenextraktion
Mgrani trier-faktenextraktionMgrani trier-faktenextraktion
Mgrani trier-faktenextraktion
 
3
33
3
 
Izin prinsip PMA (Penanaman Modal Asing)
Izin prinsip PMA (Penanaman Modal Asing)Izin prinsip PMA (Penanaman Modal Asing)
Izin prinsip PMA (Penanaman Modal Asing)
 
Sudoku
SudokuSudoku
Sudoku
 
Químicos 6to grado s
Químicos   6to grado sQuímicos   6to grado s
Químicos 6to grado s
 
Quandary sandra mendoza
Quandary sandra mendozaQuandary sandra mendoza
Quandary sandra mendoza
 
Tema nº 4 tipos de comunicacion
Tema nº 4 tipos de comunicacionTema nº 4 tipos de comunicacion
Tema nº 4 tipos de comunicacion
 
The
TheThe
The
 
Rudelvi software del sistema
Rudelvi software del sistemaRudelvi software del sistema
Rudelvi software del sistema
 
002 tarifes curs 2014 2015
002 tarifes curs 2014 2015002 tarifes curs 2014 2015
002 tarifes curs 2014 2015
 
Afiche nimaima q
Afiche nimaima qAfiche nimaima q
Afiche nimaima q
 
Horari 5 anys
Horari 5 anysHorari 5 anys
Horari 5 anys
 
Chloe
ChloeChloe
Chloe
 
Lyrical analysis
Lyrical analysisLyrical analysis
Lyrical analysis
 
Practica 24 (1)
Practica 24 (1)Practica 24 (1)
Practica 24 (1)
 
Actividad sobre trámites de registro de una marca
Actividad sobre trámites de registro de una marcaActividad sobre trámites de registro de una marca
Actividad sobre trámites de registro de una marca
 

Recently uploaded

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 

Recently uploaded (10)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 

Hpage slides-0.2

  • 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 17 de julio de 2010 Fernando Benavides λPage
  • 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. 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. 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. 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. 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. 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. 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. 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. 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 Herramientas de refactoring Debugger integrado Herramientas para “micro-testing” Fernando Benavides λPage
  • 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 Herramientas de refactoring Debugger integrado Herramientas para “micro-testing” Fernando Benavides λPage
  • 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 Herramientas de refactoring Debugger integrado Herramientas para “micro-testing” Fernando Benavides λPage
  • 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 Herramientas de refactoring Debugger integrado Herramientas para “micro-testing” Fernando Benavides λPage
  • 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 Herramientas de refactoring Debugger integrado Herramientas para “micro-testing” Fernando Benavides λPage
  • 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 Herramientas de refactoring Debugger integrado Herramientas para “micro-testing” Fernando Benavides λPage
  • 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. 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. Introducci´n o Conociendo λPage Como el Workspace de Smalltalk . . . λPage por Dentro . . . pero para Haskell Pr´ximos Pasos o λ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. Introducci´n o Conociendo λPage Como el Workspace de Smalltalk . . . λPage por Dentro . . . pero para Haskell Pr´ximos Pasos o Pero, a su vez, por estar hecho para Haskell, toma en cuenta sus caracter´ ısticas: Lazy evaluation Acciones con efectos colaterales Administraci´n de m´dulos o o Fernando Benavides λPage
  • 20. Introducci´n o Conociendo λPage Como el Workspace de Smalltalk . . . λPage por Dentro . . . pero para Haskell Pr´ximos Pasos o Pero, a su vez, por estar hecho para Haskell, toma en cuenta sus caracter´ ısticas: Lazy evaluation Acciones con efectos colaterales Administraci´n de m´dulos o o Fernando Benavides λPage
  • 21. Introducci´n o Conociendo λPage Como el Workspace de Smalltalk . . . λPage por Dentro . . . pero para Haskell Pr´ximos Pasos o Pero, a su vez, por estar hecho para Haskell, toma en cuenta sus caracter´ ısticas: Lazy evaluation Acciones con efectos colaterales Administraci´n de m´dulos o o Fernando Benavides λPage
  • 22. Introducci´n o Conociendo λPage Dise˜o n λPage por Dentro Arquitectura Pr´ximos Pasos o λPage por Dentro Fernando Benavides λPage
  • 23. Introducci´n o Conociendo λPage Dise˜o n λPage por Dentro Arquitectura Pr´ximos Pasos o λ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 fu´ creada usando wxHaskell a e Su alto grado de paralelismo se logra utilizando eprocess Fernando Benavides λPage
  • 24. Introducci´n o Conociendo λPage Dise˜o n λPage por Dentro Arquitectura Pr´ximos Pasos o λ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 fu´ creada usando wxHaskell a e Su alto grado de paralelismo se logra utilizando eprocess Fernando Benavides λPage
  • 25. Introducci´n o Conociendo λPage Dise˜o n λPage por Dentro Arquitectura Pr´ximos Pasos o λ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 fu´ creada usando wxHaskell a e Su alto grado de paralelismo se logra utilizando eprocess Fernando Benavides λPage
  • 26. Introducci´n o Conociendo λPage Dise˜o n λPage por Dentro Arquitectura Pr´ximos Pasos o λ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 fu´ creada usando wxHaskell a e Su alto grado de paralelismo se logra utilizando eprocess Fernando Benavides λPage
  • 27. Introducci´n o Conociendo λPage Dise˜o n λPage por Dentro Arquitectura Pr´ximos Pasos o λ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 fu´ creada usando wxHaskell a e Su alto grado de paralelismo se logra utilizando eprocess Fernando Benavides λPage
  • 28. Introducci´n o Conociendo λPage Dise˜o n λ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. Introducci´n o Conociendo λPage Dise˜o n λ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. Introducci´n o Conociendo λPage Dise˜o n λPage por Dentro Arquitectura Pr´ximos Pasos o Ejemplo de Interacci´n o Procesos Involucrados: UI Manager operando Fernando Benavides λPage
  • 31. Introducci´n o Conociendo λPage Dise˜o n λ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. Introducci´n o Conociendo λPage Dise˜o n λ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. Introducci´n o Conociendo λPage Dise˜o n λ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. Introducci´n o Conociendo λPage Dise˜o n λ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. Introducci´n o Conociendo λPage Dise˜o n λPage por Dentro Arquitectura Pr´ximos Pasos o Ejemplo de Interacci´n o Procesos Involucrados: UI Manager operando Fernando Benavides λPage
  • 36. Introducci´n o Limitaciones Conociendo λPage Trabajo a Futuro λPage por Dentro Agradecimientos / Preguntas Pr´ximos Pasos o Pr´ximos Pasos o Fernando Benavides λPage
  • 37. Introducci´n o Limitaciones Conociendo λPage Trabajo a Futuro λPage por Dentro Agradecimientos / Preguntas Pr´ximos Pasos o ¿Qu´ falta? e Nuevas visualizaciones M´s que un cuadro de texto a M´s tipos especiales a Tuplas Either Maybe Composici´n o Listas de listas Acciones que generen listas Listas de acciones ¿Qu´ se puede hacer? e Clase Presentable Fernando Benavides λPage
  • 38. Introducci´n o Limitaciones Conociendo λPage Trabajo a Futuro λPage por Dentro Agradecimientos / Preguntas Pr´ximos Pasos o ¿Qu´ falta? e Nuevas visualizaciones M´s que un cuadro de texto a M´s tipos especiales a Tuplas Either Maybe Composici´n o Listas de listas Acciones que generen listas Listas de acciones ¿Qu´ se puede hacer? e Clase Presentable Fernando Benavides λPage
  • 39. Introducci´n o Limitaciones Conociendo λPage Trabajo a Futuro λPage por Dentro Agradecimientos / Preguntas Pr´ximos Pasos o ¿Qu´ falta? e Nuevas visualizaciones M´s que un cuadro de texto a M´s tipos especiales a Tuplas Either Maybe Composici´n o Listas de listas Acciones que generen listas Listas de acciones ¿Qu´ se puede hacer? e Clase Presentable Fernando Benavides λPage
  • 40. Introducci´n o Limitaciones Conociendo λPage Trabajo a Futuro λPage por Dentro Agradecimientos / Preguntas Pr´ximos Pasos o ¿Qu´ falta? e Nuevas visualizaciones M´s que un cuadro de texto a M´s tipos especiales a Tuplas Either Maybe Composici´n o Listas de listas Acciones que generen listas Listas de acciones ¿Qu´ se puede hacer? e Clase Presentable Fernando Benavides λPage
  • 41. Introducci´n o Limitaciones Conociendo λPage Trabajo a Futuro λPage por Dentro Agradecimientos / Preguntas Pr´ximos Pasos o Con λPage hemos acercado al desarrollador Haskell s´lo una de o muchas herramientas: Soporte para TDD Refactoring An´lisis de Terminaci´n a o Debugging Fernando Benavides λPage
  • 42. Introducci´n o Limitaciones Conociendo λPage Trabajo a Futuro λPage por Dentro Agradecimientos / Preguntas Pr´ximos Pasos o Con λPage hemos acercado al desarrollador Haskell s´lo una de o muchas herramientas: Soporte para TDD Refactoring An´lisis de Terminaci´n a o Debugging Fernando Benavides λPage
  • 43. Introducci´n o Limitaciones Conociendo λPage Trabajo a Futuro λPage por Dentro Agradecimientos / Preguntas Pr´ximos Pasos o ¡Gracias a todos! 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