Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML.

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.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 01, 1996
Accession Number
ADA326493

Entities

People

  • David Tarditi

Organizations

  • Carnegie Mellon University

Tags

DTIC Thesaurus Topics

  • Algorithms
  • Assembly Languages
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Debugging
  • Hash Tables
  • High Level Languages
  • Language
  • Linguistics
  • Lisp Programming Language
  • Machine Languages
  • Programming Languages
  • Recursive Functions
  • Simulations
  • Simulators
  • Two Dimensional

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Linguistics
  • Strategic Security Studies