A Concurrent Smalltalk Compiler for the Message-Driven Processor

Abstract

This thesis describes Optimist, an optimizing compiler for the Concurrent Smalltalk language developed by the Concurrent VLSI Architecture Group. Optimist compiles Concurrent Smalltalk to the assembly language of the Message-Driven Processor (MDP). The compiler includes numerous optimization techniques such as dead code elimination, dataflow analysis, constant folding, move elimination, concurrency analysis, duplicate code merging, tail forwarding, use of register variables, as well as various MDP-specific optimizations in the code generator. The MDP presents some unique challenges and opportunities for compilation. Due to the MDP's small memory size, it is critical that the size of the generated code be as small as possible. The MDP is an inherently concurrent processor with efficient mechanisms for sending and receiving messages; the compiler takes advantage of these mechanisms. The MDP's tagged architecture allows very efficient support of object-oriented languages such as Concurrent Smalltalk. The initial goals for the MDP were to have the MDP execute about twenty instructions per method and contain 4096 words of memory. This compiler shows that these goals are too optimistic-most methods are longer, both in terms of code size and running time. Thus, the memory size of the MDP should be increased. Keywords; Object-oriented programming, Parallel processing, Message passing.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
May 01, 1988
Accession Number
ADA202182

Entities

People

  • Waldemar Horwat

Organizations

  • Massachusetts Institute of Technology

Tags

Communities of Interest

  • C4I
  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Application Software
  • Artificial Intelligence
  • Assembly Languages
  • Coding
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Debugging
  • Errors
  • Language
  • Lisp Programming Language
  • Object Oriented Programming
  • Operating Systems
  • Parallel Computing
  • Parallel Processing
  • Programming Languages

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Linguistics
  • Computer Programming and Software Development.
  • Neurological Diseases/Conditions/Disorders