Spelling suggestions: "subject:"programación para computador""
1 |
Empirically-driven design and implementation of GradualtalkÁlvarez Callaú, Óscar Edwin January 2015 (has links)
Doctor en Ciencias, Mención Computación / Los lenguajes de tipado dinámico permiten un desarrollo ágil, el cual es util para construir prototipos rápidamente. Sin embargo, cuando estos pequeños programas se convierten en aplicaciones grandes, depurar se vuelve una tarea tediosa. Esto se debe principalmente a que los errores son solo detectables en tiempo de ejecución. Smalltalk, al ser un lenguaje de tipado dinámico, sufre de estos problemas. Los sistemas de tipos pueden disminuir ciertos errores de los lenguajes de tipado dinámico. Además, la inserción de tipos mejora la documentación de APIs, provee mejor soporte a los editores y ayuda a optimizar la compilación. Los sistema de tipos, especialmente diseñados para lenguajes existentes, son llamados sistema de tipos retro-alimentados (retrofitted type systems en inglés).
Diseñar un sistema de tipos retro-alimentado es una tarea complicada. Esto se debe a que tales sistemas de tipos deben soportar patrones de programación muy particulares (llamados idioms), minimizar la refactorización de código por la inserción de tipos, y proveer una integración entre las partes (ej. módulos) con y sin tipos. Estos problemas son exacerbados cuando el lenguaje destino es altamente dinámico, como Smalltalk. Si bien se ha intentado insertar tipos en Smalltalk, el ejemplo mas notable es Strongtalk, ellos no han sido diseñados de un modo de ser sistemas de tipos retro-alimentados. Ademas Strongtalk es un sistema de tipos opcional, es decir que las garantías estáticas no necesariamente se cumple en tiempo de ejecución.
En este trabajo de tesis, nosotros presentamos Gradualtalk, un sistema de tipos retro-alimentado para Smalltalk, que soporta la mayoría de las características particulares e idioms de Smalltalk. En la parte del diseño, nosotros analizamos detalladamente cual es el mejor sistema de tipos gradual y aquellas extensiones que mejor encajan en Gradualtalk. Cada una de estas extensiones son claramente justificadas usando evidencia (empírica) disponible en la literatura o propuesta por nosotros. En detalle, nosotros presentamos como evidencia empirical dos estudios a larga escala sobre las características dinámicas de Smalltalk y sobre los predicados de tipos. Ademas presentamos tres estudios preliminares sobre el uso de self, el uso de variables que pueden representar varios valores de diferente tipos, y el uso de colecciones. Con toda esta información implementamos una primera version de Gradualtalk. Finalmente, validamos Gradualtalk mediante la inserción de tipos de varios proyectos Smalltalk reales.
|
2 |
Portando AmbientTalk a Dispositivos Móviles LivianosAllende Prieto, Esteban Armando 28 April 2010 (has links)
El objetivo general del presente trabajo es poder interpretar un subconjunto del lenguaje de programación AmbientTalk en un dispositivo móvil liviano que sea capaz de interactuar con otros programas desarrollados en AmbientTalk alojados en otros dispositivos que no sean necesariamente del mismo tipo de equipo. El dispositivo móvil liviano usado para esta memoria es un Sun SPOT.
El intérprete oficial de AmbientTalk está desarrollado para Java ME CDC, mientras que los Sun SPOT poseen como plataforma de desarrollo Java ME CLDC. Una de las diferencias importantes entre ambos es que tanto reflexión como serialización no están presentes en CLDC, mientras que si lo están en CDC. Ambas son características muy usadas y muy imprescindibles para el intérprete oficial, por lo que se hace necesario replantear un nuevo intérprete para los Sun SPOT.
Debido a las capacidades de cómputo limitadas de un Sun SPOT, se decidió separar la plataforma en dos aplicaciones que corren en máquinas distintas: un compilador que lea código fuente AmbientTalk y que genere un archivo binario, y un intérprete AmbientTalk que lea ese archivo binario e interprete el programa almacenado en él en un Sun SPOT. A cada una de las aplicaciones se le realizó un diseño de arquitectura lógica, separando los componentes en módulos semi desacoplados.
Luego se realizó una validación al intérprete, realizando para tal efecto una aplicación ejemplo de programación distribuida consistente en un sistema controlador de luces remotas. Se realizó esta aplicación tanto para Java ME CLDC, como para AmbientTalk, mostrando que mientras la aplicación en Java ME CLDC es más eficiente, la aplicación en AmbientTalk fue más simple de desarrollar.
Finalmente se concluye que esta plataforma es un paso para tener una implementación de AmbientTalk en toda la gama de dispositivos con Java y que AmbientTalk permite disminuir el tiempo de programación para aplicaciones distribuidas en un Sun SPOT.
|
3 |
Integración e Implementación de Modelos de Apoyo a Decisiones de Mantenimiento para Flota de Aviones F-16 de la Fuerza Aérea de ChileFernández Salas, Pablo Andrés January 2009 (has links)
No autorizada por el autor para ser publicada a texto completo / Esta memoria tuvo como objetivo generar un sistema de apoyo a decisiones de mantenimiento, basado en una aplicación computacional. El sistema permite orientar en forma objetiva al tomador de decisiones de mantenimiento. Se consideraron 3 tomas de decisiónes cruciales: selección de sistemas críticos, intervalos entre reemplazo preventivo y optimización de la gestión de inventarios de repuestos. Los criterios usados fueron: disponibilidad, confiabilidad y costos. Para implementar estos modelos, se utilizó como herramientas el lenguaje de programación Java y distintos modelos matemáticos obtenidos de la bibliografía correspondiente. El apoyo de FACh permitió contar con datos de historial de fallas, costos e índices de desempeño (disponibilidad deseada, horas de vuelo anual, costos de operación, etc.), para desarrollar estudios de casos sobre la flota de aviones de combate F-16. Adicionalmente se hizo un estudio en la flota de aviones C-130.
El sistema de apoyo a decisiones desarrollado se denomina Plataforma Unificada de Mantenimiento
Aeronáutico, PUMA. Así, se implementó un módulo de priorización de componentes por Criterio de Dispersión de Costos, Indisponibilidad, Tiempo Fuera de Servicio y Frecuencia de Falla. El sistema cuenta con un módulo de Análisis de Confiabilidad, el cual permite conocer el nivel de riesgo para la operación del componente que se estudia. Para apoyar la decisión de una estrategia de tipo preventiva, se implementó un módulo de reemplazo preventivo, bajo criterios de Costos de intervención y Disponibilidad. Se implementaron 4 modelos para el apoyo a la gestión de repuestos, donde se consideran los repuestos de tipos reparables y consumibles.
El diseño de PUMA considera el concepto de proceso de mejoramiento continuo de mantenimiento y la usabilidad de software, facilitando al usuario el ingreso de datos, manuales de ayuda rápida, reconocimiento de resultados e interacción con la interfaz. La validación se efectuó utilizando el historial de falla de la flota de aviones F-16 y la bibliografía correspondiente.
Como conclusión, PUMA es un importante apoyo a la toma de decisiones, aporta nuevas Metodologías para el uso de los recursos de la organización, permite contar con análisis cuantitativos en base a la evidencia observada y se perfila como una herramienta útil para la gestión de activos de defensa.
|
4 |
Desarrollo de una herramienta gráfica de exploración de robots con ROSSchkolnik Müller, Demian Aley January 2015 (has links)
Ingeniero Civil en Computación / ROS, un middleware para robots, ofrece gran variedad de herramientas para su utilización. Sin embargo, carece de una importante herramienta: Algo que permita visualizar de forma dinámica sus componentes, y poder así entender sistemas complejos de mejor forma.
Esta memoria consistió en desarrollar una herramienta, que es capaz de visualizar, mediante un grafo, un sistema completo creado en ROS, pudiendo ver cuáles son sus distintos componentes y cómo interactúan. Además, la herramienta incluye la opción de visualizar tres tipos de mensajes comunes presentes en ROS. El trabajo se realizó en el lenguaje de programación Smalltalk, y usando el ambiente de desarrollo Pharo. Para las visualizaciones se utilizó el motor de visualizaciones Roassal, basado en Pharo. El trabajo se dividió en cuatro grandes etapas.
La primera etapa consistió en un trabajo de investigación, haciendo una revisión de las herramienta a usar en el desarrollo, junto a un análisis de los mensajes comunes de ROS y como se representaban. Esto sería usado en la segunda etapa.
La segunda etapa consistió en el desarrollo de una API, que permitiera comunicación entre Pharo y ROS. Para ello se hizo uso de las herramientas de consola presentes en ROS. Junto a la API, se desarrollaron una serie de tests, a modo de robustecer la API frente a posibles cambios en ROS.
La tercera etapa consistió en la creación del grafo general de ROS. Este grafo nos muestra el sistema completo creado en ROS, indicándonos también de qué forma interactúan los componentes entre ellos. En esta etapa, la comunicación con ROS se hace exclusivamente a través de la API implementada en la segunda etapa.
La cuarta y última etapa consistió en la creación de las visualizaciones para tres mensajes comunes de ROS. Estas visualizaciones son dinámicas, es decir, cambian en tiempo real cuando los mensajes cambian.
El presente trabajo presenta primero el estudio previo, explicando las herramientas, lenguajes y funcionalidades que se usarán en el desarrollo. Esta sección también incluye información de herramientas similares existentes, y explica las falencias de éstas y la justificación de la creación de una nueva herramienta. La segunda parte de este trabajo contiene el desarrollo de la herramienta, comenzando por la API, para luego seguir con el grafo general y las visualizaciones.
A modo de conclusión, la herramienta creada presenta una manera eficaz y usable de explorar robots creados con ROS, y fue creada de manera modular y extensible, generando algunas visualizaciones de ejemplo. Puede servir como base para un trabajo futuro, que genere más visualizaciones así como también incluya un sistema de inserción de mensajes.
|
5 |
Diseño e Implementación de PHANtom, un Lenguaje de Aspectos para Pharo SmalltalkGaldames Grünberg, Daniel Andrés January 2011 (has links)
La programación orientada a aspectos es un paradigma de programación que intenta solucionar el problema de las funcionalidades transversales, esto es, funcionalidades de la aplicación que están dispersas por muchas áreas del código, y no pueden separarse en forma eficiente usando el paradigma de programación orientada a objetos.
Un aspecto representa una funcionalidad transversal de la aplicación. Éste incluye en su definición un pointcut, que representa un conjunto de puntos en la ejecución de la aplicación que van a ser capturados por el aspecto, y un advice, que representa la funcionalidad del aspecto, esto es, el código que va a ser ejecutado en los puntos capturados.
En este trabajo se diseñó e implementó un lenguaje de aspectos para el lenguaje de programación Pharo Smalltalk, donde se incluyeron características destacadas de otros lenguajes de aspectos, junto a nuevas funcionalidades que le otorgan un mayor control y flexibilidad al lenguaje desarrollado.
El lenguaje desarrollado incluye un sistema de definición de patrones para la definición de los pointcuts, reglas de precedencia globales y a nivel de pointcut. También contiene modificadores de clases similares a las inter-type declarationsde AspectJ, y un sistema de control dinámico en el orden de ejecución de los advice.
Para el lenguaje desarrollado se implementó el concepto de membranas computacionales.
Éstas son una forma de controlar el alcance que tienen los aspectos en el sistema, permitiendo controlar problemas como la reentrancia en los aspectos, esto es, cuando un aspecto captura un evento desencadenado por sí mismo. Junto a esto, las membranas computacionales son capaces de controlar la visibilidad que los aspectos tienen sobre el sistema donde son instalados.
Se creó una suite de test usando el framework para test unitarios de Pharo Smalltalk, para comprobar el correcto funcionamiento del lenguaje desarrollado, además, se comprobó el grado de cobertura de la suite de test usando el software Hapao.
Finalmente, se comprobó el funcionamiento del lenguaje de aspectos desarrollado, usándolo para refactorizar algunas partes del software de análisis dinámico de código Spy. Se realizaron algunos benchmark para comprobar el sobrecosto generado por la infraestructura de aspectos desarrollada, donde se pudo apreciar un sobrecosto variable, siendo elevado en algunos casos.
|
Page generated in 0.141 seconds