Type inference for C : applications to the static analysis of incomplete programs.

Registro completo de metadados
MetadadosDescriçãoIdioma
Autor(es): dc.creatorMelo, Leandro T. C.-
Autor(es): dc.creatorRibeiro, Rodrigo Geraldo-
Autor(es): dc.creatorGuimarães, Breno Campos Ferreira-
Autor(es): dc.creatorPereira, Fernando Magno Quintao-
Data de aceite: dc.date.accessioned2025-08-21T15:39:02Z-
Data de disponibilização: dc.date.available2025-08-21T15:39:02Z-
Data de envio: dc.date.issued2022-02-14-
Data de envio: dc.date.issued2022-02-14-
Data de envio: dc.date.issued2019-
Fonte completa do material: dc.identifierhttp://www.repositorio.ufop.br/jspui/handle/123456789/14492-
Fonte completa do material: dc.identifierhttps://dl.acm.org/doi/10.1145/3421472-
Fonte completa do material: dc.identifierhttps://doi.org/10.1145/3421472-
Fonte: dc.identifier.urihttp://educapes.capes.gov.br/handle/capes/1020631-
Descrição: dc.descriptionType inference is a feature that is common to a variety of programming languages. While, in the past, it has been prominently present in functional ones (e.g., ML and Haskell), today, many object-oriented/ multi-paradigm languages such as C# and C++ offer, to a certain extent, such a feature. Nevertheless, type inference still is an unexplored subject in the realm of C. In particular, it remains open whether it is possible to devise a technique that encompasses the idiosyncrasies of this language. The first difficulty encountered when tackling this problem is that parsing C requires, not only syntactic, but also semantic information. Yet, greater challenges emerge due to C’s intricate type system. In this work, we present a unification-based framework that lets us infer the missing struct, union, enum, and typedef declarations in a program. As an application of our technique, we investigate the reconstruction of partial programs. Incomplete source code naturally appears in software development: during design and while evolving, testing, and analyzing programs; therefore, understanding it is a valuable asset. With a reconstructed well-typed program, one can: (i) enable static analysis tools in scenarios where components are absent; (ii) improve precision of “zero setup” static analysis tools; (iii) apply stub generators, symbolic executors, and testing tools on code snippets; and (iv) provide engineers with an assortment of compilable benchmarks for performance and correctness validation. We evaluate our technique on code from a variety of C libraries, including GNU’s Coreutils and on snippets from popular projects such as CPython, FreeBSD, and Git.-
Formato: dc.formatapplication/pdf-
Idioma: dc.languageen-
Direitos: dc.rightsrestrito-
Palavras-chave: dc.subjectParsing-
Palavras-chave: dc.subjectConstraints-
Palavras-chave: dc.subjectSyntax-
Palavras-chave: dc.subjectPartial programs-
Título: dc.titleType inference for C : applications to the static analysis of incomplete programs.-
Aparece nas coleções:Repositório Institucional - UFOP

Não existem arquivos associados a este item.