Matches in SemOpenAlex for { <https://semopenalex.org/work/W3012611775> ?p ?o ?g. }
- W3012611775 endingPage "71" @default.
- W3012611775 startingPage "1" @default.
- W3012611775 abstract "Type 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." @default.
- W3012611775 created "2020-03-27" @default.
- W3012611775 creator A5033228498 @default.
- W3012611775 creator A5061049872 @default.
- W3012611775 creator A5078149140 @default.
- W3012611775 creator A5090563357 @default.
- W3012611775 date "2020-09-30" @default.
- W3012611775 modified "2023-09-26" @default.
- W3012611775 title "Type Inference for C" @default.
- W3012611775 cites W1533493347 @default.
- W3012611775 cites W1537343097 @default.
- W3012611775 cites W165943180 @default.
- W3012611775 cites W1710734607 @default.
- W3012611775 cites W1744150050 @default.
- W3012611775 cites W1970219979 @default.
- W3012611775 cites W1989642656 @default.
- W3012611775 cites W1993794314 @default.
- W3012611775 cites W2027657506 @default.
- W3012611775 cites W2030611910 @default.
- W3012611775 cites W2033531910 @default.
- W3012611775 cites W2036676170 @default.
- W3012611775 cites W2051328776 @default.
- W3012611775 cites W2055818134 @default.
- W3012611775 cites W2061285335 @default.
- W3012611775 cites W2068457689 @default.
- W3012611775 cites W2076290291 @default.
- W3012611775 cites W2088105804 @default.
- W3012611775 cites W2100738443 @default.
- W3012611775 cites W2113722134 @default.
- W3012611775 cites W2115875619 @default.
- W3012611775 cites W2126421682 @default.
- W3012611775 cites W2131135493 @default.
- W3012611775 cites W2133128124 @default.
- W3012611775 cites W2150998213 @default.
- W3012611775 cites W2163976959 @default.
- W3012611775 cites W2166822586 @default.
- W3012611775 cites W2250787296 @default.
- W3012611775 cites W2296467253 @default.
- W3012611775 cites W2441512324 @default.
- W3012611775 cites W2565684518 @default.
- W3012611775 cites W2756283368 @default.
- W3012611775 cites W2761620348 @default.
- W3012611775 cites W2780762329 @default.
- W3012611775 cites W2794527728 @default.
- W3012611775 cites W2886069053 @default.
- W3012611775 cites W2890012470 @default.
- W3012611775 cites W2912195838 @default.
- W3012611775 cites W2950327322 @default.
- W3012611775 cites W2999267914 @default.
- W3012611775 cites W2999399510 @default.
- W3012611775 cites W3005061521 @default.
- W3012611775 cites W3005302725 @default.
- W3012611775 cites W3008834557 @default.
- W3012611775 cites W3009635326 @default.
- W3012611775 cites W3010001255 @default.
- W3012611775 cites W3014903559 @default.
- W3012611775 cites W3016422245 @default.
- W3012611775 cites W3016667857 @default.
- W3012611775 cites W3019929673 @default.
- W3012611775 cites W3027723509 @default.
- W3012611775 cites W3035588407 @default.
- W3012611775 cites W3093453896 @default.
- W3012611775 cites W3106373601 @default.
- W3012611775 cites W3163132554 @default.
- W3012611775 cites W4229517606 @default.
- W3012611775 cites W4229981596 @default.
- W3012611775 cites W4231140081 @default.
- W3012611775 cites W4235122555 @default.
- W3012611775 cites W4237159548 @default.
- W3012611775 cites W4237492309 @default.
- W3012611775 cites W4238083723 @default.
- W3012611775 cites W4240837084 @default.
- W3012611775 cites W4241690861 @default.
- W3012611775 cites W4243885711 @default.
- W3012611775 cites W4251772834 @default.
- W3012611775 cites W4255006224 @default.
- W3012611775 doi "https://doi.org/10.1145/3421472" @default.
- W3012611775 hasPublicationYear "2020" @default.
- W3012611775 type Work @default.
- W3012611775 sameAs 3012611775 @default.
- W3012611775 citedByCount "2" @default.
- W3012611775 countsByYear W30126117752022 @default.
- W3012611775 crossrefType "journal-article" @default.
- W3012611775 hasAuthorship W3012611775A5033228498 @default.
- W3012611775 hasAuthorship W3012611775A5061049872 @default.
- W3012611775 hasAuthorship W3012611775A5078149140 @default.
- W3012611775 hasAuthorship W3012611775A5090563357 @default.
- W3012611775 hasBestOaLocation W30126117751 @default.
- W3012611775 hasConcept C121329065 @default.
- W3012611775 hasConcept C136197465 @default.
- W3012611775 hasConcept C154945302 @default.
- W3012611775 hasConcept C186644900 @default.
- W3012611775 hasConcept C198370458 @default.
- W3012611775 hasConcept C199360897 @default.
- W3012611775 hasConcept C2776214188 @default.
- W3012611775 hasConcept C2780624054 @default.
- W3012611775 hasConcept C41008148 @default.
- W3012611775 hasConcept C42383842 @default.