Award Abstract # 1218993
SHF: CSR: Small: Collaborative Research: Automated Model Synthesis of Library and System Functions for Program-Environment Co-Analysis

NSF Org: CCF
Division of Computing and Communication Foundations
Recipient: PURDUE UNIVERSITY
Initial Amendment Date: August 25, 2012
Latest Amendment Date: August 25, 2012
Award Number: 1218993
Award Instrument: Standard Grant
Program Manager: Sol Greenspan
sgreensp@nsf.gov
 (703)292-7841
CCF
 Division of Computing and Communication Foundations
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: September 1, 2012
End Date: August 31, 2013 (Estimated)
Total Intended Award Amount: $44,845.00
Total Awarded Amount to Date: $44,845.00
Funds Obligated to Date: FY 2012 = $44,845.00
History of Investigator:
  • Xiangyu Zhang (Principal Investigator)
Recipient Sponsored Research Office: Purdue University
2550 NORTHWESTERN AVE # 1100
WEST LAFAYETTE
IN  US  47906-1332
(765)494-1055
Sponsor Congressional District: 04
Primary Place of Performance: Purdue University
305 N. Unversity Street
West Lafayette
IN  US  47906-2107
Primary Place of Performance
Congressional District:
04
Unique Entity Identifier (UEI): YRXVL4JYCEF5
Parent UEI: YRXVL4JYCEF5
NSF Program(s): Software & Hardware Foundation
Primary Program Source: 01001213DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 7923, 7944
Program Element Code(s): 779800
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Program analysis provides solid foundations for a broad range of applications, such as detecting security vulnerabilities, localizing program faults, proving program correctness, and optimizing performance. A pervasive and critical challenge in program analysis is to handle library functions and system calls, which provide an essential execution environment for a program and would be ideal to be co-analyzed with the program itself. Despite its importance, achieving program-environment co-analysis in practice is challenging. First, the difficulty to acquire the source code of some environmental functions precludes source code based analysis. Moreover, even if source code is available, the code base is often prohibitively large and complex, making analysis difficult. Existing solutions are to provide program analysis with either manually-constructed models, which do not scale, or imprecise models, which are overly conservative.

In this project, the goal is to apply program synthesis technique to construct models for environmental functions from their binary implementation and a set of initial inputs. The models are essentially programs that provide the same functionality of the functions being modeled, yet substantially simplified. Such programs can be included as part of the application, enabling program-environment co-analysis. The proposed technique will lead to an automated solution that will offload the onus of manually crafting models from program analysis developers' shoulders. Moreover, it will demonstrate the feasibility of precise program-environment co-analysis through applications.

PROJECT OUTCOMES REPORT

Disclaimer

This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.

Program analysis provides solid foundation for a broad range of applications, such as detecting security vulnerabilities, localizing program faults, proving program correctness, and optimizing performance. A pervasive and critical challenge in program analysis is to handle library functions and system calls, which provide essential execution environment for a program and would be ideal to be co-analyzed with the program itself.



In this project, the PIs and their research groups applied program synthesis techniques to construct models for environmental functions, including library functions and system call functions. After one year of development, the PIs have built a prototype that can automatically synthesize models for a number of most important system and library calls, such as file and socket reads and writes. The prototype assumes the availability of a set of inputs and the corresponding outputs for the subject functions, but not the source code of the functions. With the synthesized models, the PIs further demonstrated the benefits of program-environment co-analysis in two application domains, including test generation and fault tolerance. While the prototype shows the potential of the technique, it also discloses a set of challenges that need to be tackled in the continuation of the project in order to model more complex environmental functions. 


Last Modified: 11/23/2013
Modified by: Xiangyu Zhang

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page