• DocumentCode
    1051761
  • Title

    SPiCE: a system for translating Smalltalk programs into a C environment

  • Author

    Yasumatsu, Kazuki ; Doi, Norihisa

  • Author_Institution
    Syst. Practices Lab., Fuji Xerox Co. Ltd., Kanagawa, Japan
  • Volume
    21
  • Issue
    11
  • fYear
    1995
  • fDate
    11/1/1995 12:00:00 AM
  • Firstpage
    902
  • Lastpage
    912
  • Abstract
    Smalltalk-80 (hereafter referred to as Smalltalk), which is one of the most productive programming languages/environments, is very well suited for prototyping of applications but it is less well suited for delivering applications because applications can neither run in isolation from the Smalltalk environment nor be combined with other programs written in other languages. One way to make Smalltalk suitable for delivering applications is to translate Smalltalk into a compiler language such as C. By translating Smalltalk code into portable and interoperable C code, it is possible to deliver a stand-alone version of Smalltalk applications, and to develop an application partly in Smalltalk and partly in C. However, there are some difficulties in translating Smalltalk code into such a C code. First, the execution model of Smalltalk, which creates activation records as objects, is very different from that of C, and second, Smalltalk and C have very different approaches to storage management. We have implemented SPiCE, a system for translating Smalltalk into C. Our approach to the translation is to create runtime replacement classes implementing the same functionality of Smalltalk classes that are inherently part of the Smalltalk execution model, and to provide semi-conservative real-time compacting garbage collection that works without language support
  • Keywords
    C language; Smalltalk; program compilers; program interpreters; software portability; storage management; C; SPiCE; Smalltalk; Smalltalk-80; activation records; compiler language; execution model; garbage collection; interoperable code; portable code; programming language translation; prototyping; real-time; runtime replacement classes; storage management; Computer languages; Memory management; Object oriented modeling; Programming profession; Prototypes; Robustness; Runtime; SPICE; Virtual machining; Yarn;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.473219
  • Filename
    473219