9708957 This project will focus on constructing a "smart" programming environment for Java that uses semantic analyses to statically debug, validate, and safely optimize programs. The principal investigators have already developed an early version of such an environment for a dialect of Scheme. A safe implementation prevents the misuse of primitive program operations, such as taking the head of the empty list, through a combination of compile-time analysis, run-time checking, and automatic storage management. Safety, however, is not a panacea: all safe languages defer checking some preconditions until run-time. When a run-time check fails, program execution is aborted. Hence, programmers try to ensure that misapplications are impossible by analyzing what forms of data can appear as input to each primitive operation. Unfortunately, programmers are not very good at this task and frequently make mistakes. The primary goal of the proposed smart programming environment is to prove the run-time checks required for safety never fail. This property, called "total safety," is a much stronger property than ordinary safety. For any interesting programming language, total safety is undecidable; nevertheless, semantic analyses like set-based analysis can prove many of the preconditions checked at run time never fail. Moreover, for any unproven precondition, an environment can construct program "slices" identifying the execution paths violating the precondition. Given this information, the programmer can decide if the failing paths are feasible and, if so, repair the code. ***

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Application #
9708957
Program Officer
Sol J. Greenspan
Project Start
Project End
Budget Start
1997-07-01
Budget End
2003-06-30
Support Year
Fiscal Year
1997
Total Cost
$194,080
Indirect Cost
Name
Rice University
Department
Type
DUNS #
City
Houston
State
TX
Country
United States
Zip Code
77005