Portable run-time type description for conventional compilers

被引:0
|
作者
Kakkad, SV [1 ]
Johnstone, MS
Wilson, PR
机构
[1] Univ Texas, Dept Comp Sci, Austin, TX 78712 USA
[2] Somerset Design Ctr, Austin, TX USA
关键词
D O I
10.1145/301589.286876
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Many useful programming language extensions and system support libraries require knowledge of the locations of fields within objects at run time. Examples include orthogonal persistent object stores, precise garbage collectors, data structure picklers, and parameter marshaling schemes. For clean and efficient implementation as libraries, these systems require run-time knowledge of in-memory layouts of data objects, which is unavailable in most traditionally compiled and linked programming languages, such as C, C++, and,Ada. Even the recently standardized nm-time type identification (RTTI) feature in C++ is insufficient, because it describes only language-level features of the type hierarchy and not the compiler-dependent object layout decisions. We present a facility for run-time type description, or RTTD, which extracts low-level layout information from debugging information generated by conventional compilers, and makes it available to user programs. We believe this to be the simplest and most portable approach to run-time type description, requiring no changes to existing compilers. In this paper, we describe the basic strategies and present details of our implementation for C++. We also sketch some extensions that we have implemented, including special treatment of C++'s virtual function table pointers to match persistent or foreign data objects with the actual code in a particular application. Our implementation of run-time type description is freely available. It is in regular use with multiple operating systems and compilers, in both free and commercial products, including a highperformance persistent object storage system for C++ and a realtime garbage collector.
引用
收藏
页码:146 / 153
页数:8
相关论文
共 50 条
  • [1] RUN-TIME ERROR CHECKING COMES TO COMPILERS
    APIKI, S
    [J]. BYTE, 1995, 20 (10): : 34 - 34
  • [2] Using Apache portable run-time
    Bloom, R
    [J]. DR DOBBS JOURNAL, 2000, 25 (10): : 100 - +
  • [3] PGF: A portable run-time format for type-theoretical grammars
    Angelov K.
    Bringert B.
    Ranta A.
    [J]. Journal of Logic, Language and Information, 2010, 19 (2) : 201 - 228
  • [4] A portable approach to dynamic optimization in run-time specialization
    Masuhara, H
    Yonezawa, A
    [J]. NEW GENERATION COMPUTING, 2002, 20 (01) : 101 - 124
  • [5] A portable approach to dynamic optimization in run-time specialization
    Hidehiko Masuhara
    Akinori Yonezawa
    [J]. New Generation Computing, 2002, 20 : 101 - 124
  • [6] ADDING RUN-TIME CHECKING TO THE PORTABLE-C COMPILER
    STEFFEN, JL
    [J]. SOFTWARE-PRACTICE & EXPERIENCE, 1992, 22 (04): : 305 - 316
  • [7] Run-time type checking for binary programs
    Burrows, M
    Freund, SN
    Wiener, JL
    [J]. COMPILER CONSTRUCTION, PROCEEDINGS, 2003, 2622 : 90 - 105
  • [8] Run-time dynamic data type transformations
    Papadopoulos, Lazaros
    Bartzas, Alexandros
    Soudris, Dimitrios
    [J]. ARCS Workshops, ARCS 2012, 2012,
  • [9] Tulip: A portable run-time system for object-parallel systems
    Beckman, P
    Gannon, D
    [J]. 10TH INTERNATIONAL PARALLEL PROCESSING SYMPOSIUM - PROCEEDINGS OF IPPS '96, 1996, : 532 - 536
  • [10] HLL COMPILERS AND DSP RUN-TIME LIBRARIES MAKE DSP-SYSTEM PROGRAMMING EASY
    SHEAR, D
    [J]. EDN, 1988, 33 (13) : 69 - &