1 resultado para Run-Time Code Generation, Programming Languages, Object-Oriented Programming
em Bucknell University Digital Commons - Pensilvania - USA
Filtro por publicador
- Repository Napier (1)
- Aberdeen University (1)
- Abertay Research Collections - Abertay University’s repository (2)
- Academic Archive On-line (Stockholm University; Sweden) (1)
- Acceda, el repositorio institucional de la Universidad de Las Palmas de Gran Canaria. España (1)
- AMS Tesi di Dottorato - Alm@DL - Università di Bologna (16)
- AMS Tesi di Laurea - Alm@DL - Università di Bologna (11)
- ArchiMeD - Elektronische Publikationen der Universität Mainz - Alemanha (5)
- Archivo Digital para la Docencia y la Investigación - Repositorio Institucional de la Universidad del País Vasco (1)
- Aston University Research Archive (61)
- Biblioteca de Teses e Dissertações da USP (1)
- Biblioteca Digital da Produção Intelectual da Universidade de São Paulo (3)
- Biblioteca Digital da Produção Intelectual da Universidade de São Paulo (BDPI/USP) (15)
- Bioline International (1)
- BORIS: Bern Open Repository and Information System - Berna - Suiça (60)
- Brock University, Canada (6)
- Bucknell University Digital Commons - Pensilvania - USA (1)
- Bulgarian Digital Mathematics Library at IMI-BAS (24)
- CentAUR: Central Archive University of Reading - UK (23)
- Central European University - Research Support Scheme (1)
- CiencIPCA - Instituto Politécnico do Cávado e do Ave, Portugal (4)
- Cochin University of Science & Technology (CUSAT), India (6)
- Coffee Science - Universidade Federal de Lavras (3)
- Collection Of Biostatistics Research Archive (1)
- Consorci de Serveis Universitaris de Catalunya (CSUC), Spain (50)
- Cor-Ciencia - Acuerdo de Bibliotecas Universitarias de Córdoba (ABUC), Argentina (1)
- CORA - Cork Open Research Archive - University College Cork - Ireland (1)
- CUNY Academic Works (1)
- Dalarna University College Electronic Archive (1)
- Department of Computer Science E-Repository - King's College London, Strand, London (9)
- Digital Commons - Michigan Tech (3)
- Digital Commons at Florida International University (27)
- Digital Peer Publishing (1)
- DigitalCommons - The University of Maine Research (1)
- Doria (National Library of Finland DSpace Services) - National Library of Finland, Finland (48)
- DRUM (Digital Repository at the University of Maryland) (3)
- Greenwich Academic Literature Archive - UK (2)
- Instituto Politécnico de Santarém (1)
- Instituto Politécnico do Porto, Portugal (55)
- Iowa Publications Online (IPO) - State Library, State of Iowa (Iowa), United States (1)
- Lume - Repositório Digital da Universidade Federal do Rio Grande do Sul (2)
- Martin Luther Universitat Halle Wittenberg, Germany (4)
- Massachusetts Institute of Technology (9)
- Memoria Académica - FaHCE, UNLP - Argentina (5)
- Ministerio de Cultura, Spain (2)
- National Center for Biotechnology Information - NCBI (2)
- Nottingham eTheses (2)
- Publishing Network for Geoscientific & Environmental Data (19)
- QSpace: Queen's University - Canada (5)
- QUB Research Portal - Research Directory and Institutional Repository for Queen's University Belfast (2)
- ReCiL - Repositório Científico Lusófona - Grupo Lusófona, Portugal (1)
- Repositorio Académico de la Universidad Nacional de Costa Rica (1)
- Repositório Científico da Universidade de Évora - Portugal (2)
- Repositório Científico do Instituto Politécnico de Lisboa - Portugal (8)
- Repositório Científico do Instituto Politécnico de Santarém - Portugal (1)
- Repositório da Produção Científica e Intelectual da Unicamp (4)
- Repositório da Universidade Federal do Espírito Santo (UFES), Brazil (1)
- Repositório digital da Fundação Getúlio Vargas - FGV (1)
- Repositório Digital da UNIVERSIDADE DA MADEIRA - Portugal (1)
- Repositório Digital da Universidade Municipal de São Caetano do Sul - USCS (2)
- Repositório Institucional da Universidade Federal do Rio Grande do Norte (2)
- Repositorio Institucional de la Universidad de Málaga (2)
- Repositório Institucional UNESP - Universidade Estadual Paulista "Julio de Mesquita Filho" (55)
- Repositorio Institucional Universidad de Medellín (1)
- Repositorio Institucional Universidad EAFIT - Medelin - Colombia (1)
- RUN (Repositório da Universidade Nova de Lisboa) - FCT (Faculdade de Cienecias e Technologia), Universidade Nova de Lisboa (UNL), Portugal (27)
- Savoirs UdeS : plateforme de diffusion de la production intellectuelle de l’Université de Sherbrooke - Canada (3)
- Scielo Saúde Pública - SP (13)
- SerWisS - Server für Wissenschaftliche Schriften der Fachhochschule Hannover (1)
- Sistema UNA-SUS (1)
- Universidad de Alicante (5)
- Universidad Politécnica de Madrid (129)
- Universidade Complutense de Madrid (6)
- Universidade do Minho (11)
- Universidade dos Açores - Portugal (1)
- Universidade Federal do Pará (3)
- Universidade Federal do Rio Grande do Norte (UFRN) (21)
- Universita di Parma (1)
- Universitat de Girona, Spain (7)
- Universitätsbibliothek Kassel, Universität Kassel, Germany (7)
- Université de Lausanne, Switzerland (24)
- Université de Montréal (1)
- Université de Montréal, Canada (26)
- Université Laval Mémoires et thèses électroniques (1)
- University of Michigan (5)
- University of Queensland eSpace - Australia (57)
- University of Southampton, United Kingdom (8)
- University of Washington (1)
- WestminsterResearch - UK (1)
- Worcester Research and Publications - Worcester Research and Publications - UK (3)
Resumo:
This project addresses the unreliability of operating system code, in particular in device drivers. Device driver software is the interface between the operating system and the device's hardware. Device drivers are written in low level code, making them difficult to understand. Almost all device drivers are written in the programming language C which allows for direct manipulation of memory. Due to the complexity of manual movement of data, most mistakes in operating systems occur in device driver code. The programming language Clay can be used to check device driver code at compile-time. Clay does most of its error checking statically to minimize the overhead of run-time checks in order to stay competitive with C's performance time. The Clay compiler can detect a lot more types of errors than the C compiler like buffer overflows, kernel stack overflows, NULL pointer uses, freed memory uses, and aliasing errors. Clay code that successfully compiles is guaranteed to run without failing on errors that Clay can detect. Even though C is unsafe, currently most device drivers are written in it. Not only are device drivers the part of the operating system most likely to fail, they also are the largest part of the operating system. As rewriting every existing device driver in Clay by hand would be impractical, this thesis is part of a project to automate translation of existing drivers from C to Clay. Although C and Clay both allow low level manipulation of data and fill the same niche for developing low level code, they have different syntax, type systems, and paradigms. This paper explores how C can be translated into Clay. It identifies what part of C device drivers cannot be translated into Clay and what information drivers in Clay will require that C cannot provide. It also explains how these translations will occur by explaining how each C structure is represented in the compiler and how these structures are changed to represent a Clay structure.