Chris Hathhorn

dblp:47/11064 · DBLP profile ↗
← Back
4ranked-venue papers
1as first author
1since 2021 · last 2021
0000-0002-6277-3987ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 4 · 1 first-author · 1 since 2021Theory of computation · 2 · 1 since 2021
YearPublicationVenuePosition
2021 A Mechanized Semantic Metalanguage for High Level Synthesis
abstract
High-level synthesis (HLS) seeks to make hardware development more like software development by adapting ideas from programming languages to hardware description and HLS from functional languages is usually motivated as a means of bringing software-like productivity to hardware development. Formalized semantics support a range of important capabilities in software languages (e.g., compositionality, comprehensibility, interoperability, formal methods, and security) that are desirable in hardware languages as well. This paper considers the formalized semantics of the Device Calculus, a typed λ-calculus with operators for constructing Mealy machines that forms a semantic substratum suitable for high-level synthesis and we demonstrate the utility of the Device Calculus as a foundation for formal methods in functional HLS with a case study specifying the semantics of an idealized subset of the FIRRTL language. FIRRTL (“Flexible Internal Representation for RTL”) is an open-source hardware intermediate representation targeted by the Chisel hardware construction language and the semantics we present is also a starting point for exploring formal methods and security within both the Chisel toolchain and any other high-level synthesis flows that target FIRRTL.
William L. Harrison, Chris Hathhorn, Gerard Allwein
PPDP2
2016 RV-Match: Practical Semantics-Based Program Analysis
Dwight Guth, Chris Hathhorn, Manasvi Saxena, Grigore Rosu
CAV (1)2
2016 Runtime Verification at Work: A Tutorial
Philip Daian, Dwight Guth, Chris Hathhorn, Edgar Pek, Manasvi Saxena, Traian-Florin Serbanuta, Grigore Rosu
RV3
2015 Defining the undefinedness of C
abstract
We present a ``negative'' semantics of the C11 language---a semantics that does not just give meaning to correct programs, but also rejects undefined programs. We investigate undefined behavior in C and discuss the techniques and special considerations needed for formally specifying it. We have used these techniques to modify and extend a semantics of C into one that captures undefined behavior. The amount of semantic infrastructure and effort required to achieve this was unexpectedly high, in the end nearly doubling the size of the original semantics. From our semantics, we have automatically extracted an undefinedness checker, which we evaluate against other popular analysis tools, using our own test suite in addition to a third-party test suite. Our checker is capable of detecting examples of all 77 categories of core language undefinedness appearing in the C11 standard, more than any other tool we considered. Based on this evaluation, we argue that our work is the most comprehensive and complete semantic treatment of undefined behavior in C, and thus of the C language itself.
Chris Hathhorn, Chucky Ellison, Grigore Rosu
PLDI1