SMART C: A Semantic Macro Replacement Translator for C

Loading...
Thumbnail Image
Penn collection
Departmental Papers (CIS)
Degree type
Discipline
Subject
Computer Engineering
Engineering
Funder
Grant number
License
Copyright date
Distributor
Related resources
Contributor
Abstract

Programmers often want to transform the source or binary representations of their programs (e.g., to optimize, add dynamic safety checks, or add profile gathering code). Unfortunately, existing approaches to program transformation are either disruptive to the source (hand transformation), difficult to implement (ad hoc analysis tools), or functionally limited (macros). We propose an extension to the C programming language called the Semantic Macro Replacement Translator (SMART C). SMART C allows for the specification of very general type-aware transformations of all operations, statements, and declarations of the C programming language without exposing the programmer to the complexities of the system’s internal representations. We have implemented a prototype SMART C sourceto- source translator and show its use in transforming programs for buffer overflow detection, format string vulnerability detection, and weighted call graph profiling. We show that SMART C achieves a pragmatic balance between generality and ease of use.

Advisor
Date of presentation
2006-01-01
Conference name
Departmental Papers (CIS)
Conference dates
2023-05-17T05:26:11.000
Conference location
Date Range for Data Collection (Start Date)
Date Range for Data Collection (End Date)
Digital Object Identifier
Series name and number
Volume number
Issue number
Publisher
Publisher DOI
Journal Issue
Comments
Suggested Citation: Jacobs, M. and E.C. Lewis. (2006). SMART C: A Semantic Macro Replacement Translator for C. Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation. New York: IEEE. ©2006 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.
Recommended citation
Collection