La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

HaskellScript y sus Aplicaciones Autores Santiago Ochoa Ceresuela Miguel García Puyol.

Presentaciones similares


Presentación del tema: "HaskellScript y sus Aplicaciones Autores Santiago Ochoa Ceresuela Miguel García Puyol."— Transcripción de la presentación:

1 HaskellScript y sus Aplicaciones Autores Santiago Ochoa Ceresuela Miguel García Puyol

2 Diseño basado en Componentes Evolución natural de la orientación a objetos. Idea similar a la empleada en los componentes Hardware Plataformas de componentes: CORBA, COM, J2EE,.NET Objetivos: – Desarrollo mediante composición, no implementación – Reutilización de componentes hechos por terceros – Mercado común de componentes (Commercial Off-The-Shelf) – Integrados en un determinado modelo/plataforma. No tienen sentido de forma aislada. – Implementan una serie de interfaces que Indican la funcionalidad que proporcionan y también la que precisan. Permiten la reemplazabilidad.

3 Nociones de ActiveX/COM Un objeto ActiveX es aquel que cumple la definición del Modelo de Objetos Componentes (COM) de Microsoft. Características objeto COM: – Puede estar escrito en cualquier lenguaje (código binario) – Encapsulado en un archivo ejecutable o biblioteca de vínculo dinámico (DLL) – Proporciona una interfaz para que los otros objetos se comuniquen con él. – Dos tipos de datos: Datos de Presentación Datos Internos – Tiene funciones para manipular esos datos

4 Introducción HaskellScript Es el nombre de un conjunto de bibliotecas y software que permiten la integración de Haskell dentro del marco de trabajo COM/ActiveX HaskellScript es compatible con Microsoft Internet Explorer 4, Word, Excel. Presenta algunas incompatibilidades con las últimas versiones

5 HaskellScript = Haskell + COM Se trata de poder construir sistemas híbridos aprovechando la naturaleza funcional de Haskell Dos posibilidades: Utilizar componentes COM (y sus elementos) dentro de Haskell Llamar a funciones Haskell desde otro componente (otros lenguajes de programación que soporten COM) a través de su interfaz

6 Introducción a HaskellScript Está formado por: – HaskellAgent: es una biblioteca escrita en Haskell empleada para crear animaciones usando la tecnología de Microsoft Agent. Ej: el ayudante de Microsoft Office. – HaskellObject: es una biblioteca para definir componentes automatizados (Automation components) en Haskell. Estos componentes se comportan exactamente igual que los componentes COM y pueden ser directamente utilizados desde Java o Visual Basic.

7 Introducción a HaskellScript HaskellDirect: Es un compilador completo de IDL (Interface Definition Language) para Haskell. Los programadores pueden usarlo para generar automáticamente interfaces Haskell para los componentes COM. HaskellDirect HaskellDB: Biblioteca Haskell que permite realizar peticiones sobre bases de datos relacionales. HaskellDB

8 Importando/Exportanto Haskell HaskellObject HaskellDirect Interfaces Script Server  Conjunto mínimo de interfaces que permiten usar Haskell como lenguaje de Script en aplicaciones como IExplorer, Windows 95/NT

9 Interfaces Script Server Todo Script Server es un componente COM En general, un interfaz Script Server es un interfaz independiente del lenguaje que permite a cualquier lenguaje de programación ser programado o invocado desde otra aplicación En HaskellScript, hay un conjunto de interfaces implementados sobre Hugs para interactuar con el motor de ActiveX. Representan la mínima funcionalidad necesaria para programar en otro lenguaje desde una aplicación externa (Ej: Utilizar funciones Haskell en lenguajes como Visual Basic o Java)

10 IDL: Interface Definition Language interface IScriptServer : IDispatch { HRESULT LoadScript ([in] VARIANT* source,[out,retval] IScript** script) HRESULT AddHostItem ([in] BSTR itemName, [in] IDispatch* item ); HRESULT AddSearchDir ([in] BSTR dir ); HRESULT ProgID ([out,retval] BSTR* progID ); }; interface IScript : IDispatch { HRESULT Start (void ); HRESULT AddHostItem([in] BSTR itemName, [in] IDispatch* item ); HRESULT GetScriptItem([in] BSTR name,[out,retval] IScriptItem** item) HRESULT Expr ([in] BSTR expr, [out,retval] IScriptItem** item ); }; interface IScriptItem : IDispatch { HRESULT Eval ([in] int cArgs, [in,size_is(cArgs)] VARIANT* args, [out,retval] VARIANT* result );};

11 HaskellObject: ObjectScript Consiste en crear un componente Haskell, que a su vez será automatizado. Para ello se necesitan 2 módulos: – Un proxy, que una Haskell con el exterior (podría utilizarse HaskellDirect para generarlo a partir de la definición IDL) – El módulo con la implementación del componente Ya que Visual Basic y Java usan la automatización como su interfaz COM básico, es fácil integrar Haskell con estos lenguajes.

12 HaskellDirect HaskellDirect, como hemos dicho, es un compilador de IDL para Haskell, que proporciona una ayuda al programador Haskell que quiere interactuar y reusar código externo. Crear un interfaz para Haskell implica la conversión de los tipos básicos y el manejo de memoria entre el mundo Haskell y el exterior HaskellDirect se encarga de llevar a cabo esta traducción Sin embargo, actualmente, su uso es bastante limitado

13 Biblioteca HTMLScript Esta biblioteca contiene un conjunto de funciones que permiten “trasladar” el control de elementos HTML a Haskell. Una vez allí, se podrán modificar de igual forma que se podría hacer con Javascript. Veamos algunos ejemplos sencillos

14 Referencias http://www.haskell.org/haskellscript Client-side Web Scripting with HaskellScript Erik Meijer, Daan Leijen and James Hook. http://www.cs.uu.nl/people/daan/papers/padl.ps Scripting COM components in Haskell Simon L. Peyton-Jones, Erik Meijer and Daan Leijen http://www.cs.uu.nl/people/daan/papers/com.ps Diseño Arquitectónico Carlos Canal http://www.lcc.uma.es/~canal/isd/ISD_2.pdf


Descargar ppt "HaskellScript y sus Aplicaciones Autores Santiago Ochoa Ceresuela Miguel García Puyol."

Presentaciones similares


Anuncios Google