Spelling suggestions: "subject:"geração dde código."" "subject:"geração dee código.""
1 |
Aspectos de projeto e implementação de linguagens para codificação de programas adaptativos. / On the design and implementation of languages for coding adaptive programs.Castro Junior, Amaury Antônio de 07 August 2009 (has links)
Este trabalho apresenta um conjunto de contribuiçõoes teóricas e metodológicas para o projeto e a implementação de linguagens de programação, utilizando o autômato adaptativo como dispositivo formal para sua definição. A especificação completa de uma linguagem de programação envolve desde a compreensão adequada de princípios e fundamentos comuns entre todas as linguagens de programação, transparentes ao programador, até as suas formas e características externas. Embora muitos modelos e notações possam ser utilizados na formalização de diferentes aspectos envolvidos no projeto e na implementação das linguagens de programação, o autômato adaptativo demonstra alta aplicabilidade e adequação para uma definição completa da linguagem, sem a necessidade do uso de diferentes notações. Demonstra-se como os autômatos adaptativos podem ser utilizados como uma metalinguagem unificada para especificar todas as componentes relevantes da definição formal da linguagem de programação, tais como: análise léxica, reconhecimento da sintaxe livre de contexto e manipulação de alguns aspectos dependentes de contexto da linguagem - declaração e uso de nomes simb´olicos, semântica estática, declaração e expansão de macros, entre outros. São apresentados os conceitos relacionados, e descrito os aspectos mais importantes da formalização proposta. Para isso, utiliza-se uma linguagem imperativa simplificada, sobre a qual é acoplado um mecanismo de extensão para torná-la extensÍvel. / This work presents a set of theoretical and methodological contributions to the design and implementation of programming languages, using the adaptive automaton as device for its formal definition. The complete specification of a programming language involves proper understanding of principles and common ground between all the programming languages, transparent to the programmer, and forms and external characteristics. Although many models and notations can be used to formalize different aspects involved in the design and implementation of programming languages, the adaptive automaton shows high applicability and suitability to full definition of the language, without the need to use distincts notations. It is shown how the adaptive automata can be used as a unified metalanguage to specify all the relevant components of the formal definition of programming language, such as lexical analysis, sintax contextfree recognition and handling of context-dependent aspects of language - declaration and use of symbolic names, static semantics, definition and expansion of macros, and others. Concepts are shown and the most important aspects are described of the this formal proposal. A simple imperative language is used, on which is attached an extension mechanism to make it extensible.
|
2 |
Aspectos de projeto e implementação de linguagens para codificação de programas adaptativos. / On the design and implementation of languages for coding adaptive programs.Amaury Antônio de Castro Junior 07 August 2009 (has links)
Este trabalho apresenta um conjunto de contribuiçõoes teóricas e metodológicas para o projeto e a implementação de linguagens de programação, utilizando o autômato adaptativo como dispositivo formal para sua definição. A especificação completa de uma linguagem de programação envolve desde a compreensão adequada de princípios e fundamentos comuns entre todas as linguagens de programação, transparentes ao programador, até as suas formas e características externas. Embora muitos modelos e notações possam ser utilizados na formalização de diferentes aspectos envolvidos no projeto e na implementação das linguagens de programação, o autômato adaptativo demonstra alta aplicabilidade e adequação para uma definição completa da linguagem, sem a necessidade do uso de diferentes notações. Demonstra-se como os autômatos adaptativos podem ser utilizados como uma metalinguagem unificada para especificar todas as componentes relevantes da definição formal da linguagem de programação, tais como: análise léxica, reconhecimento da sintaxe livre de contexto e manipulação de alguns aspectos dependentes de contexto da linguagem - declaração e uso de nomes simb´olicos, semântica estática, declaração e expansão de macros, entre outros. São apresentados os conceitos relacionados, e descrito os aspectos mais importantes da formalização proposta. Para isso, utiliza-se uma linguagem imperativa simplificada, sobre a qual é acoplado um mecanismo de extensão para torná-la extensÍvel. / This work presents a set of theoretical and methodological contributions to the design and implementation of programming languages, using the adaptive automaton as device for its formal definition. The complete specification of a programming language involves proper understanding of principles and common ground between all the programming languages, transparent to the programmer, and forms and external characteristics. Although many models and notations can be used to formalize different aspects involved in the design and implementation of programming languages, the adaptive automaton shows high applicability and suitability to full definition of the language, without the need to use distincts notations. It is shown how the adaptive automata can be used as a unified metalanguage to specify all the relevant components of the formal definition of programming language, such as lexical analysis, sintax contextfree recognition and handling of context-dependent aspects of language - declaration and use of symbolic names, static semantics, definition and expansion of macros, and others. Concepts are shown and the most important aspects are described of the this formal proposal. A simple imperative language is used, on which is attached an extension mechanism to make it extensible.
|
3 |
Uma abordagem para analise e projeto de IPcores com geração automática de interfaces utilizando UML 2.0ARAUJO, Andre Aziz Camilo de 31 January 2009 (has links)
Made available in DSpace on 2014-06-12T15:52:33Z (GMT). No. of bitstreams: 1
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2009 / Equipamentos cada vez mais sofisticados, capazes de agregar informação,
comunicação e entretenimento em pequenos espaços e em qualquer lugar a um custo
cada vez mais baixo têm alavancado o mercado de dispositivos microeletrônicos.
Contudo, esta sofisticação trouxe um aumento da complexidade dos projetos e um
maior tempo para o desenvolvimento dos mesmos. Para combater essas
adversidades surgiu o paradigma de desenvolvimento System-on-Chip (SoC) que
consiste na integração de um grupo de módulos de propriedade intelectual (IP-core)
com funcionalidades diferentes em um único chip. Nesse contexto esse trabalho
propõe um fluxo de atividades para o projeto de uma arquitetura para o IP-core a
partir de sua especificação de requisitos. Além disso, foi implementada uma
ferramenta para geração de código SystemC da comunicação entre os módulos
projetados na arquitetura. O fluxo proposto utiliza UML como linguagem de suporte
a suas atividades. Essas atividades incluem desde análise textual até o projeto da
hierarquia de módulos e suas interfaces. O modelo UML resultante é então
processado pela ferramenta, que extrai informações das interfaces projetadas e gera
código sintetizável para essas interfaces. Essa abordagem de geração permite ao
projetista acessar funções (realizar uma chamada de função) intermódulos
diretamente através das portas destes. Os resultados mostram, através do projeto de
um controlador de LCD alfa-numérico, uma diminuição na quantidade de código
necessário para desenvolvê-lo devido, principalmente, ao reuso da comunicação e do
projeto sistemático da arquitetura
|
4 |
Otimização de interconexões em plataformas virtuaisDouglas Leite Cabral Junior, Adelmario 31 January 2010 (has links)
Made available in DSpace on 2014-06-12T15:55:01Z (GMT). No. of bitstreams: 2
arquivo2127_1.pdf: 1303008 bytes, checksum: a3b25dd6d52acc59b88d7d0bebd45702 (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2010 / Este trabalho apresenta uma abordagem para a geração de uma plataforma
virtual com otimização da comunicação de um SoC a partir de sua descrição
UML. A modelagem do sistema é feita em UML 2.0 utilizando o profile UMLESL,
que permite ao desenvolvedor descrever as relações entre os módulos
internos de um sistema sem precisar se preocupar com informações sobre a sua
comunicação, como protocolos e sinais das portas. Além dessa abstração da
comunicação, o UML-ESL permite que o desenvolvedor descreva características
temporais destas comunicações, como quando e quais delas acontecem. Estas
informações são utilizadas como entrada para o trabalho apresentado aqui, que
a partir do formato intermediário SLIF (XML bem definido e estruturado que
guarda as informações de um sistema modelado em UML-ESL) gera uma
plataforma que emula o funcionamento do SoC. A otimização da comunicação é
feita a partir das informações temporais descritas pelo desenvolvedor durante a
modelagem do sistema, com base nessas informações o algoritmo procura
utilizar o menor número de barramentos possíveis para interconectar os
módulos que compõem um SoC, levando-se em conta as requisições que podem
ocorrer em paralelo. Para isso o algoritmo escolhe se a comunicação entre dois
módulos ocorre via um barramento ou conexão ponto a ponto. Para validar o
trabalho apresentado à abordagem foi aplicada a arquitetura de um USB Host,
produzindo a sua arquitetura de comunicação
|
5 |
Abordagem para geração automática de código para framework de automação de testesARCOVERDE NETO, Euclides Napoleão January 2007 (has links)
Made available in DSpace on 2014-06-12T15:57:05Z (GMT). No. of bitstreams: 2
arquivo3138_1.pdf: 1790380 bytes, checksum: 8d08d6e97caeb1942c705627bab1ddc6 (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2007 / Centro de Estudos Avançados do Recife / Engenharia de software visa criar software de maneira econômica, que seja confiável e que
trabalhe eficientemente em máquinas reais. Um de seus principais objetivos é obter um grau
de qualidade mínimo que, em geral, significa uma baixa taxa de defeitos. Considerando que
qualidade é crítico para o sucesso do software, o uso de testes vem crescendo. Testes objetivam
revelar a presença de erros o mais cedo possível no ciclo de desenvolvimento. Embora teste de
software seja uma atividade complexa, geralmente não é realizada sistematicamente devido a
uma série de fatores como limitações de tempo, recursos e qualificação técnica dos envolvidos.
Dessa forma, a automação de testes é uma tendência na área de testes.
Esse trabalho está inserido no contexto de um projeto de pesquisa realizado pela Motorola
em parceria com o Centro de Informática da Universidade Federal de Pernambuco denominado
CInBTCRD (CIn and Brazil Test Center Research and Development Project). Na Motorola, a
automação de testes faz-se por meio de um framework denominado de TAF (Test Automation
Framework), o qual simula a interação de um ser humano com um aparelho celular, além de
poder capturar o estado e outras informações importantes do aparelho.
Testes reusam implementações já definidas no TAF para criar os scripts de teste, bem como
novas implementações são criadas quando o reuso não é possível. Visto que bastante tempo é
gasto para criar tais implementações, este trabalho propõe criar uma estratégia que, dado um
script de teste, gere código para o TAF das funcionalidades ainda não implementadas automaticamente.
Para gerar tais códigos, foi utilizada a linguagem formal CSP (Communicating Sequential
Processes) como base. CSP foi criada para especificar e projetar comportamentos de sistemas
concorrentes e distribuídos. CSP possui uma teoria de refinamentos associada, a qual é o alicerce
de nossa proposta. O uso de refinamento em nossa proposta é relativamente simples:
dado um teste em TAF descrito usando CSP e o comportamento de um celular também em
CSP, a relação de refinamento só será satisfeita quando todos os elementos contidos no teste
estiverem de acordo com o definido no comportamento do celular. Assim sendo, nesse trabalho
usamos a ferramenta BxT (Behavior Extractor Tool) que desenvolvemos no contexto do projeto
de pesquisa para extrair automaticamente um modelo CSP de um celular, bem como reusamos
um outro trabalho que consegue representar casos de teste em CSP e criamos um algoritmo que
usa esses elementos e a teoria da refinamento de CSP para completar certas partes do caso de
teste com o auxílio do modelo do celular. Finalmente, o teste em CSP resultante é novamente
escrito em TAF e dessa forma conseguimos atualizar o framework automaticamente
|
6 |
Uma abordagem para migração automática de código no contexto do desenvolvimento orientado a modelosPossatto, Marcos Antonio 22 October 2013 (has links)
Made available in DSpace on 2016-06-02T19:06:10Z (GMT). No. of bitstreams: 1
5666.pdf: 3321258 bytes, checksum: c402c2fb8a619d07842991622736ea5a (MD5)
Previous issue date: 2013-10-22 / Universidade Federal de Minas Gerais / Code generators play a key role in model-driven software development. They are responsible for transforming high-level assets (models) into implementation assets (code). Most generators are based on templates, which are pieces of text instrumented with code expansion elements. They receive an input and produce an output according to the template's programming. To build such template-based generators, the code of an existing implementation, already tested and validated, can be used as a reference, in a process known as code migration. With software evolution and the need for changes in the code generator, the templates start to differ from this reference implementation. In order to restablish the synchronization, additional effort is required. Tackling the challenge of keeping these assets synchronized (reference implementation and templates) is this dissertation's subject. The goal is to provide some automation to the code migration process, even if partial, in order to increase productivity in the maintenance of code generators. A mechanism was developed to make it possible to automatically reproduce changes that are performed in the reference implementation into one or more code generation templates. This mechanism was evaluated through an empirical study, yielding good performance in a controlled environment. This indicates that automation can help to reduce the effort in the maintenance of code generators in a model-driven development context. / Os geradores de código desempenham um papel fundamental no desenvolvimento de software orientado a modelos. São responsáveis pela transformação dos artefatos de alto nível de abstração (modelo) em elementos de implementação (código). Os tipos mais comuns de geradores são os baseados em template. São compostos fundamentalmente por elementos de expansão de código, que recebem uma entrada e a convertem em código, conforme a programação inserida nesses templates. O código de uma implementação já testado e validado pode servir de referência para a criação de templates, por meio de um processo conhecido como migração de código. Com a dinâmica da evolução do software e a necessidade de efetuar mudanças no gerador de código ocorre a perda de sincronismo entre os templates e esse código de referência, sendo necessário um esforço adicional para mantê-los sincronizados. O desafio de manter esses artefatos sincronizados constituiu o objetivo desta dissertação de mestrado, que proporcionou ganhos de produtividade, por meio de uma automação, ainda que parcial, desse processo. Nesse sentido, foi desenvolvido um mecanismo para propagar automaticamente as alterações introduzidas no código de referência para os templates, que reduziu o tempo e facilitou a manutenção de geradores de código que sofrem com o problema da perda de sincronismo nesses artefatos. O protótipo para a migração automática de código desenvolvido nesta dissertação foi submetido a um estudo empírico, atingindo um bom desempenho com a sua utilização na maioria das tarefas de migração de código avaliadas, o que indica que a automação pode ajudar a resolver o problema e reduzir o esforço de manutenção no desenvolvimento de software orientado a modelos.
|
7 |
Implementação de uma metodologia de desenvolvimento de software embarcado baseado em modelos de computação e sua aplicação em um medidor de energia como prototipo alvoTorres, Weslley Medeiros January 2015 (has links)
Orientador: Prof. Dr. Carlos Eduardo Capovilla / Dissertação (mestrado) - Universidade Federal do ABC, Programa de Pós-Graduação em Engenharia Elétrica, 2015. / O desenvolvimento de software embarcado se tornou um gargalo para a introdu-
¸c¿ao de produtos complexos no mercado, como os sistemas de automa¸c¿ao, ve'ýculo,
aeronaves e plantas industriais de controle, pois, dever'a interagir com processos f'ýsicos
garantindo suporte 'a opera¸c¿ao em tempo real e de forma concorrente, ainda
mantendo os custos reduzidos. Com isso, o n'ývel de integra¸c¿ao conseguido com sistemas
embarcados 'e ainda maior, e aumentando a complexidade do desenvolvimento
do software. Portanto, uma metodologia efetiva deve ser estabelecida em todos os
est'agios, envolvendo ferramentas de software que suportem a gera¸c¿ao autom'atica ou
semi-autom'atica de c'odigo, al'em da possibilidade de reuso de c'odigo.
O desenvolvimento baseado em modelos tem sido empregado com sucesso na
implementa¸c¿ao de sistemas de software de uso geral e com isso reduzindo o n'umero
de erros e reduzindo os ciclos e custos, surgindo como uma solu¸c¿ao para os problemas
de desenvolvimento de software embarcado dentro da academia e ind'ustria. Devido
a utilizar um ambiente de desenvolvimento unificado, pode ser utilizado como uma
ferramenta de comunica¸c¿ao e desenvolvimento atrav'es das diferentes disciplinas de
engenharia.
O objetivo principal da metodologia 'e a mudan¸ca de paradigma de desenvolvimento
de software de forma manual a partir de especifica¸c¿oes informais para a
captura de requisitos funcionais e n¿ao funcionais do software embarcado a partir
de modelos matem'aticos do sistema. Claramente, um modelo matem'atico oferece
um modo comum para a integra¸c¿ao sistem'atica e coerente dos diferentes esfor¸cos na
especifica¸c¿ao do sistema, projeto, s'ýntese (gera¸c¿ao de c'odigo), an'alise (valida¸c¿ao),
execu¸c¿ao e manuten¸c¿ao(evolu¸c¿ao do projeto).
Esse trabalho emprega a metodologia de desenvolvimento baseada em modelos
de computa¸c¿ao para o desenvolvimento de um medidor de energia, composto por
um microcontrolador e hardware espec'ýfico para a medi¸c¿ao de consumo de energia
el'etrica. Ao final ser¿ao disponibilizados os dados de testes comparativos entre o
medidor de precis¿ao de energia el'etrica WT3000 da Yokogawa e o prot'otipo desenvolvido,
para a valida¸c¿ao da metodologia no prot'otipo desenvolvido. / Embedded software design has become the bottleneck in the market introduction
of complex products such as automation systems, automobiles, airplanes, and industrial
control plants, it must interact with physical processes guaranteeing support for
hard real-time operation and concurrency, also, with tight cost. Furthermore, the
level of integration with embedded system is even bigger, increasing software development
complexity. Due to the increasing complexity and shrinking time-to-market,
an effective methodology must at all stages involve automatic and semi-automatic
support by software tools and favor code re-use.
Model-based desing has been successfully used for development of general-purpose
software systems and it is known to reduce development errors, shorten development
cycles and thereby decrease overall development costs, emerging as a solution to embedded
software design issues as witnessed by both accademic and industrial efforts,
also uses a common environment for design and communication throughout the different
engineering disciplines.
The core principle of this methodology is to move away from manual coding
from informal specifications by capturing embedded software functional and nonfunctional
requirements from abstract mathematical models. Clearly, a mathematical
model offers a common ground for a systematic and coherent integration of
diverse efforts in system specification, design, synthesis (code generation), analysis
(validation), execution (runtime support), and maintenance (design evolution).
The present work investigates the application of software model based development
for an energy meter, which is composed by a microcontroller and some specific
hardware peripherals to measure electricity usage. At the end it will be conducted
comparative tests between the energy power meter WT3000 from Yokogawa and the
developed energy meter, to validate the used methodology into developed energy
meter.
|
8 |
Uma ferramenta de geração de Código VHDL a partir do Modelo de Atores utilizando o Framework PtolemyMedeiros, Ramon Leonn Victor 24 August 2012 (has links)
Made available in DSpace on 2015-05-14T12:36:42Z (GMT). No. of bitstreams: 1
arquivototal.pdf: 2269580 bytes, checksum: 6a6f30367d0a1aa2a50f7c1c09973b1f (MD5)
Previous issue date: 2012-08-24 / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior / In the area of Microelectronics, one of the most difficult it is to find qualified professionals. For the training of these there is a demand for resources - human and material - which most of the time have high cost. Thus, a solution is needed as accessible to institutions and researchers, as adaptable to your needs, providing scalability and dissemination to training, without focusing on quality. From the literature, based and presenting the Ptolemy framework, developed in Java and that allows the simulation of concurrent and heterogeneous systems, and in the Actor Model were directed efforts for the development of a tool for code generation open-source and multiplatform. Thus, the aim of this work is to develop a tool to generate VHDL code based on Ptolemy Actors using the Ptolemy framework. Where, in addition to design and simulate graphically there is a difference in the possibility of modeling at different levels of abstraction and generation of the VHDL code in a hierarchical manner, presenting the process of development of the tool and the results of its use, as well as contributions. / Na área de Microeletrônica uma das maiores dificuldades trata-se de encontrar profissionais capacitados. Para a formação destes há uma demanda por recursos humanos e materiais - que, muitas vezes, tem alto custo. Assim, se faz necessária uma solução tão acessível a instituições e pesquisadores, quanto adaptável às suas necessidades, propiciando escalabilidade e disseminação à formação, sem deixar de focar a qualidade. A partir do levantamento bibliográfico, baseando-se e apresentando o framework Ptolemy, desenvolvido em Java e que possibilita a simulação de sistemas concorrentes e heterogêneos, e no modelo de atores foram direcionados os esforços para o desenvolvimento de uma ferramenta de geração de código open-source e multiplataforma. Sendo assim, o objetivo deste trabalho é o desenvolvimento de uma ferramenta de geração de código VHDL baseada em Atores utilizando o Framework Ptolemy. Onde, além de projetar e simular graficamente há um diferencial na possibilidade de modelagem em níveis diferentes de abstração e geração de código VHDL de forma hierárquica. Apresentado o processo de desenvolvimento da ferramenta e resultados de sua utilização, bem como as contribuições.
|
9 |
Geração parcial de código Java a partir de especificações formais Z. / Partial generation of Java code from Z formal specifications.Miyazawa, Alvaro Heiji 03 October 2008 (has links)
Especificações formais são úteis para descrever o que um sistema deve fazer sem definir como, e, em virtude da sua natureza formal e da possibilidade de abstração, é possível analisá-las sistematicamente. No entanto, o uso de especificações formais como parte do desenvolvimento de software não constitui prática comum. Isso se dá, em parte, pelo fato de existirem apenas um pequeno número de metodologias e ferramentas adequadas que dêem suporte a esse desenvolvimento. O primeiro objetivo deste trabalho é propor uma metodologia de desenvolvimento que possibilite, a partir de uma especificação formal em notação Z, produzir uma implementação dessa especificação em Java. Essa metodologia centra-se na geração do esqueleto da aplicação Java e na instrumentação desse esqueleto com mecanismos de verificação de condições (invariantes, pré e pós-condições) e rastreamento de violações dessas condições. Através desses mecanismos, possibilita-se intercalar desenvolvimento formal e informal no processo global de desenvolvimento de software. O segundo objetivo é desenvolver uma ferramenta que implemente parte dessa metodologia, produzindo uma implementação parcial que deverá ser complementada pelo usuário. / Formal specifications are useful for describing what a system should do, without defining how, and, owing to its formal nature, it is possible to analyse them systematically. However useful formal specifications are, their usage as part of the software development process is rather rare. This is, in part, due to the scarcity of both methodologies and tools that support this development. The first goal of this work is to define a software development methodology that enables the developer to produce a Java application from a formal specification written in Z. This methodology will rely strongly on the generation of Java application skeletons and instrumentation of the generated code with means of verifying conditions (invariants, pre and post-conditions) e tracing violations of these conditions. Through this mechanisms, it is possible to mix formal and informal development in the global software development process. The second goal of this work is to develop a tool that will implement part of this methodology, producing a partial implementation that must be complemented by the developer.
|
10 |
Um gerador de aplicações configurável / A configurable application generatorShimabukuro Junior, Edison Kicho 03 July 2006 (has links)
Os geradores de aplicação são ferramentas que recebem uma especificação de software, validam essa especificação e geram artefatos automaticamente. Os geradores de aplicação podem trazer benefícios em termos de produtividade por gerarem automaticamente artefatos de baixo nível com base em especificações de nível mais alto. Um dos problemas dos geradores de aplicação é o seu alto custo de desenvolvimento. Os geradores de aplicação configuráveis são adaptados para fornecer apoio em domínios específicos, ou seja, são considerados meta-geradores utilizados para obter geradores de aplicação específicos. Este trabalho delineia um processo de desenvolvimento com geradores confi- guráveis, define a arquitetura e as características de um gerador configurável e apresenta a ferramenta Captor, que é um gerador de aplicação configurável desenvolvido para facilitar a construção de geradores específicos. Três estudos de caso nos quais a Captor é configurada para domínios de aplicação específi- cos são apresentados: persistência de dados, gestão de recursos de negócios e bóias náuticas / Application generators are tools that receive as input a software specification, validate it and automatically generate artifacts based on it. Application generators can bring several benefits in terms of productivity, as they automatically generate low-level artifacts based on higher abstraction level specifications. A major concern of application generators is their high development cost. Con- figurable application generators are those generators that can be adapted to give support in specific domains, i.e., they are considered as meta-generators through which it is possible to obtain specific application generators. This work presents an approach for software development supported by configurable application generators. It defines the architecture and main features of a configurable application generator and presents Captor, which is a configurable application generator developed to ease the creation of specific generators. Three case studies were conducted to show the configuration of the Captor tool to different application domains: objects persistence, business resource management and floating weather stations.
|
Page generated in 0.0548 seconds