• 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.
31

ML4JIT- um arcabouço para pesquisa com aprendizado de máquina em compiladores JIT. / ML4JIT - a framework for research on machine learning in JIT compilers.

Mignon, Alexandre dos Santos 27 June 2017 (has links)
Determinar o melhor conjunto de otimizações para serem aplicadas a um programa tem sido o foco de pesquisas em otimização de compilação por décadas. Em geral, o conjunto de otimizações é definido manualmente pelos desenvolvedores do compilador e aplicado a todos os programas. Técnicas de aprendizado de máquina supervisionado têm sido usadas para o desenvolvimento de heurísticas de otimização de código. Elas pretendem determinar o melhor conjunto de otimizações com o mínimo de interferência humana. Este trabalho apresenta o ML4JIT, um arcabouço para pesquisa com aprendizado de máquina em compiladores JIT para a linguagem Java. O arcabouço permite que sejam realizadas pesquisas para encontrar uma melhor sintonia das otimizações específica para cada método de um programa. Experimentos foram realizados para a validação do arcabouço com o objetivo de verificar se com seu uso houve uma redução no tempo de compilação dos métodos e também no tempo de execução do programa. / Determining the best set of optimizations to be applied in a program has been the focus of research on compile optimization for decades. In general, the set of optimization is manually defined by compiler developers and apply to all programs. Supervised machine learning techniques have been used for the development of code optimization heuristics. They intend to determine the best set of optimization with minimal human intervention. This work presents the ML4JIT, a framework for research with machine learning in JIT compilers for Java language. The framework allows research to be performed to better tune the optimizations specific to each method of a program. Experiments were performed for the validation of the framework with the objective of verifying if its use had a reduction in the compilation time of the methods and also in the execution time of the program.
32

ML4JIT- um arcabouço para pesquisa com aprendizado de máquina em compiladores JIT. / ML4JIT - a framework for research on machine learning in JIT compilers.

Alexandre dos Santos Mignon 27 June 2017 (has links)
Determinar o melhor conjunto de otimizações para serem aplicadas a um programa tem sido o foco de pesquisas em otimização de compilação por décadas. Em geral, o conjunto de otimizações é definido manualmente pelos desenvolvedores do compilador e aplicado a todos os programas. Técnicas de aprendizado de máquina supervisionado têm sido usadas para o desenvolvimento de heurísticas de otimização de código. Elas pretendem determinar o melhor conjunto de otimizações com o mínimo de interferência humana. Este trabalho apresenta o ML4JIT, um arcabouço para pesquisa com aprendizado de máquina em compiladores JIT para a linguagem Java. O arcabouço permite que sejam realizadas pesquisas para encontrar uma melhor sintonia das otimizações específica para cada método de um programa. Experimentos foram realizados para a validação do arcabouço com o objetivo de verificar se com seu uso houve uma redução no tempo de compilação dos métodos e também no tempo de execução do programa. / Determining the best set of optimizations to be applied in a program has been the focus of research on compile optimization for decades. In general, the set of optimization is manually defined by compiler developers and apply to all programs. Supervised machine learning techniques have been used for the development of code optimization heuristics. They intend to determine the best set of optimization with minimal human intervention. This work presents the ML4JIT, a framework for research with machine learning in JIT compilers for Java language. The framework allows research to be performed to better tune the optimizations specific to each method of a program. Experiments were performed for the validation of the framework with the objective of verifying if its use had a reduction in the compilation time of the methods and also in the execution time of the program.
33

Uma Abordagem para Construção das Etapas de Análise de um Compilador.

MÉLO, Daniel Gondim Ernesto de. 07 February 2018 (has links)
Submitted by Gustavo Nascimento (gustavo.diniz@ufcg.edu.br) on 2018-02-07T11:57:47Z No. of bitstreams: 1 DANIEL GONDIM ERNESTO DE MÉLO - DISSERTAÇÃO PPGCC 2014.pdf: 1076740 bytes, checksum: 6b8c2f71701a3e6c6fa28f87faaeba62 (MD5) / Made available in DSpace on 2018-02-07T11:57:47Z (GMT). No. of bitstreams: 1 DANIEL GONDIM ERNESTO DE MÉLO - DISSERTAÇÃO PPGCC 2014.pdf: 1076740 bytes, checksum: 6b8c2f71701a3e6c6fa28f87faaeba62 (MD5) Previous issue date: 2014-06-20 / Capes / Compiladores são programas que traduzem um código escrito em alguma linguagem, conhecida como linguagem fonte, para um outro programa semanticamente equivalente em outra linguagem, conhecida como linguagem destino. Existem compiladores que traduzem códigos entre linguagens de alto nível. Porém, em geral, a linguagem destino mais utilizada é a linguagem de máquina ou código de máquina. Várias linguagens e ferramentas têm sido propostas dentro desse escopo a exemplo de Xtext, Stratego, CUP, ANTLR, etc. Apesar da grande quantidade, atualmente, os frameworks existentes para a construção de compiladores são de difícil compreensão e não evidenciam ao programador várias estruturas importantes, como tabela de símbolos e árvores de derivação. Adicionalmente, são muitos os detalhes específicos de cada plataforma concebida com esse propósito. Outrossim, em sua maioria, cada framework concentra-se e provê serviços para apenas uma etapa de um compilador, muitas vezes para prover serviços para mais de uma etapa se faz necessário o uso de linguagens de propósito geral, o que eleva o grau de complexidade para o projetista de Compiladores. Nesse sentido, propomos UCL (Unified Compiler Language), uma linguagem de domínio específico para o desenvolvimento das etapas de análise de Compiladores, de forma independente de plataforma e unificada. Com UCL é possível ao projetista do Compilador, especificar questões de design, tais como escolha de algoritmos a serem utilizados, tipo de scanner, entre outras características. A avaliação deste trabalho foi realizada por meio da condução de dois surveys com alunos da disciplina de Compiladores da Universidade Federal de Campina Grande, durante a execução dos projetos, que consiste no desenvolvimento de Compiladores. / Compilers are softwares that translate program codes written in some language, known as source language, to another semantically equivalent program in another programming language, known as target language. There are compilers that translate codes between high level languages. However, in general, the most widely used target language is the machine language or machine code. Several languages and tools have been proposed within this escope, e.g. Xtext, Stratego, CUP, ANTLR, etc. Despite the great quantity, currently, the existing frameworks for building compilers are difficult to understand and does not show the programmer several important structures, such as symbol table and syntax tree. Additionally, there are many specific details of each platform designed for that purpose. Moreover, in most cases, each framework focuses and provides services for only one module of a compiler. Often to provide services for more than one step it is necessary to use general purpose languages, which increases the degree of complexity. In this context, we propose UCL (Unified Compiler Language), a domain specific language for the development of the analysis modules, in a unified and platform independent way. With UCL it is possible for the compiler designer, specify design issues, such as, choice of algorithms to be used, type of scanner, among other features. The evaluation of this work was conducted through the application of two surveys with students of the compilers course from the Federal University of Campina Grande, during project execution, consisting in the development of compilers.
34

Ferramentas de desenvolvimento para microcomputadores dedicados baseados em processadores 80386/80486

Benchimol, 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.
35

Paralelização de programas sisal para sistemas MPI / Parallelization of sisal programs for MPI systems

Raul Junji Nakashima 15 March 1996 (has links)
Este trabalho teve como finalidade a implementação de um método para a paralelização parcial de programas, escritos na linguagem funcional, SISAL utilizando as bibliotecas do padrão MPI (Message Passing Interface). Para tal, propusemos a transformação dos programas SISAL através do particionamento do loop paralelo forall, através do método de particionamento slice e a utilização do modelo de implementação do paralelismo SPMD (Single Program Multiple Data) no estilo de programas mestre/escravo. A validação de nossa proposta foi obtida através da realização de testes onde foram comparados os resultados obtidos com os programas originais e os programas com as alterações propostas / This work describes a method for the partial parallelization of SISAL programs into programs with calls to MPI routines. We focused on the parallelization of the forall loop (through slicing of the index range). The generated code is a master/slave SPMD program. The work was validated through the compilation of some simple SISAL programs and comparison of the results with an unmodified version
36

LALP: uma linguagem para exploração do paralelismo de loops em computação reconfigurável / LALP: a language for parallelism of loops exploitation in reconfigurable computing

Ricardo Menotti 23 June 2010 (has links)
A computação reconfigurável tem se tornado cada vez mais importante em sistemas computacionais embarcados e de alto desempenho. Ela permite níveis de desempenho próximos aos obtidos com circuitos integrados de aplicação específica (ASIC), enquanto ainda mantém flexibilidade de projeto e implementação. No entanto, para programar eficientemente os dispositivos, é necessária experiência em desenvolvimento e domínio de linguagem de descrição de hardware (HDL), tais como VHDL ou Verilog. As técnicas empregadas na compilação em alto nível (por exemplo, a partir de programas em C) ainda possuem muitos pontos em aberto a serem resolvidos antes que se possa obter resultados eficientes. Muitos esforços em se obter um mapeamento direto de algoritmos em hardware se concentram em loops, uma vez que eles representam as regiões computacionalmente mais intensivas de muitos programas. Uma técnica particularmente útil para isto é a de loop pipelining, a qual geralmente é adaptada de técnicas de software pipelining. A aplicação dessas técnicas está fortemente relacionada ao escalonamento das instruções, o que frequentemente impede o uso otimizado dos recursos presentes nos FPGAs modernos. Esta tese descreve uma abordagem alternativa para o mapeamento direto de loops descritos em uma linguagem de alto nível para FPGAs. Diferentemente de outras abordagens, esta técnica não é proveniente das técnicas de software pipelining. Nas arquiteturas obtidas o controle das operações é distribuído, tornando desnecessária uma máquina de estados finitos para controlar a ordem das operações, o que permitiu a obtenção de implementações eficientes. A especificação de um bloco de hardware é feita por meio de uma linguagem de domínio específico (LALP), especialmente concebida para suportar a aplicação das técnicas. Embora a sintaxe da linguagem lembre C, ela contém certas construções que permitem intervenções do programador para garantir ou relaxar dependências de dados, conforme necessário, e assim otimizar o desempenho do hardware gerado / Reconfigurable computing is becoming increasingly important in embedded and high-performance computing systems. It allows performance levels close to the ones obtained with Application-Specific Integrated circuits (ASIC), while still keeping design and implementation flexibility. However, to efficiently program devices, one needs the expertise of hardware developers in order master hardware description languages (HDL) such as VHDL or Verilog. Attempts to furnish a high-level compilation flow (e.g., from C programs) still have to address open issues before broader efficient results can be obtained. Many efforts trying to achieve a direct of algorithms into hardware concentrate on loops since they represent the most computationally intensive regions of many application codes. A particularly useful technique for this purpose is loop pipelining, which is usually adapted from software pipelining techniques. The application of this technique is strongly related to instruction scheduling, whic often prevents an optimized use of the resources present in modern FPGAs. This thesis decribes an alternative approach to direct mapping loops described in high-level labguages onto FPGAs. Different from oyher approaches, this technique does not inherit from software pipelining techniques. The control is distributed over operations, thus a finite state machine is not necessary to control the order of operations, allowing efficient harware implementations. The specification of a hardware block is done by means of LALP, a domain specific language specially designed to help the application of the techniques. While the language syntax resembles C, it contains certain constructs that allow programmer interventions to enforce or relax data dependences as needed, and so optimize the performance of the generated hardware
37

Compilando Haskell para .NET via F#

Kely de Melo Oliveira, Guilherme 31 January 2010 (has links)
Made available in DSpace on 2014-06-12T15:57:39Z (GMT). No. of bitstreams: 2 arquivo3216_1.pdf: 6659432 bytes, checksum: 29ec979f8895b39460684d09a38f9764 (MD5) license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5) Previous issue date: 2010 / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior / Diferentes linguagens de programação disponibilizam diferentes formas de se implementar uma funcionalidade. Por exemplo, acessar um banco de dados usando C++ ou Python podem ser duas tarefas completamente diferentes. Por outro lado, com o surgimento da Plataforma .NET o acesso a dados com C++ .NET ou IronPython, por exemplo, se tornaram atividades muito parecidas tendo apenas algumas diferenças sintáticas. A Plataforma .NET é distribuída com um conjunto padrão de compiladores para diferentes linguagens como C#, Visual Basic .NET, JScript e J#, todas são orientadas a objetos. Com isso podemos notar uma maior atenção comercial dada ao paradigma de orientação a objetos. No entanto, esse dado não significa que devamos concluir que outros paradigmas não possam ser suportados, pelo contrário e a criação da linguagem F# é um exemplo de que a Plataforma .NET pode dar suporte a diversos paradigmas. Haskell é uma linguagem puramente funcional, não-estrita e fortemente tipada. E por ser uma linguagem de alto poder de expressão e não permitir efeitos colaterais durante sua execução, um programa escrito em Haskell se torna mais fácil de testar, otimizar e paralelizar. No entanto há um grande vazio quando tocamos na questão de ferramentas e APIs para Haskell. Devido ao fato de desenvolvedores usarem uma grande gama de ferramentas e tecnologias, cada qual com diferentes funcionalidades e tipos, tem sido historicamente difícil garantir a interoperabilidade entre as linguagens. No entanto, os compiladores e ferramentas que tem como alvo máquinas virtuais como a Plataforma .NET tiram proveito do suporte a interoperabilidade entre linguagens inerente a esses tipos de sistemas. O presente trabalho propõe um novo esquema de compilação de Haskell para a Plataforma .NET utilizando F# como linguagem intermediária. Tal abordagem nos livra dos inúmeros problemas que a geração de código diretamente para MSIL pode trazer, possibilitando irmos um pouco mais além na questão da interoperabilidade
38

Integrando Haskell à Plataforma .NET

Louise de Barros Monteiro, Monique January 2006 (has links)
Made available in DSpace on 2014-06-12T15:59:41Z (GMT). No. of bitstreams: 2 arquivo5500_1.pdf: 3962680 bytes, checksum: 4dba3d9b94bbd26eb1eec27b1083b622 (MD5) license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5) Previous issue date: 2006 / Tradicionalmente, linguagens funcionais fornecem um grau de abstração superior ao encontrado em outros paradigmas (imperativo, orientado a objetos), o que se manifesta por meio de construções de alto nível como funções de alta ordem, aplicações parciais, polimorfismo paramétrico e, em algumas linguagens, avaliação sob demanda. Entretanto, a utilização do paradigma funcional tem-se restringido basicamente a aplicações acadêmicas. Essa restrição é em parte explicada pela ausência de ambientes de desenvolvimento e APIs que melhorem a produtividade do desenvolvedor na construção de aplicações que fazem uso das tecnologias mais recentes de desenvolvimento Web, computação distribuída, arquitetura orientada a serviços, entre outras. Por outro lado, plataformas como a Java Virtual Machine e, mais recentemente, a Plataforma .NET, disponibilizam uma amplagama de serviços e bibliotecas que satisfazem aos tipos de aplicações supracitados. O ambiente .NET, em particular, destaca-se por suportar múltiplas linguagens, apesar do suporte ser mais amplo a linguagens orientadas a objeto. Dentro desse contexto, surge a oportunidade de portar linguagens funcionais para essa plataforma, permitindo não apenas o acesso aos serviços por ela fornecidos como também uma interoperabilidade natural com outras linguagens. O objetivo deste trabalho é o desenvolvimento de uma implementação da linguagem funcional Hask ell para a Plataforma .NET. Tal implementaçãonão é trivial devido ao g a p semântico que existe entre uma linguagem funcional com avaliação sob demanda e um ambiente como o .NET. F oi desenvolvido um gerador de código capaz de gerar, a partir de um programa Hask ell, código em IL - linguagem assembly suportada pela máquina virtual. Paralelamente, foram conduzidas medições de desempenho do código gerado. Tais medições demonstraram performance razoável para váriosprogramas. Entretanto, a principal contribuição deste trabalho está na disponibilizaçãode uma implementação Hask ell que serve como principal passo rumo µa interoperabilidade com a Plataforma .NET. Além disso, a solução desenvolvida serve como um ambiente de teste e validação de diferentes alternativas de tradução de uma linguagem funcional para as construções encontradas em uma plataforma como .NET
39

Compressão de byte-code utilizando recuperação de sintaxe abstrata

Costa, Bruno Kraychete da 11 August 2018 (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-08-11T23:31:29Z (GMT). No. of bitstreams: 1 Costa_BrunoKraycheteda_M.pdf: 9665605 bytes, checksum: 16223ea98c66ee77839bcdaae9286d78 (MD5) Previous issue date: 2000 / Resumo: Com os avanços da tecnologia nas áreas de comunicação sem fio e computação pessoal, os chamados computadores portáteis. ou handhelds estão se tornando alvo de muita atenção em Computação. Por outro lado, linguagens cujo alvo são máquinas virtuais (ex. Java), têm permitido a construção de sistemas portáteis distribuídos que são independentes do processador. Os handhelds são normalmente projetados em torno de um processador dedicado e uma pequena quantidade de memória, de modo a manter baixo o custo do projeto. As limitações de memória encontradas em tais dispositivos, e o aumento da demanda por banda disponível. nas redes têm renovado o interesse em pesquisas voltadas para a compressão de código móvel. Neste trabalho, nós mostramos um método de compressão para estes dispositivos baseado na recuperação das Árvores de Sintaxe Abstrata (ASA) do programa. Resultados experimentais, utilizando o Benchmark JVM98, revelaram uma melhoria nas razões de compressão em relação àquelas obtidas usando exclusivamente o algoritmo Lempel-Ziv- Welch. / Abstract: With the advances in technologies for wireless communications and personal computing, the so called portable appliances or handhelds are expected to become mainstream computer devices. Gn the software side, languages targeted to virtual machines (eg. lava) have enabled the design of flexible mobile distributed systems that are independent of the underlying processor. In order to keep costs low, handhelds are usually designed around a cheap dedicated processor and a small memory set. The memory size constraints found on such devices, and the increasing demand for bandwidth have been renewing the research interest towards new program compression techniques. In this work, we show a compression method for these devices, that is based on the recovery of the program Abstract Syntax Trees. Experimental results, using the JVM98 Benchmark, reveal an improvement on the compression ratio over the LZW algorithm when the ASTs are recovered before com pression. / Mestrado / Mestre em Ciência da Computação
40

Modi - um ambiente de desenvolvimento para aplicações voltadas a sistemas dedicados

Silva, 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

Page generated in 0.0634 seconds