326 research outputs found

    The Logical Essence of Compiling with Continuations

    Get PDF

    An Analytical Approach to Programs as Data Objects

    Get PDF
    This essay accompanies a selection of 32 articles (referred to in bold face in the text and marginally marked in the bibliographic references) submitted to Aarhus University towards a Doctor Scientiarum degree in Computer Science.The author's previous academic degree, beyond a doctoral degree in June 1986, is an "Habilitation à diriger les recherches" from the Université Pierre et Marie Curie (Paris VI) in France; the corresponding material was submitted in September 1992 and the degree was obtained in January 1993.The present 32 articles have all been written since 1993 and while at DAIMI.Except for one other PhD student, all co-authors are or have been the author's students here in Aarhus

    Shared-Environment Call-by-Need

    Get PDF
    Call-by-need semantics formalize the wisdom that work should be done at most once. It frees programmers to focus more on the correctness of their code, and less on the operational details. Because of this property, programmers of lazy functional languages rely heavily on their compiler to both preserve correctness and generate high-performance code for high level abstractions. In this dissertation I present a novel technique for compiling call-by-need semantics by using shared environments to share results of computation. I show how the approach enables a compiler that generates high-performance code, while staying simple enough to lend itself to formal reasoning. The dissertation is divided into three main contributions. First, I present an abstract machine, the \ce machine, which formalizes the approach. Second, I show that it can be implemented as a native code compiler with encouraging performance results. Finally, I present a verified compiler, implemented in the Coq proof assistant, demonstrating how the simplicity of the approach enables formal verification

    Mobile Resource Guarantees for Smart Devices

    Get PDF
    Abstract. We present the Mobile Resource Guarantees framework: a system for ensuring that downloaded programs are free from run-time violations of resource bounds. Certificates are attached to code in the form of efficiently checkable proofs of resource bounds; in contrast to cryptographic certificates of code origin, these are independent of trust networks. A novel programming language with resource constraints encoded in function types is used to streamline the generation of proofs of resource usage.

    Annual Report 1981-1982 & 1982-1983

    Get PDF
    An administrative report of statistics and information pertaining to the University of North Florida Thomas G. Carpenter Library for the years 1981-1983. The report includes summaries and charts on library budgets, library collection, serials and cataloging workloads, circulation, interlibrary loan, and public services

    Annual Report 1989-1990

    Get PDF
    An administrative report of statistics and information pertaining to the University of North Florida Thomas G. Carpenter Library for the years 1989-1990. The report includes summaries and charts on library budgets, library collection, serials and cataloging workloads, circulation, interlibrary loan, and public services

    Praktikast teooriani – Ajutiste sekkumiste kaudu avaliku ruumi elavdamine

    Get PDF
    This thesis addresses the topic of temporary interventions in the context of Tartu, Estonia. The research is based on active research method, looking back retrospectively on the temporary interventions that the author of this thesis has personally been involved with. The aim of the research was to analyse these projects thoroughly to find out how they fit in the context of global trends of reclaiming public space and to find out if and what changed through the interventions in the target group of these projects and in the organisers of these events. The results of the research show that these temporary interventions are a part of the global movement towards a more participatory process of placemaking. Material outcomes created in the interventions should not be the main goals of the projects. The emphasis has to be on the social side of the project and on the continuous use - that would make these projects more effective. Finally, the most important outcome of the research - these interventions give tools for the organisers to become active people making active places.Selles magistritöös uuritakse ajutisi installatioone Tartu, Eesti kontekstis. Uurimustöö meetod põhineb tegevusuuringule, uurides tagasivaatavalt töö autori osalusel läbi viidud linnaruumi elavdada püüdvaid ajutisi sekkumisi linnaruumis. Tegevusuuring kujutab endast meetodit, mis uurib sotsiaalseid olukordi, ning mida viiakse läbi eesmärgiga parandada tegevuste kvaliteeti. Teadmised, mida saadakse, on pigem inimkäitumise ning sotsiaalkultuuriliste situatsioonide vahelised kui üldistatavad tõed. Uurimustöö eesmärgiks on antud sekkumisi analüüsida ning saada teada, mis nende läbi muutus – projektide osalejais ning sihtgrupis. Seda tehakse, toetudes teoreetilisele taustale, mis selgitab globaalseid trende linnaruumi inimesekesksemaks muutmisest ning üha populaarsemaks muutuvatest linnaruumisekkumistest eesmärgiga anda võim ruumi kvaliteedi rikastamiseks inimeste kätte. Põhilised uurimisülesanded antud töös olid: Uurimustöösse kaasatud ajutiste sekkumiste läbiviimisprotsessi uurimine Sekkumiste õnnestunud ning ebaõnnestunud osade väljaselgitamine Uurida, kuidas mõjusid sekkumised organiseerijatele Uurida, kuidas mõjusid sekkumised avalikkusele Uurimusülesandele vastuste leidmiseks tehti järgmisi tegevusi: Uuritavate projektide kohta tagasivaatavalt info kogumine; Uurimuseks sobivate projektide väljavalimine paikapandud kriteeriumite järgi; Kogutud informatsiooni analüüs: uurimuseks valitud projektide kohta kokkuvõtete koostamine; projektide edasiseks analüüsiks mõeldud tabelite koostamine; koostatud tabelite põhjal olevast informatsioonist järelduste tegemine kategooriate kaupa (kategooriad olid näiteks kohavalik, sekkumise programm, meediakajastus jms) Uurimustöö tulemused näitavad, et antud ajutised sekkumised on osa globaalsest liikumisest kaasavama paigaloomise protsessi suunas. Sekkumiste materiaalne väljund ei tohiks olla sekkumiste peamiseks eesmärgiks. Pigem peab keskenduma projekti sotsiaalsele küljele ning tulemuste kestlikkusele – see muudaks sekkumised efektiivsemaks. Olulisim järeldus uurimusest - selliste sekkumiste organiseerimine annab tegijatele tööriistad, et neist võiksid saada aktiivsed inimesed kes loovad elavaid kohti

    Make UNCOL cool again

    Get PDF
    TCC(graduação) - Universidade Federal de Santa Catarina. Centro Tecnológico. Ciências da Computação.Criar e manter um compilador otimizador requer grandes esforços de desenvolvimento. Ao mesmo tempo, o número de compiladores necessários para traduzir cada linguagem de alto nível para várias arquiteturas de hardware cresce de forma multiplicativa. Uma possível abordagem para resolver esse problema envolve adotar uma representação intermediária comum, também conhecida como Universal Computer Oriented Language (UNCOL). Embora tal solução tenha sido proposta pela primeira vez em 1958, a tecnologia de compiladores e a teoria de linguagens de programação muito evoluíram desde então. No contexto destes avanços, o presente trabalho tem como objetivo reavaliar a ideia de uma representação intermediária universal; começando por um estudo da literatura e do estado da arte de linguagens de programação, de forma a elicitar requisitos e identificar princípios de criação para uma UNCOL moderna. Esses requisitos são a base de uma análise de algumas das representações intermediárias utilizadas em compiladores existentes. Além disso, os princípios extraídos da revisão sistemática motivaram a criação de uma nova representação intermediária, que combina técnicas de compilação originárias de diversas fontes na literatura. A nova representação intermediária é descrita em múltiplos aspectos, incluindo uma definição formal da sua estrutura em multigrafo e uma correspondência informal de sua semântica em termos de um modelo computacional já existente. Por fim, este trabalho descreve alguns algoritmos de análise e transformação de código customizados para a nova representação. Entre estes consta uma formulação de eliminação de código morto (uma otimização global) através de um algoritmo de coleção de lixo.Developing and maintaining an optimizing compiler requires great amounts of effort. At the same time, the number of compilers needed in order to translate many high-level languages to every other target architecture grows multiplicatively. One possible approach to solve this problem is the adoption of a shared intermediate representation, also known as Universal Computer Oriented Language (UNCOL). While the UNCOL solution was first proposed in 1958, there have been many developments in compiler technology and programming language theory since then. This work aims to re-evaluate the idea of a universal intermediate representation in light of these advances, beginning by surveying the programming language literature and state of the art in order to identify requirements and design principles for a modern version of UNCOL. Then, these requirements are used to analyze program representations in existing compiler infrastructures. Furthermore, the set of principles extracted from the systematic review has motivated the design of a new intermediate representation, which combines compilation techniques from various sources in the literature. Multiple aspects of the new intermediate representation are described, encompassing a formal definition of its multigraph structure, an informal explanation of its semantics in terms of the join calculus, and a few custom optimization algorithms, including a formulation of global Dead Code Elimination as a garbage collection process
    corecore