Spelling suggestions: "subject:"compiladores (programas dde computador)"" "subject:"compiladores (programas dee computador)""
1 |
Uma implementação de Modula-2 : analise e representação intermediariaPedro Junior, Jose 15 July 2018 (has links)
Orientador : Tomasz Kowaltowski / Dissertação (mestrado) - Universidade Estadual de Campinas. Isntituto de Matematica, Estatistica e Ciencia da Computação / Made available in DSpace on 2018-07-15T09:34:28Z (GMT). No. of bitstreams: 1
PedroJunior_Jose_M.pdf: 1220305 bytes, checksum: 202e709494def2efaa531bb7b5eb4452 (MD5)
Previous issue date: 1983 / Resumo: Implementou-se um compilador para a linguagem de programação MODULA-2. Esta redação descreve as análises léxica, sintática e de contexto, bem como a tradução do programa fonte para uma "representação intermediária". Tal representação é o ponto de partida para a geração de código (não descrita na redação) ...Observação: O resumo, na íntegra, poderá ser visualizado no texto completo da tese digital / Abstract: a compiler for the programming language MODULO-2 was implemented. This work describes the lexic, syntactic and context analysis, and also the source program translation to an "intermediate representation". This representation is the basis for code generation (not described here) ... Note: The complete abstract is available with the full electronic digital thesis or dissertations / Mestrado / Mestre em Ciência da Computação
|
2 |
Um sistema gerador de compiladoresJino, Mario, 1943- 20 July 2018 (has links)
Orientador: Nelson C. Machado / Dissertação (mestrado) - Universidade Estadual de Campinas, Faculdade de Engenharia Eletrica / Made available in DSpace on 2018-07-20T02:29:57Z (GMT). No. of bitstreams: 1
Jino_Mario_M.pdf: 3073919 bytes, checksum: c3827bc75fe74b4f0d7ebda110d1dbe0 (MD5)
Previous issue date: 1974 / Resumo: Neste trabalho é apresentada a descrição de sistema gerador de compiladores que, a partir da especificação sintática de uma linguagem produz tabelas que dirigirão a análise sintática de programas da linguagem. A análise sintática é efetuada por dois analisadores lixos: um analisador "top down" de descida recursiva para a parte geral da linguagem e um analisador "bottom up" de precedência de operadores o para sub-conjuntos específicos da linguagem. São descritas a especificações aceitas pelo sistema, a construção das tabelas e os analisadores. A especificação semântica deve ser feira pelo próprio usuário do sistema / Abstract: Not informed / Mestrado / Mestre em Engenharia Elétrica
|
3 |
Uma implementação distribuida da Maquina Virtual JAVA visando o compartilhametno do compilador "just-In-Time"Ferreira, Rodrigo Augusto Barbato 29 March 2001 (has links)
Orientador: Guido Costa Souza de Araujo / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-07-27T17:17:44Z (GMT). No. of bitstreams: 1
Ferreira_RodrigoAugustoBarbato_M.pdf: 7083497 bytes, checksum: e0954b25f044d75d0166d511f5bbe192 (MD5)
Previous issue date: 2001 / Resumo: A compilação Just-In- Time (JIT) é uma técnica amplamente utilizada no aperfeiçoamento do desempenho da Máquina Virtual Java (JVM, do inglês Java Virtual Machine). Contudo, o tempo gasto internamente pelo compilador JIT degrada, em muitos casos, o tempo de execução das aplicações. Algumas técnicas têm sido usadas com o objetivo de diminuir o impacto negativo do JIT sobre a execução, ainda sim preservando a sua eficácia. Entretanto, sempre haverá uma relação inversa entre o tempo gasto pelo compilador JIT e o tempo de execução do código objeto por ele produzido. Segundo nossa concepção, uma Máquina Virtual Java que visa usuários finais executa o mesmo código a maior parte do seu tempo. Os usuários sempre utilizam os mesmos aplicativos, os quais são tipicamente compostos pelo mesmo conjunto de classes. Por outro lado, em grandes companhias, dezenas ou até mesmo centenas de empregados compartilham a mesma aplicação ou pacote de aplicações. Usualmente, eles estão conectados a uma mesma Intranet, rápida e segura. Neste cenário, o esforço do JIT por usuário é repetitivo e bem maior que o estritamente necessário. O objetivo deste trabalho é o de desacoplar atividades de tempo de ligação da JVM para um servidor compartilhado, de maneira distribuída. Desta forma, cada cliente JVM se torna um componente de software muito simples que executa código Java nativamente, dispensando um JIT ou interpretador. Todas as atividades complexas de tempo de ligação - como detecção de erros, verificação do formato binário Java e compilação JIT - são efetuadas pelo servidor, que armazena suas respostas em uma cache. Este documento é uma descrição de uma implementação alternativa da Máquina Virtual Java que inova em muitos pontos. Em particular, são contribuições deste trabalho: as técnicas para a detecção e recuperação de contextos repetidos em tempo de ligação; um procedimento alternativo, off-line, para a verificação do bytecode Java; o projeto e a implementação de uma representação intermediária específica para Java; a descrição, em detalhes, de diversos aspectos de implementação da JVM / Abstract: Just-In-Time (JIT) compilation is a well-known technique used to improve the execution time in the Java Virtual Machine (JVM). However, the amount of time used by the JIT internals degrades, in many cases, the application execution time. Some techniques have been used to decrease the JIT overhead, while still keeping its effectiveness. However, the trade-off between the JIT running time and its object code execution time will always existo From our observation, an end-user Java Virtual Machine deals with the same code most of its time. Users always launch the same applications, which are typically composed of the same set of classes. On the other hand, in big companies, dozens or even hundreds of employees share the same application or application suite. Usually, they are connected under the same fast and secure Intranet. In this scenario, the per-user JIT effort is repetitive and largely greater than the strictly required. The goal of our work is to detach linking activities from the JVM to a shared server, on a distributed fashion. By doing that, the client JVM turns to be a very simple piece of software that runs Java code natively, not requiring a JIT or interpreter. All complex linking activities - like link-time error checking, class file verification and JIT compilation are done by the server, which caches its responses. This document is a description of an alternate implementation of the Java Virtual Machine that innovates. It covers specially: the techniques for detecting and caching repetitive link-time contexts; an alternate, offline, byte code verification procedure; the design and implementation of a Java specific intermediate representation; the detailed description of many JVM implementation issues / Mestrado / Mestre em Ciência da Computação
|
4 |
Geração e vetorização de instruções de multiplicação e acumulação para processadores DSP SIMDFargasch, Natalia Viana 01 July 2001 (has links)
Orientador : Guido Costa Souza de Araujo / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-07-27T21:58:37Z (GMT). No. of bitstreams: 1
Fargasch_NataliaViana_M.pdf: 3686476 bytes, checksum: 309fba7a4a0c16dcd92d2ef76510d72b (MD5)
Previous issue date: 2000 / Resumo: Processadores que são projetados para executar aplicações específicas - em oposição a processadores de propósito geral- representam uma porcentagem cada vez maior do total de processadores vendidos anualmente. Esses processadores são utilizados em aparelhos eletrônicos como telefones celulares e câmeras digitais, dispositivos médicos de monitoração, modems, sistemas militares de radar, componentes eletrônicos de automóveis, set-top boxes, etc. As aplicações que são executadas por esses processadores tipicamente demandam um alto desempenho, combinado com reduzido tamanho de código e dissipação de energia. Esta dissertação aborda um dos problemas presentes durante a geração de código para uma classe desses processadores, os processadores de sinais digitais (DSPs): como o compilador pode utilizar as instruções especializadas desses processadores a fim de aumentar a densidade e melhorar o desempenho do código gerado. É proposto um procedimento que permite a detecçãoj geração de instruções de multiplicação e acumulação (muito comuns nas aplicações desses processadores). É ainda apresentado um método que permite explorar a possibilidade de execução de código em paralelo por duas ou mais unidades funcionais quando essas são capazes de operar simultaneamente sobre diferentes dados. Os métodos aqui apresentados permitem uma exploração bastante agressiva das instruções de multiplicação e acumulação, e se utilizam de algoritmos de análise de fluxo de dados e técnicas de reestruturação de laços. Não é conhecido nenhum trabalho que aborde esse problema da maneira como é apresentada neste / Abstract: Application specific processors - as opposed to general purpose processors - account for an ever increasing percentage of the processors sold each year. These processors are widely used in electronic devices such as cellular phones and digital cameras, medical monitoring devices, modems, military radar systems, electronic components in vehicles and set-top boxes, to name a few. The applications that usually run on these processors demand high performance, reduced code size and low power consuption.
This thesis addresses one of the issues that arise when generating code for a class of these processors, the digital signal processors (DSPs): how the compiler can take advantage of their specialized instructions in order to reduce the size and improve performance of the code generated. A method is proposed that allows for the detectionj generation of multiply and accumulate instructions (typically present in these processors' applications). AIso presented in this work is a method that makes it possible to explore the possibility of running code in parallel on two or more functional units when these are capable of operating simultaneously on different data. The methods herein presented allow for an aggressive harnessing of multiply and accumulate instructions; to accomplish this goal they rely on data flow analysis algorithms and on loop restructuring techniques. No other work is known of that addresses this problem the way it is dealt with in this thesis / Mestrado / Mestre em Ciência da Computação
|
5 |
Ferramentas de desenvolvimento para microcomputadores dedicados baseados em processadores 80386/80486Benchimol, Isaac Benjamim January 1995 (has links)
Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnologico / Made available in DSpace on 2016-01-08T19:34:45Z (GMT). No. of bitstreams: 1
99802.pdf: 2570350 bytes, checksum: d5cd4ff545ad452df301395ebf82b8ea (MD5)
Previous issue date: 1995 / Foi desenvolvido um conjunto de ferramentas que objetivam auxiliar o desenvolvimento, teste e depuração de softwares para microcomputadores dedicados que utilizam os recursos da arquitetura dos processadores Intel 80386/80486 disponíveis no modo protegido. As ferramentas implementadas permitem a utilização de um PC 386/486 compatível como ambiente de desenvolvimento, além dos compiladores mais populares para as linguagens de programação Assembly e C.
|
6 |
Modi - um ambiente de desenvolvimento para aplicações voltadas a sistemas dedicadosSilva, Marcos Antonio Vieira da 02 August 2018 (has links)
Orientador: Elnatan Chagas Ferreira / Tese (doutorado) - Universidade Estadual de Campinas, Faculdade de Engenharia Eletrica e de Computação / Made available in DSpace on 2018-08-02T22:57:35Z (GMT). No. of bitstreams: 1
Silva_MarcosAntonioVieirada_D.pdf: 2154516 bytes, checksum: c5cfa588aca6bc46461c53df90f4d2c5 (MD5)
Previous issue date: 2002 / Doutorado
|
7 |
Um compilador para um sistema de gerenciamento de metadados baseado em MOFFigueiredo, Adriana Maria Cunha de Melo 03 August 2018 (has links)
Orientador : Manuel de Jesus Mendes / Dissertação (mestrado) - Universidade Estadual de Campinas, Faculdade de Engenharia Eletrica e de Computação / Made available in DSpace on 2018-08-03T23:26:28Z (GMT). No. of bitstreams: 1
Figueiredo_AdrianaMariaCunhadeMelo_M.pdf: 2152436 bytes, checksum: 1e8d87ef53f87c9ba601c7e63e879f49 (MD5)
Previous issue date: 2004 / Mestrado / Engenharia de Computação / Mestre em Engenharia Elétrica
|
8 |
Uma coleção de estudos de caso sobre o uso da linguagem Halide de domínio-específico em processamento de imagens e arquiteturas paralelas / A collection of case studies of using the Halide domain-specific language for image processing tasks in parallel architecturesOliveira, Victor Matheus de Araujo, 1988- 24 August 2018 (has links)
Orientador: Roberto de Alencar Lotufo / Dissertação (mestrado) - Universidade Estadual de Campinas, Faculdade de Engenharia Elétrica e de Computação / Made available in DSpace on 2018-08-24T09:58:17Z (GMT). No. of bitstreams: 1
Oliveira_VictorMatheusdeAraujo_M.pdf: 5485933 bytes, checksum: 54457856261050bf86360bc7acbb2e5b (MD5)
Previous issue date: 2013 / Resumo: Um novo desenvolvimento no campo de Linguagens de Domínio-Específico são linguagens de programação que podem funcionar tanto em CPUs multi-núcleo quanto em GPUs. Nesta dissertação, avaliamos Halide, uma Linguagem de Domínio Específico (DSL) para processamento de imagens. Halide funciona tanto em CPUs como em GPUs e almeja ser uma forma mais simples e eficiente, em termos de desempenho, de expressar algoritmos da área do que as alternativas tradicionais. Para mostrar o potencial e as limitações da linguagem Halide, fazemos nesta dissertação alguns estudos de caso com algoritmos que acreditamos ser bons exemplos de categorias-chave em Processamento de Imagens, especialmente em manipulação e edição de Imagens. Comparamos o desempenho e simplicidade de implementação desses problemas com implementações em C++ usando \emph{threads} e vetorização, para arquiteturas CPU multi-núcleo, e OpenCL, para CPUs e GPUs. Mostramos que há problemas na implementação atual de Halide e que alguns tipos de algoritmos da área não podem ser bem expressos na linguagem, o que limita a sua aplicabilidade prática. Entretanto, onde isso é possível, Halide tem performance similar à implementações em OpenCL, onde vemos que há de fato ganho em termos de produtividade do programador. Halide é, portanto, apropriado para um grande conjunto de algoritmos usados em imagens e é um passo na direção certa para um modo de desenvolvimento mais fácil para aplicações de alto desempenho na área / Abstract: A development in the field of Domain-Specific Languages (DSL) are programming languages that can target both Multi-Core CPUs and accelerators like GPUs. We use Halide, a Domain-Specific Language that is suited for Image Processing tasks and that claims to be a more simple and efficient (performance-wise) way of expressing imaging algorithms than traditional alternatives. In order to show both potential and limitations of the Halide language, we do several case studies with algorithms we believe are representatives of key categories in today's Image Processing, specially in the area of Image Manipulation and Editing. We compare performance and simplicity of Halide implementations with multi-threaded C++ (for multi-core architectures) and OpenCL (for CPU and GPUs). We show that there are problems in the current implementation of the DSL and that many imaging algorithms cannot be efficiently expressed in the language, which limits its practical application; Nevertheless, in the cases where it is possible, Halide has similar performance to OpenCL and is much more simple to develop for. So we find that Halide is appropriate for a big class of image manipulation algorithms and is a step in the right direction for an easier way to use GPUs in imaging applications / Mestrado / Engenharia de Computação / Mestre em Engenharia Elétrica
|
9 |
ONAGRO : um ambiente grafico para desenvolvimento de software para microcontroladoresSousa, Antonio Heronaldo de 13 December 1995 (has links)
Orientador: Elnathan Chagas Ferreira / Dissertação (mestrado) - Universidade Estadual de Campinas, Faculdade de Engenharia Eletrica / Made available in DSpace on 2018-07-20T19:53:26Z (GMT). No. of bitstreams: 1
Sousa_AntonioHeronaldode_M.pdf: 6755137 bytes, checksum: c0c534a5d717e88561ed87d82d76898f (MD5)
Previous issue date: 1995 / Resumo: o ONAGROéum sistema tradutor que reconhece uma linguagem gráfica de descrição de algoritmos e possibilita a geração de código em Assembly para microcontroladores. Além do tradutor propriamente dito, ele incorpora um editor gráfico para a entrada do programa-fonte, que se assemelha a um algoritmo descrito em linguagem de fluxogramas. Ele também possui um editor de identificadores que permite a descrição dos símbolos identificadores usados no programa. O sistema ONAGRO opera em ambiente Microsoft Windows, oferecendo uma interface amigável com o usuário. Esta interface baseia-se em estruturas gráficas: ícones, janelas, menus e diálogos que o usuário pode ativar através da utilização do mal/se ou, se preferir, do próprio teclado. O sistema foi desenvolvido para trabalhar em computadores compatíveis com o IBM-PC AT e foi implementado em linguagem Visual C++, usando metodologia orientada ao objeto. Diferentemente dos compiladores tradicionais, ele interage com o usuário através de diálogos logo na entrada das instruções, a fim de diminuir erros posteriores de compilação. Além disso, o ONAGRO permite uma maior rapidez na entrada do programa, pois ele é orientado a ícones e não a textos, como nas linguagens convencionais. A programação em ONAGRO é feita com um elevado nível de abstração dos detalhes de hardware. Entretanto, há mecanismos disponíveis para total controle das características fisicas das aplicações. Os testes realizados mostraram que o ambiente proposto é bastante intuitivo e amigável. A documentação dos programas é feita em tempo-real, visto que o próprio programa-fonte se constitui em uma ótima ferramenta de inspeção. Outro aspecto importante, observado nos testes, foi que o código gerado se mostrou relativamente compacto / Abstract: ONAGRO is a translation system that recognizes an algorithm description graphical language and allows the code generation in Assembly for microcontrollers. Besides, it incorporates a graphic editor for the source-program input that is similar to an algorithm described in flowchart language. ONAGRO has also an identifier editor that allows the identifier symboldescription used on the programo ONAGRO is a fully Microsoft Windows compatible software offering a friendly interface with user. This interface is based on graphical structures: icons, windows, menus and dialogues that the user might activate through the mouse or, if he wishes, through the keyboard. ONAGRO was developed to work on IBM-PC AT compatible computers. It was implementedin Visual C++ language by using object oriented methodology. Differently from the traditional compilers, it interacts with the user through the dialogues immediately in the instructions input to reduce later compiler errors. Besides, ONAGRO allows a major quickness in the program input since it is icon oriented and not text oriented like in the conventional languages. The ONAGRO programming is made with high level abstraction of the hardware details. However, there are available mechanisms for full control of physical characteristics applications. The accomplished tests showed that the proposed environment is very intuitive and friendly. The program documentation is made in real-time since the proper source-program is a good inspection too1. Another important aspect observed in the tests was that the generated code proved to be relatively compact / Mestrado / Mestre em Engenharia Elétrica
|
10 |
Recuperação de erros em analisadores sintaticos descendentesSilva, Heloisa Vieira da Rocha Correa 16 July 2018 (has links)
Orientador: Tomasz Kowaltowski / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Matematica, Estatistica e Ciencia da Computação / Made available in DSpace on 2018-07-16T09:36:09Z (GMT). No. of bitstreams: 1
Silva_HeloisaVieiradaRochaCorrea_M.pdf: 3970508 bytes, checksum: b82f5b6dcbc566239038e2563432a626 (MD5)
Previous issue date: 1981 / Resumo: O trabalho aqui apresentado é um estudo de métodos de recuperação de erros no processo de compilação, aplicáveis à analisadores descendentes para linguagens do tipo LL. Inicialmente faz-se uma exposição sobre o processo de compilação e possíveis fontes de erro. Está incluída também uma indicação sucinta dos métodos de recuperação para erros léxicos e dos métodos aplicáveis à analisadores ascendentes. Segue um resumo sobre a implementação de análise descendente e a descrição de vários métodos de recuperação aplicáveis a este tipo de análise. Finalmente, apresentam-se os resultados experimentais da implementação de alguns destes métodos para a linguagem pascal. Chega-se à conclusão de que nenhum desses métodos apresenta comportamento satisfatório em todas as situações, mas alguns parecem ter desempenho geral melhor do que outros. / Abstract: We present in this thesis a survey of compiling error recovery methods applicable to top-down parse for LL languages. First we describe the compilation process and possible sources of errors. We also include a short description of recovery methods for lexical errors, and of methods applicable to bottom-up parsers. Next we describe the implementation of top-bottom parsers, and of several recovery methods applicable to this kind of parsing. Finally we show the experimental results of implementing some of these methods for the Pascal language. Our conclusion is that none of these methods is satisfactory in all circumstances, but some of them seem to perform in general better than others. / Mestrado / Mestre em Ciência da Computação
|
Page generated in 0.0935 seconds