• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 92
  • 6
  • 3
  • 3
  • 1
  • 1
  • 1
  • 1
  • Tagged with
  • 104
  • 40
  • 35
  • 33
  • 28
  • 27
  • 26
  • 26
  • 18
  • 18
  • 15
  • 15
  • 15
  • 14
  • 13
  • 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.
71

[en] OPTIMIZING THE PALLENE COMPILER / [pt] OTIMIZANDO O COMPILADOR PALLENE

LEONARDO KRAUSE LIPET SLIPOI KAPLAN 22 June 2021 (has links)
[pt] Linguagens dinâmicas provêm flexibilidade e simplicidade em troca de menos informação em tempo de compilação, o que resulta em perda de desempenho. Atacando este problema no contexto de Lua, a linguagem de programação Pallene surge como uma alternativa. Neste trabalho, examinamos o atual estado de Pallene, procurando por padrões responsáveis por perdas de desempenho. Baseado nestes padrões, propusemos e implementamos uma série de otimizações usando técnicas de análise estática. / [en] Dynamic languages provide flexibility and simplicity in exchange for less compile-time information, leading to slower run times. Addressing this problem in the Lua context, the Pallene programming language appears as an alternative. In this work, we studied the current state of Pallene, searching for patterns that caused performance losses. Based on these patterns, we proposed and implemented several optimizations with the use of static analysis techniques.
72

[en] A FOREIGN FUNCTION INTERFACE FOR PALLENE / [pt] UMA INTERFACE DE FUNÇÕES EXTERNAS PARA PALLENE

GABRIEL COUTINHO DE PAULA 10 December 2021 (has links)
[pt] Pallene é um subconjunto estaticamente tipado da linguagem de programação Lua, projetada para atuar como uma linguagem de sistemas em contraparte ao scripting de Lua, e usada para escrever bibliotecas de baixo nível e módulos de extensão para Lua. Nesse sentido, Pallene é uma linguagem companheira, usada sempre lado a lado com Lua, compartilhando seu runtime. Pallene, tanto como uma linguagem de sistema em contraparte a Lua e como uma ponte entre Lua e outras linguagens, deve fornecer um mecanismo de interação com bibliotecas e serviços de sistema escritos em uma linguagem de baixo nível como C. Para este fim, apresentamos um design e implementação de Interface de Função Estrangeira (IFE) para Pallene, que permite chamar funções externas que seguem as convenções de chamada C, e manipular representações de dados C diretamente. Nosso design equilibra flexibilidade e segurança seguindo uma abordagem empírica, em que preferimos sacrificar flexibilidade hipotética a menos que vejamos um caso de uso que nos faça comprometer em segurança. Nossa implementação tem como objetivo ser tão portátil quanto o Pallene, além de ter um bom desempenho e ser simples. Uma vez que a implementação de Pallene já depende de um compilador de C, a nossa IFE usa agressivamente o compilador de C já disponível para sua vantagem. Dessa forma, podemos usar diretamente os arquivos de cabeçalho de bibliotecas externas, permitindo que a IFE verifique a exatidão das ligações de função externa e que use macros de C. / [en] Pallene is a statically typed subset of the Lua programming language, designed to act as a system-language counterpart to Lua’s scripting, and used to write lower-level libraries and extension modules for Lua. In this sense, Pallene is a companion language, always intended to be used side-by-side with Lua, sharing its runtime. Pallene, both as a system-language counterpart to Lua and as a bridge between Lua and foreign languages, must provide a mechanism to interact with libraries and system services written in a low-level language like C. To this end, we present a Foreign Function Interface (FFI) design and implementation for Pallene, which allows for calling external functions that follow C calling conventions and manipulating C data representations directly. Our design balances flexibility and safety following an empirical approach, wherein we prefer to sacrifice hypothetical flexibility unless we see a real use case that forces us to compromise on safety. Our implementation aims to be as portable as Pallene, as well as performant and simple. Since Pallene s implementation already depends on a C compiler, the FFI aggressively uses the already available C compiler to its advantage. This way, we can directly use foreign libraries header files, enabling the FFI to verify the correctness of function bindings and to use macro definitions.
73

Construcción de un compilador de asertos de programación metódica

Berolatti Gonzales, Diego 12 November 2014 (has links)
Siempre ha existido la necesidad de validar la codificación de un programa. Este proyecto tiene como objetivo la implementación de un compilador que, mediante notaciones matemáticas que especifican un programa, genere las instrucciones de manera automática. El resultado tiene como principal característica que es formalmente correcto. Esto se da debido a que el compilador implementa una metodología llamada derivación de programas la cual garantiza esa característica. La implementación de esta metodología se da mediante la estructura formal de un compilador y la inclusión de un autómata adaptativo capaz de aplicar las reglas de programación metódica. El proyecto tiene como alcance el no aplicar ninguna regla que implique resolver un problema de complejidad np. Debido a esto la expresividad del lenguaje y su capacidad de generación automática se encuentra limitada. El resultado es un compilador capaz de generar código de manera automática en base a las especificaciones que el compilador es capaz de compilar. Este proyecto es la base de los compiladores de programación automática.
74

Um Compilador para a linguagem RS distribuída / A compiler for distributed RS language

Librelotto, Giovani Rubert January 2001 (has links)
A Linguagem RS é destinada a programação de núcleos reativos centralizados. Tais núcleos são responsáveis por toda a lógica de um sistema reativo, manipulando os sinais de entrada, realizando as reações e gerando os sinais de saída. Sendo sua idéia inicial tratar apenas processos centralizados, não houve a preocupação com a distribuição. Este trabalho tem como principal objetivo apresentar os aspectos introduzidos de uma nova versão para a Linguagem e para o Compilador RS, que possibilitam a execução de programas distribuídos. Além da possibilidade de execução de sistemas reativos distribuídos, foi acrescentado à Linguagem RS extensões já previstas na sua criação, como sinais inibidores, regras de exclusão mútua e concomitância, a possibilidade de disparo de mais de uma regra em um mesmo instante e a limpeza léxica do código fonte RS. As modificações incorporadas nesta nova versão da linguagem, foram efetivadas através de um novo compilador, chamado de Compilador RS 5.0. O protótipo implementado oferece a geração de três formatos de código: o formato padrão da linguagem RS (os autômatos e as regras correspondentes), códigos na linguagem C para a simulação dos autômatos (tanto para programas distribuídos quanto não-distribuídos) e arquivos no formato portável OC, que é um formato de código objeto padrão para as linguagens reativas. Para a distribuição e implementação da Linguagem RS foi necessária a criação de um novo núcleo de comunicação do MDX, que é responsável pela comunicação dos autômatos RSD. Este núcleo é dividido em três partes. A primeira trata da definição de um modelo formal com as mudanças necessárias para que a linguagem RS consiga trabalhar de forma distribuída, a segunda mostra o projeto do novo núcleo MDX e a terceira apresenta a implementação em C e MDX dos autômatos gerados pelo Compilador RS 5.0. Por fim, exemplos de aplicação desta nova linguagem são apresentados, onde podem ser vistos a importância e o acréscimo proporcionado por este trabalho tanto à linguagem RS quanto à programação de sistemas reativos síncronos. / The RS language is intended to the programming of centralized reactive kernels. Such kernels are responsible for the logic of a reactive system, manipulating the input signals, carrying through the reactions and generating the output signals. Being its initial idea to treat only centered processes, it did not have the concern with the distribution. The main objective of this work is to describe the process of creation of a new version for the Language and Compiler RS, that make possible the execution of distributed programs. Beyond the possibility of execution distributed reactive systems, it was added to RS language foreseen extensions already in its creation, as inhibiting signals, rules of manual exclusion and concurrence, the possibility of detonation of more than a rule in one exactly instant and the lexical cleanness of the RS code source. The modifications incorporated in this new version of the language, had been accomplished through a new compiler, called Compiler RS 5.0. The implemented archetype offers the generation of three formats of code: the standard format of RS language (the corresponding automatons and rules), codes in the language C for the simulation of the automatons and archives in OC portable format, that is a object format code standard for the reactive languages. For the distribution and implementation of Language RS was necessary the creation of a new kernel of communication of the MDX, that is responsible for the communication of RSD automatons. It is divided in three parts. The first one deals with the definition of a formal model that defines the necessary changes so that RS language obtains to work of distributed form, the second shows the design of new MDX kernel and third presents the implementation in C and MDX of the automatons generated for Compiler RS 5.0. Finally, examples of application of this new language are presented, where the importance and the proportionate upgrade for this work to RS language how to the programming of synchronous reactive systems can in such a way be seen.
75

Um Compilador para a linguagem RS distribuída / A compiler for distributed RS language

Librelotto, Giovani Rubert January 2001 (has links)
A Linguagem RS é destinada a programação de núcleos reativos centralizados. Tais núcleos são responsáveis por toda a lógica de um sistema reativo, manipulando os sinais de entrada, realizando as reações e gerando os sinais de saída. Sendo sua idéia inicial tratar apenas processos centralizados, não houve a preocupação com a distribuição. Este trabalho tem como principal objetivo apresentar os aspectos introduzidos de uma nova versão para a Linguagem e para o Compilador RS, que possibilitam a execução de programas distribuídos. Além da possibilidade de execução de sistemas reativos distribuídos, foi acrescentado à Linguagem RS extensões já previstas na sua criação, como sinais inibidores, regras de exclusão mútua e concomitância, a possibilidade de disparo de mais de uma regra em um mesmo instante e a limpeza léxica do código fonte RS. As modificações incorporadas nesta nova versão da linguagem, foram efetivadas através de um novo compilador, chamado de Compilador RS 5.0. O protótipo implementado oferece a geração de três formatos de código: o formato padrão da linguagem RS (os autômatos e as regras correspondentes), códigos na linguagem C para a simulação dos autômatos (tanto para programas distribuídos quanto não-distribuídos) e arquivos no formato portável OC, que é um formato de código objeto padrão para as linguagens reativas. Para a distribuição e implementação da Linguagem RS foi necessária a criação de um novo núcleo de comunicação do MDX, que é responsável pela comunicação dos autômatos RSD. Este núcleo é dividido em três partes. A primeira trata da definição de um modelo formal com as mudanças necessárias para que a linguagem RS consiga trabalhar de forma distribuída, a segunda mostra o projeto do novo núcleo MDX e a terceira apresenta a implementação em C e MDX dos autômatos gerados pelo Compilador RS 5.0. Por fim, exemplos de aplicação desta nova linguagem são apresentados, onde podem ser vistos a importância e o acréscimo proporcionado por este trabalho tanto à linguagem RS quanto à programação de sistemas reativos síncronos. / The RS language is intended to the programming of centralized reactive kernels. Such kernels are responsible for the logic of a reactive system, manipulating the input signals, carrying through the reactions and generating the output signals. Being its initial idea to treat only centered processes, it did not have the concern with the distribution. The main objective of this work is to describe the process of creation of a new version for the Language and Compiler RS, that make possible the execution of distributed programs. Beyond the possibility of execution distributed reactive systems, it was added to RS language foreseen extensions already in its creation, as inhibiting signals, rules of manual exclusion and concurrence, the possibility of detonation of more than a rule in one exactly instant and the lexical cleanness of the RS code source. The modifications incorporated in this new version of the language, had been accomplished through a new compiler, called Compiler RS 5.0. The implemented archetype offers the generation of three formats of code: the standard format of RS language (the corresponding automatons and rules), codes in the language C for the simulation of the automatons and archives in OC portable format, that is a object format code standard for the reactive languages. For the distribution and implementation of Language RS was necessary the creation of a new kernel of communication of the MDX, that is responsible for the communication of RSD automatons. It is divided in three parts. The first one deals with the definition of a formal model that defines the necessary changes so that RS language obtains to work of distributed form, the second shows the design of new MDX kernel and third presents the implementation in C and MDX of the automatons generated for Compiler RS 5.0. Finally, examples of application of this new language are presented, where the importance and the proportionate upgrade for this work to RS language how to the programming of synchronous reactive systems can in such a way be seen.
76

Um Compilador para a linguagem RS distribuída / A compiler for distributed RS language

Librelotto, Giovani Rubert January 2001 (has links)
A Linguagem RS é destinada a programação de núcleos reativos centralizados. Tais núcleos são responsáveis por toda a lógica de um sistema reativo, manipulando os sinais de entrada, realizando as reações e gerando os sinais de saída. Sendo sua idéia inicial tratar apenas processos centralizados, não houve a preocupação com a distribuição. Este trabalho tem como principal objetivo apresentar os aspectos introduzidos de uma nova versão para a Linguagem e para o Compilador RS, que possibilitam a execução de programas distribuídos. Além da possibilidade de execução de sistemas reativos distribuídos, foi acrescentado à Linguagem RS extensões já previstas na sua criação, como sinais inibidores, regras de exclusão mútua e concomitância, a possibilidade de disparo de mais de uma regra em um mesmo instante e a limpeza léxica do código fonte RS. As modificações incorporadas nesta nova versão da linguagem, foram efetivadas através de um novo compilador, chamado de Compilador RS 5.0. O protótipo implementado oferece a geração de três formatos de código: o formato padrão da linguagem RS (os autômatos e as regras correspondentes), códigos na linguagem C para a simulação dos autômatos (tanto para programas distribuídos quanto não-distribuídos) e arquivos no formato portável OC, que é um formato de código objeto padrão para as linguagens reativas. Para a distribuição e implementação da Linguagem RS foi necessária a criação de um novo núcleo de comunicação do MDX, que é responsável pela comunicação dos autômatos RSD. Este núcleo é dividido em três partes. A primeira trata da definição de um modelo formal com as mudanças necessárias para que a linguagem RS consiga trabalhar de forma distribuída, a segunda mostra o projeto do novo núcleo MDX e a terceira apresenta a implementação em C e MDX dos autômatos gerados pelo Compilador RS 5.0. Por fim, exemplos de aplicação desta nova linguagem são apresentados, onde podem ser vistos a importância e o acréscimo proporcionado por este trabalho tanto à linguagem RS quanto à programação de sistemas reativos síncronos. / The RS language is intended to the programming of centralized reactive kernels. Such kernels are responsible for the logic of a reactive system, manipulating the input signals, carrying through the reactions and generating the output signals. Being its initial idea to treat only centered processes, it did not have the concern with the distribution. The main objective of this work is to describe the process of creation of a new version for the Language and Compiler RS, that make possible the execution of distributed programs. Beyond the possibility of execution distributed reactive systems, it was added to RS language foreseen extensions already in its creation, as inhibiting signals, rules of manual exclusion and concurrence, the possibility of detonation of more than a rule in one exactly instant and the lexical cleanness of the RS code source. The modifications incorporated in this new version of the language, had been accomplished through a new compiler, called Compiler RS 5.0. The implemented archetype offers the generation of three formats of code: the standard format of RS language (the corresponding automatons and rules), codes in the language C for the simulation of the automatons and archives in OC portable format, that is a object format code standard for the reactive languages. For the distribution and implementation of Language RS was necessary the creation of a new kernel of communication of the MDX, that is responsible for the communication of RSD automatons. It is divided in three parts. The first one deals with the definition of a formal model that defines the necessary changes so that RS language obtains to work of distributed form, the second shows the design of new MDX kernel and third presents the implementation in C and MDX of the automatons generated for Compiler RS 5.0. Finally, examples of application of this new language are presented, where the importance and the proportionate upgrade for this work to RS language how to the programming of synchronous reactive systems can in such a way be seen.
77

Estudo e implantação de um compilador Snobol

Rodrigues, Guilherme Chagas 01 1900 (has links)
Submitted by Algacilda Conceição (algacilda@sibi.ufrj.br) on 2018-03-13T15:09:08Z No. of bitstreams: 1 129441.pdf: 6065739 bytes, checksum: 332b2cd6d11242d4e55265be7a87a3fa (MD5) / Made available in DSpace on 2018-03-13T15:09:08Z (GMT). No. of bitstreams: 1 129441.pdf: 6065739 bytes, checksum: 332b2cd6d11242d4e55265be7a87a3fa (MD5) Previous issue date: 1971-01 / Descreve as diretrizes seguidas na implantação de um compilador Snobol para o computador 1130. É discutida toda a estrutura e organização do sistema do ponto de vista prático, visando a sua implantação a curto prazo. São também apresentadas a estrutura e a lógica do sistema, na fase Compilação como na fase Execução, com uma descrição sucinta das rotinas principais. Algumas facilidades que não foram implantadas no sistema Snobol original são discutidas de maneira superficial. / Describes the design of a Snobol compiler for the IBM 1130. The structure and organization fo the system is discused from a pratical view point with the objective of making it ready in a short time. The structure and logic of the compilation phase and the runtime environment is presented with a concise description of the main routines. Some facilities of Snobol 3 not implemented are also discussed.
78

2D-VLIW : uma arquitetura de processador baseada na geometria da computação / 2D-VLIW : a processor architecture based on the geometry of the computation

Santos, Ricardo Ribeiro dos 07 October 2007 (has links)
Orientadores: Rodolfo Jardim de Azevedo, Guido Costa Souza de Araujo / Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-08T21:29:56Z (GMT). No. of bitstreams: 1 Santos_RicardoRibeirodos_D.pdf: 1101695 bytes, checksum: 4ed1029f4633af49dda77618650600a7 (MD5) Previous issue date: 2007 / Resumo: Anúncios recentes sobre os limites do desempenho dos processadores devido ao alcance da barreira térmica têm motivado a pesquisa sobre novas organizações arquiteturais e modelos de execução que visam continuar o aumento de desempenho dos processadores. Este trabalho propõe uma nova arquitetura de processador denominada 2D-VLIW. A arquitetura possui uma organização arquitetural baseada em uma matriz bidimensional de unidades funcionais e de registradores distribuídos ao longo dessa matriz. O modelo de execução 2D-VLIW possibilita que instruções longas, formadas por operações simples, sejam buscadas na memória e executadas sobre a matriz de unidades funcionais. Além disso, são propostos algoritmos para geração de código para extrair o paralelismo e preparar o código para ser executado sobre a arquitetura. Algumas contribuições deste trabalho são a concepção de uma nova arquitetura de processador que explora paralelismo em nível de instruções através de um novo arranjo dos elementos arquiteturais, a adoção de um modelo de execução que captura a geometria dos DAGs e associa os vértices e arestas desses DAGs aos recursos do hardware, um conjunto de algoritmos para escalonamento de instruções, a alocação de registradores e a codificação de instruções na arquitetura 2D-VLIW. Os resultados experimentais comparam o desempenho do modelo de execução dessa arquitetura com o modelo EPIC adotado pelo processador HPL-PD. O speedup obtido por 2D-VLIW foi de 5% at'e 63%. A estratégia de escalonamento adotada por 2D-VLIW foi também avaliada e os ganhos obtidos através do OPC e OPI foram até 4 vezes melhores que aqueles obtidos por um algoritmo de escalonamento baseado em list scheduling / Abstract: Recent announcements on processor performance limits due to the thermal barrier have motivated research into innovative architectural organizations and execution models to sustain the increase of performance. This work proposes a new architecture named 2D-VLIW. The architecture provides a new architectural organization of the processing elements by using a two-dimensional functional units matrix and registers spread out along this matrix. The 2D-VLIW execution model fetches long instructions comprised of simple operations in the memory and dispatches these operations to the matrix. Moreover, the work presents new algorithms for code generation which are the responsible for extracting the parallelism of the applications and preparing the code for the 2D-VLIW architecture. Some contributions of this work are a new high performance architecture that exploits instruction level parallelism by a new arrangement of the architectural elements, the adoption of an execution model that captures the geometry of the DAGs and matches them to the hardware resources, a set of algorithms for code generation that make them possible to schedule instructions, allocate registers and encode long instructions of the 2D-VLIW architecture. Experimentos were used for comparing the performance of the 2D-VLIWexecution model to the EPIC execution model of the HPL-PD architecture. The speedup obtained by 2D-VLIW ranges from 5%-63% for all the evaluated programs. The scheduling strategy based on subgraph isomorphism was also evaluated and the OPC and OPI gains were up to 4× better than that of the list scheduling algorithm / Doutorado / Doutor em Ciência da Computação
79

PBIW : um esquema de codificação baseado em padrões de instrução / PBIW : an encoding technique based on instruction patterns

Batistella, Rafael Fernandes 28 February 2008 (has links)
Orientador: Rodolfo Jardim de Azevedo / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-11T00:49:37Z (GMT). No. of bitstreams: 1 Batistella_RafaelFernandes_M.pdf: 3411156 bytes, checksum: 7e6b46824189243405a180e949db65c6 (MD5) Previous issue date: 2008 / Resumo: Trabalhos não muito recentes já mostravam que o aumento de velocidade nas memórias DRAM não acompanha o aumento de velocidade dos processadores. Mesmo assim, pesquisadores na área de arquitetura de computadores continuam buscando novas abordagens para aumentar o desempenho dos processadores. Dentro do objetivo de minimizar essa diferença de velocidade entre memória e processador, este trabalho apresenta um novo esquema de codificação baseado em instruções codificadas e padrões de instruções ¿ PBIW (Pattern Based Instruction Word). Uma instrução codificada não contém redundância de dados e é armazenada em uma I-cache. Os padrões de instrução, de forma diferente, são armazenados em uma nova cache, chamada Pattern cache (P-cache) e são utilizados pelo circuito decodificador na preparação da instrução que será repassada aos estágios de execução. Esta técnica se mostrou uma boa alternativa para estilos arquiteturais conhecidos como arquiteturas VLIW e EPIC. Foi realizado um estudo de caso da técnica PBIW sobre uma arquitetura de alto desempenho chamada de 2D-VLIW. O desempenho da técnica de codificação foi avaliado através de experimentos com programas dos benchmarks MediaBench, SPECint e SPECfp. Os experimentos estáticos avaliaram a eficiência da codificação PBIW no aspecto de redução de código. Nestes experimentos foram alcançadas reduções no tamanho dos programas de até 81% sobre programas codificados com a estratégia de codifica¸c¿ao 2D-VLIW e reduções de até 46% quando comparados á programas utilizando o modelo de codificação EPIC. Experimentos dinâmicos mostraram que a codificação PBIW também é capaz que gerar ganhos com relação ao tempo de execução dos programas. Quando comparada à codificação 2D-VLIW, o speedup alcançado foi de at'e 96% e quando comparada à EPIC, foi de até 69% / Abstract: Past works has shown that the increase of DRAM memory speed is not the same of processor speed. Even though, computer architecture researchers keep searching for new approaches to enhance the processor performance. In order to minimize this difference between the processor and memory speed, this work presents a new encoding technique based on encoded instructions and instruction patterns - PBIW (Pattern Based Instruction Word). An encoded instruction contains no redundancy of data and it is stored into an I-cache. The instruction patterns, on the other hand, are stored into a new cache, named Pattern cache (P-cache) and are used by the decoder circuit to build the instruction to be executed in the execution stages. This technique has shown a suitable alternative to well-known architectural styles such as VLIW and EPIC architectures. A case study of this technique was carried out in a high performance architecture called 2D-VLIW. The performance of the encoding technique has been evaluated through trace-driven experiments with MediaBench, SPECint and SPECfp programs. The static experiments have evaluated the PBIW code reduction efficiency. In these experiments, PBIW encoding has achieved up to 81% code reduction over 2D-VLIW encoded programs and up to 46% code reduction over EPIC encoded programs. Dynamic experiments have shown that PBIW encoding can also improve the processor performance. When compared to 2D-VLIW encoding, the speedup was up to 96% while compared to EPIC, the speedup was up to 69% / Mestrado / Arquitetura de Computadores / Mestre em Ciência da Computação
80

Ferramenta computacional para a definição e geração de estruturas cristalinas

Ferreira, Roberto de Carvalho 29 August 2012 (has links)
Submitted by Renata Lopes (renatasil82@gmail.com) on 2016-06-10T11:28:09Z No. of bitstreams: 1 robertodecarvalhoferreira.pdf: 4632819 bytes, checksum: e5bd9a607a629a54c4f57e8d4c95a5ed (MD5) / Approved for entry into archive by Adriana Oliveira (adriana.oliveira@ufjf.edu.br) on 2016-07-13T13:47:43Z (GMT) No. of bitstreams: 1 robertodecarvalhoferreira.pdf: 4632819 bytes, checksum: e5bd9a607a629a54c4f57e8d4c95a5ed (MD5) / Made available in DSpace on 2016-07-13T13:47:43Z (GMT). No. of bitstreams: 1 robertodecarvalhoferreira.pdf: 4632819 bytes, checksum: e5bd9a607a629a54c4f57e8d4c95a5ed (MD5) Previous issue date: 2012-08-29 / CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível Superior / A evolução dos computadores, mais especificamente no que diz respeito ao aumento de sua capacidade de armazenamento e de processamento de dados, possibilitou a construção de ferramentas computacionais destinadas à simulação de fenômenos físicos e químicos. Com isso, a realização de experimentos práticos vem, em alguns casos, sendo substituída pela utilização de experimentos computacionais, que simulam o comportamento de inúmeros elementos que compõem o experimento original. Neste contexto, podemos destacar os modelos utilizados para a simulação de fenômenos em escala atômica. A construção desses simuladores requer, por parte dos desenvolvedores, um amplo estudo e definição de modelos precisos e confiáveis. Tal complexidade se reflete, muitas vezes, em simuladores complexos, destinados a simulação de um grupo restrito de estruturas, expressos de maneira fixa, utilizando algumas formas geométricas padrões. Este trabalho propõe uma ferramenta computacional para a geração de um conjunto de estruturas cristalinas. Este conjunto é caracterizado pela organização espacial regular dos átomos que a compõe. A ferramenta é composta por a) uma linguagem de programação, que rege a criação das estruturas através da definição de um sistema cristalino e a construção de objetos a partir de funções características e operadores CSG (Construtive Solid Geometry), e b) um compilador/interpretador que analisa um código fonte escrito na linguagem, e gera a partir deste o objeto correspondente. A ferramenta oferece aos desenvolvedores um mecanismo simples que possibilita a geração de um número irrestrito de estruturas. Sua aplicabilidade é demonstrada através da incorporação de uma estrutura, gerada a partir de um código fonte, ao simulador Monte Carlo Spins Engine, criado pelo Grupo de Computação Gráfica da Universidade Federal de Juiz de Fora. / The evolution of computers, more specifically regarding the increased storage and data processing capacity, allowed the construction of computational tools for the simulation of physical and chemical phenomena. Thus, practical experiments are being replaced, in some cases, by computational experiments that simulate the behavior of many elements that compose the original one. In this context, we can highlight the models used to simulate phenomena at the atomic scale. The construction of these simulators requires, by developers, the study and definition of accurate and reliable models. This complexity is often reflected in the construction of complex simulators, which simulate a limited group of structures. Such structures are sometimes expressed in a fixed manner using a limited set of geometric shapes. This work proposes a computational tool that aims to generate a set crystal structures. Crystal structures are characterized by a set of atoms arranged in a regular way. The proposed tool consists of a) a programming language, which is used to describe the structures using for this purpose characteristic functions and CSG (Construtive Solid Geometry) operators, and b) a compiler/interpreter that examines the source code written in the proposed language, and generates the objects accordingly. This tool enables the generation of an unrestricted number of structures. Its applicability is demonstrated through the incorporation of a structure, generated from the source code, to the Monte Carlo Spins Engine, a spin simulator developed by the Group of Computer Graphics of the Federal University of Juiz de Fora.

Page generated in 0.0925 seconds