• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 219
  • 197
  • 4
  • 2
  • Tagged with
  • 419
  • 359
  • 358
  • 232
  • 117
  • 53
  • 50
  • 45
  • 43
  • 42
  • 41
  • 40
  • 37
  • 37
  • 36
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
191

Intérprete para un lenguaje de programación orientado a objetos, con mecanismos de optimización y modificación dinámica de código

Gómez Díaz, Renzo Gonzalo, Salamanca Guillén, Juan Jesús 06 September 2012 (has links)
Este trabajo trata sobre la implementación de un intérprete para un lenguaje propio, que incluye algunas características que no son abordadas en cursos básicos de Desarrollo de Compiladores. Estas características son: lenguaje de programación orientado a objetos, modificación dinámica de código y optimización de código intermedio. El objetivo de este proyecto es presentar estas características, proponer una forma de implementación de las mismas y finalmente proceder a implementarlas. De tal manera que este trabajo contribuya al aprendizaje de construcción de intérpretes o compiladores, sirviendo como un caso de estudio para aquellas personas que tengan como objetivo profundizar en el tema, y por consiguiente un posible punto de partida para futuros trabajos. Por otro lado, es necesario validar los resultados obtenidos por el optimizador, así como la eficiencia de la forma implementación escogida, por lo que se incluye también una experimentación numérica que permite comprobar las hipótesis planteadas al inicio. En la primera parte, se define el problema identificado, luego se describe un breve marco teórico con los principales conceptos involucrados en el desarrollo del proyecto, seguidamente se muestra el estado del arte con relación a compiladores e intérpretes y se describe la solución al problema planteado al inicio. En la segunda parte, principalmente, se describen los objetivos del proyecto, los aportes específicos, los resultados esperados y las hipótesis. Como se mencionó anteriormente, uno de los objetivos que se persigue es que la tesis pueda servir como un caso de estudio para las personas interesadas y una posible base para trabajos futuros; por lo tanto, es necesario explicar la implementación con un nivel de detalle adecuado. En ese sentido, se describe las distintas partes de la implementación escogida: se comienza con la descripción de la gramática del lenguaje, después se describen las estructuras utilizadas, algunas operaciones primitivas, el código intermedio generado, las principales acciones semánticas, la interpretación, la administración de memoria, los algoritmos de optimización, el diseño del IDE y el ambiente de desarrollo.
192

Entorno de desarrollo para la ejecución y traducción de pseudocódigo

Jara Loayza, Juan Carlos 23 June 2014 (has links)
El presente proyecto de fin de carrera corresponde a la construcción de un entorno de desarrollo que permita la ejecución y ejecución de pseudocódigo como herramienta de apoyo a las etapas de diseño, ejecución y validación de un algoritmo. Se permitirá la traducción a VBA, Java, Ruby, Python y c++. El documento presenta siete capítulos, en el primer capítulo se describen generalidades del proyecto como la problemática, objetivo general, objetivos específicos, resultados esperados, alcance, justificación, viabilidad y plan de actividades del proyecto. En el segundo capítulo se presenta el marco conceptual donde se describen los conceptos necesarios para entender el problema que se desea solucionar con el presente proyecto. En el tercer capítulo se presenta el estado del arte. En lo referente al estado del arte se realizó una búsqueda entre productos comerciales y no comerciales que intentan solucionar algunos aspectos del problema a resolver. En el cuarto capítulo, se describe cómo se realizó la definición y la validación de la gramática del pseudocódigo mediante el uso de la notación BNF. En el quinto capítulo se presenta el desarrollo del intérprete que permite la ejecución del pseudocódigo y del traductor que permitirá transformar el pseudocódigo a código en VBA, Java, Ruby, Python y C++. En el sexto capítulo se realiza la descripción del entorno de desarrollo que permitirá la integración del intérprete y traductor para que puedan ser utilizados por el usuario final. En el séptimo capítulo se exponen las conclusiones.
193

Functional verification framework of an AES encryption module

Plasencia Balabarca, Frank Pedro 06 August 2018 (has links)
Over the time, the development of the digital design has increased dramatically and nowadays many different circuits and systems are designed for multiple purposes in short time lapses. However, this development has not been based only in the enhancement of the design tools, but also in the improvement of the verification tools, due to the outstanding role of the verification process that certifies the adequate performance and the fulfillment of the requirements. In the verification industry, robust methodologies such as the Universal Verification Methodology (UVM) are used, an example of this is [1], but they have not been implemented yet in countries such as Peru and they seem inconvenient for educational purposes. This research propose an alternative methodology for the verification process of designs at the industry scale with a modular structure that contributes to the development of more complex and elaborated designs in countries with little or none verification background and limited verification tools. This methodology is a functional verification methodology described in SystemVerilog and its effectiveness is evaluated in the verification of an AES (Advance Encryption Standard) encryption module obtained from [2]. The verification framework is based on a verification plan (developed in this research as well) with high quality standards as it is defined in the industry. This verification plan evaluates synchronization, data validity, signal stability, signal timing and behavior consistency using Assertions, functional coverage and code coverage. An analysis of the outcomes obtained shows that the AES encryption module was completely verified obtaining 100% of the Assertions evaluation, 100% of functional verification and over 95% of code coverage in all approaches (fsm, block, expression, toggle). Besides, the modular structure defines the intercommunication with the Design only in the bottom most level, which facilitates the reuse of the verification framework with different bus interfaces. Nonetheless, this unit level verification framework can be easily instantiated by a system level verification facilitating the scalability. Finally, the documentation, tutorials and verification plan templates were generated successfully and are aimed to the development of future projects in the GuE PUCP (Research group in Microelectronics). In conclusion, the methodology proposed for the verification framework of the AES encryption module is in fact capable of verifying designs at the industry scale with high level of reliability, defining a very detailed and standardized verification plan and containing a suitable structure for reuse and scalability.
194

Implementación de una herramienta de traducción y verificación de programas diseñados en diagrama de flujo utilizando como paso intermedio pseudocódigo

Palomino Masco, Jairo Abner 13 November 2014 (has links)
Este proyecto de fin de carrera parte de la ausencia de herramientas que sirvan de ayuda para aquellos alumnos que quieran aprender a programar. Si bien existen programas que permiten generar diagramas de flujo y luego exportarlos a un lenguaje de programación, estos no poseen un compilador que permita detectar errores de sintaxis, que pueda poseer la solución. Por ello se plantea implementar un proceso de traducción y verificación de programas diseñados en diagrama de flujo utilizando como paso intermedio pseudocódigo, para que el alumno pueda preocuparse más en la lógica de su solución, que en la sintaxis o estructura del lenguaje de programación, a codificar. Para realizar este proyecto se definió una serie de objetivos específicos. En primer lugar se desarrolló un entorno para dibujar diagramas de flujo, para ello se adaptaron las librerías de Microsoft office que ofrecen las herramientas necesarias para la creación del entorno de trabajo. Luego, se definió la gramática que almacena la sintaxis del pseudocódigo utilizando la notación Backus-Naur Form (BNF). Después se implementó el método de conversión del formato XML de Microsoft office, representación del diagrama de flujo, a pseudocódigo utilizando la sintaxis definida anteriormente y un editor de texto en el cual se muestre el resultado de la conversión al usuario. Finalmente se implementó el intérprete que utiliza la gramática para verificar que el código se encuentre léxicamente, sintácticamente y semánticamente correcto. De esta manera los alumnos podrán obtener a partir de un diagrama, el cual al ser gráfico es de fácil entendimiento, el código de su programa sin necesidad de conocer la sintaxis del mismo y validado.
195

Estudio del lenguaje de programación Haskell, ventajas y desventajas con respecto a otros lenguajes de programación

Inca Chiroque, Julita 08 April 2013 (has links)
El trabajo de tesis presenta al lenguaje de programación Haskell y realiza un estudio comparativo con respecto a lenguajes de programación que son promovidos con gran impacto en la actualidad en los ambientes: académico, industrial y científico. Los lenguajes de programación que servirán como puntos de referencia de comparación para el presente estudio son: C/C++, Java y GOlang. Los criterios de comparación tomados en cuenta en el estudio son: fácil escritura, fácil lectura, confiabilidad, soporte de genéricos y reflexión. Se elige comparar los lenguajes mencionados con el lenguaje de programación Haskell, porque es un lenguaje que ha significado un reto para los estudiosos en Ciencias de la Computación de las universidades más prestigiosas del mundo, quienes diseñaron un lenguaje de programación que mejora y supera errores de diseño de lenguajes de programación convencionales. En el primer capítulo se referencia estudios realizados acerca de los lenguajes de programación en las últimas décadas, la popularidad e impacto que tienen en el ámbito académico, industrial y científico, los lenguajes de programación C/C++, Java y GOlang. En el segundo capítulo se referencia estudios realizados acerca de la categorización de los lenguajes de programación a lo largo de la historia de los lenguajes de programación. En el tercer capítulo se detalla cada uno de los lenguajes de programación en mención, su origen, evolución, aplicaciones y tecnologías desarrolladas en las últimas décadas. En el cuarto capítulo se describen los criterios de evaluación de un lenguaje de programación, según autores de prestigio en el campo de las ciencias de la computación. En el quinto capítulo se realiza un estudio y desarrollo de programas en los lenguajes de programación elegidos para poder evaluar las ventajas y desventajas, con respecto a los criterios de evaluación elegidos: fácil escritura, fácil lectura, confiabilidad, soporte de genéricos y reflexión. / Tesis
196

Baseline-oriented modeling: una aproximación MDA basada en líneas de productos software para el desarrollo de aplicaciones: (dominio de los sistemas expertos)

Cabello Espinosa, María Eugenia 15 December 2008 (has links)
Esta tesis presenta la aproximación denominada Baseline Oriented Modeling (BOM). BOM es un framework que genera automáticamente Sistemas Expertos (SE) basado en Líneas de Producto Software (LPS). En BOM, se generan aplicaciones en un dominio específico, basadas en la estructura y comportamiento de los SE, como modelos arquitectónicos PRISMA, utilizando técnicas de LPS. Este proceso implica, por un lado construir una Baseline (como repositorio que contiene todos los assets necesarios para construir un producto de la LPS), y por otro lado realizar el plan de producción de la LPS. BOM gestiona la especificación de la variabilidad y la funcionalidad en modelos separados, representados a través de modelos conceptuales. La variabilidad se maneja en dos pasos: i) en el primer paso la variabilidad del dominio se refleja en las arquitecturas base de la LPS, que comparten una arquitectura genérica, y ii) en el segundo paso la variabilidad del dominio de aplicación específico se instancia para obtener la arquitectura específica PRISMA como el producto final de la LPS. BOM sigue la iniciativa del Object Management Group (OMG) de Model-Driven Architecture (MDA) para construir modelos de dominio (como Modelos Independientes de Computación), que son transformados en modelos arquitectónicos PRISMA (como Modelos Independientes de Plataforma) y compilados a una aplicación ejecutable en .NET (como Modelos Específicos de Plataforma). Lenguajes Específicos de Dominio han sido utilizados para que la interfaz del usuario sea amigable, clara y sencilla. / Cabello Espinosa, ME. (2008). Baseline-oriented modeling: una aproximación MDA basada en líneas de productos software para el desarrollo de aplicaciones: (dominio de los sistemas expertos) [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/3793 / Palancia
197

A formal framework for model management

Boronat Moll, Arturo 07 May 2008 (has links)
El Desarrollo de Software Dirigido por Modelos es una rama de la Ingeniería del Software en la que los artefactos software se representan como modelos para incrementar la productividad, calidady eficiencia económica en el proceso de desarrollo de software, donde un modelo proporciona una representación abstracta del código final de una aplicación. En este campo, la iniciativa Model-Driven Architecture (MDA), patrocinada por la OMG, está constituida por una familia de estándares industriales, entre los que se destacan: Meta-Object Facility (MOF), Unified Modeling Language (UML), Object Constraint Language (OCL), XML Metadata Interchange (XMI), y Query/Views/Transformations (QVT). Estos estándares proporcionan unas directrices comunes para herramientas basadas en modelos y para procesos de desarrollo de software dirigidos por modelos. Su objetivo consiste en mejorar la interoperabilidad entre marcos de trabajo ejecutables, en automatizar el proceso desarrollo de software de software y en proporcionar técnicas que eviten errores durante ese proceso. El estándar MOF describe un marco de trabajo genérico que permite definir la sintaxis abstracta de lenguajes de modelado. Este estándar persigue la definición de los conceptos básicos que son utilizados en procesos de desarrollo de software dirigidos por modelos: que es un modelo, que es un metamodelo, qué es reflexión en un marco de trabajo basado en MOF, etc. Sin embargo, la mayoría de estos conceptos carecen de una semántica formal en la versión actual del estándar MOF. Además, OCL se utiliza como un lenguage de definición de restricciones que permite añadir semántica a un metamodelo MOF. Desafortunadamente, la relación entre un metamodelo y sus restricciones OCL también carece de una semántica formal. Este hecho es debido, en parte, a que los metamodelos solo pueden ser definidos como dato en un marco de trabajo basado en MOF. El estándar MOF también proporciona las llamadas facilidades de reflexión de MOF (MOF Reflecti / Boronat Moll, A. (2007). A formal framework for model management [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/1964 / Palancia
198

Experimentation to Evaluate the Benefits of Model Driven Development

Domingo Montes, María África 05 September 2022 (has links)
Tesis por compendio / [ES] El Desarrollo Dirigido por Modelos, MDD por sus siglas en inglés (Model Driven Development), es un enfoque de ingeniería del software que centra la creación y evolución de productos software en el modelado. Desde hace casi dos décadas, la comunidad científica ha descrito muchas de las ventajas de MDD frente a otros enfoques, sin embargo, su adopción en el entorno industrial es muy poco frecuente. Con el objetivo de entender por qué MDD no ha reemplazado otros enfoques de ingeniería software, he realizado una investigación empírica a través de tres experimentos controlados. Con el primer experimento pretendo aclarar si los beneficios de MDD frente al Desarrollo centrado en Código, CcD por sus siglas en inglés (Code Centric Development), son fieles a la realidad del desarrollo software actual. En el segundo experimento comparo la valoración que realizan los ingenieros de los modelos que utilizan, con su utilidad para ser utilizados en contextos MDD. En el tercer experimento analizo el desempeño de los profesionales software en tareas de mantenimiento en contextos MDD. Nuestros resultados confirman los beneficios de MDD frente a otros enfoques, pero también, que la intención de uso de MDD no alcanza valores máximos. Los sujetos subestiman el potencial de los modelos que desarrollan y utilizan en contextos MDD. El problema de adopción parece estar ligado a factores humanos, no a factores técnicos. / [CA] El Desenvolupament Dirigit per Models, MDD (Model Driven Development), és un enfocament d'enginyeria del programari que centra la creació i evolució de productes programari en el modelatge. Des de fa quasi dues dècades, la comunitat científica ha descrit moltes dels avantatges de MDD enfront d'altres enfocaments, no obstant això, la seua adopció en l'entorn industrial és molt poc freqüent. Amb l'objectiu d'entendre per què MDD no ha reemplaçat altres enfocaments d'enginyeria programari, he realitzat una investigació empírica a través de tres experiments controlats. Amb el primer experiment pretenc aclarir si els beneficis de MDD enfront d'altres enfocaments, com el Desenvolupament centrat en Codi, CcD (Code Centric Development), són fidels a la realitat del desenvolupament programari actual. En el segon experiment compare la valoració que realitzen els enginyers dels models que utilitzen, amb la seua utilitat per a ser utilitzats en contextos MDD. En el tercer experiment analitze l'acompliment del professional programari en tasques de manteniment en contextos MDD. Els nostres resultats confirmen els beneficis de MDD enfront d'altres enfocaments, però també, que la intenció d'ús de MDD no aconsegueix valors màxims. Els subjectes subestimen el potencial dels models que desenvolupen i utilitzen en contextos MDD. El problema d'adopció sembla estar lligat a factors humans, no a factors tècnics. / [EN] Model Driven Development (MDD) is a software engineering approach in which the code of a software product is generated and evolutionated from conceptual models that abstractly represents the system. For nearly two decades, the scientific community has described many of the advantages of MDD over other approaches. Despite the benefits of MDD, its use in real practical developments is merely anecdotal. To understand why MDD has not replaced other software engineering approaches, I have conducted an empirical investigation through three controlled experiments. The first experiment aims to clarify whether the benefits of MDD compared to code-centric development (CcD) match the reality of development in real environments. In the second experiment, I compare engineers' assessment of the models they develop with the usefulness of these models to be used in MDD contexts. In the third experiment, I analyze the performance of software professionals in maintenance tasks in MDD contexts. Our results confirm the benefits of MDD over other approaches; however, the intention to use MDD does not reach maximum values. Subjects underestimate the potential of the models they develop and use in MDD contexts. The adoption problem seems to be linked to human factors, not to technical factors. / Domingo Montes, MÁ. (2022). Experimentation to Evaluate the Benefits of Model Driven Development [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/185748 / TESIS / Compendio
199

Flujo de Diseño de Circuitos Integrados Digitales Aplicado al Desarrollo de un Controlador USB 2.0

Díaz Pérez, Daniel Alfonso January 2010 (has links)
El presente trabajo de título tiene como objetivo principal la exposición del flujo de procesos involucrado en el diseño de un circuito integrado digital. Como consecuencia de ésto, se espera poder demostrar y motivar a explorar esta área en Chile, partiendo por el entorno más cercano: el Departamento de Ingeniería Eléctrica de la Facultad de Ciencias Físicas y Matemáticas de la Universidad de Chile. Para conseguir este objetivo, se diseña un controlador USB 2.0 desde la asimilación de su protocolo para el modelamiento de una solución, hasta el esquemático de la disposición física del circuito resultante. El flujo de diseño consiste principalmente en: a partir de una idea, generada por una necesidad del mercado o bien por una razón académica, determinar sus especificaciones eléctricas y dividir sus funcionalidades; caracterizar el circuito utilizando un lenguaje de descripción de hardware, para esta memoria, Verilog HDL; traducir la descripción del circuito a una lista de compuertas lógicas reales interconectadas; y finalmente, utilizando la representación física de cada compuerta y conexiones, producir un plano físico del circuito. El desarrollo del controlador es guiado y facilitado por las herramientas de diseño de Synopsys®. El resultado final es un informe que reúne los principales conceptos comprometidos en cada etapa del diseño, junto con su aplicación al modelamiento de un controlador USB 2.0. Aunque el uso de las herramientas de diseño no es detallado, los pasos realizados para cada proceso están basados en los flujos de diseño específicos de cada una de ellas. Respecto a lo anterior, se entrega como resultado un CD que contiene los módulos Verilog del controlador, la lista de compuertas interconectadas y archivos guión que contienen las principales instrucciones ejecutadas en las herramientas de Synopsys®. USB es un protocolo de comunicación de mediana complejidad que requiere de un equipo de diseñadores para desarrollarlo con profundidad en todos sus aspectos. A su vez, el flujo de diseño de circuitos integrados posee una gran cantidad de conceptos que deben ser manejados para realizar un trabajo de nivel profesional, probablemente con especialistas en cada etapa. Se concluye que el diseño de circuitos integrados, sin considerar la fabricación, es posible de realizar completamente en Chile, considerando la existencia de las herramientas adecuadas y profesionales especializados o con interés en hacerlo.
200

Discovering memory optimization opportunities by analyzing shareable objects

Infante Rica, Alejandro José January 2017 (has links)
Magíster en Ciencias, Mención Computación. Ingeniero Civil en Computación / Los lenguajes modernos de programación orientada a objetos han aliviado de manera impor- tante a los programadores la tarea de administrar memoria. A pesar de la eficiencia de los recolectores de basura y herramientas de análisis de programas en tiempo real, aún existe una porción importante de memoria siendo desaprovechada. El desaprovechamiento de memoria en software posee graves consecuencias, incluyendo frecuentes interrupciones en la ejecución debido a la presión ejercida sobre el recolector de basura y el uso ineficiente de dependencias entre objetos. Hemos descubierto que supervisar los lugares de producción de objetos y la equivalencia de los objetos producidos es clave para identificar ineficiencias causadas por objetos redundantes. Hemos implementado optimizaciones para reducir el consumo de memoria de seis aplicaciones industriales, obteniendo una reducción superior al 40% en el uso de memoria en la mitad de las aplicaciones sin poseer conocimiento previo de las mismas. Nuestros resultados replican parcialmente los resultados obtenidos por Marinov y O Callahan y exploran nuevas formas de identificar objetos redundantes. / Este trabajo ha sido parcialmente financiado por CONICYT-PCHA/Magíster-Nacional/2015-22150809

Page generated in 0.0319 seconds