DID YOU KNOW? DTIC has over 3.5 million final reports on DoD funded research, development, test, and evaluation activities available to our registered users. Click
HERE to register or log in.
Accession Number:
ADA326493
Title:
Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML.
Descriptive Note:
Doctoral thesis,
Corporate Author:
CARNEGIE-MELLON UNIV PITTSBURGH PA DEPT OF COMPUTER SCIENCE
Report Date:
1996-12-01
Pagination or Media Count:
284.0
Abstract:
The trends in software development are towards larger programs, more complex programs, and more use of programs as component software. These trends mean that the features of modern programming languages are becoming more important than ever before. Programming languages need to have features such as strong typing, a module system, polymorphism, automatic storage management, and higher order functions. In short, modern programming languages are becoming more important than ever before. Even though modern programming languages are becoming more important than ever before, programmers have traditionally faced a dilemma programs written in these languages traditionally have had lower performance than programs written in more conventional, but error-prone languages. This thesis studies this problem in the context of one particular modern programming language, Standard ML. Standard ML contains all the language features mentioned previously and more. The author uses an empirical approach to understand where Standard ML programs spend their time and how to improve the performance of Standard ML programs though better optimization. The thesis contains two main results. First, it is found that a pay-as-you-go compilation strategy, where programmers pay for advanced language features only when they use them, is a practical strategy for compiling Standard ML. In fact, this strategy produces better code overall than a strategy that makes advanced language features run fast at the expense of slowing down programs that do not use those language features. Second, compilers for Standard ML should focus on generating good code for the frequently-executed parts of programs.
Distribution Statement:
APPROVED FOR PUBLIC RELEASE