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

Personal Author(s) : Tarditi, David

PDF Url : ADA326493

Report Date : DEC 1996

Pagination or Media Count : 284

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.

Descriptors :   *OPTIMIZATION, *PROGRAMMING LANGUAGES, *COMPILERS, COMPUTER PROGRAMS, SOFTWARE ENGINEERING, MANAGEMENT, THESES, COSTS, RECURSIVE FUNCTIONS, PATTERNS, MEAN, STORAGE, PROGRAMMERS, AUTOMATIC, POLYMORPHISM.

Subject Categories : Computer Programming and Software

Distribution Statement : APPROVED FOR PUBLIC RELEASE