TY - JOUR
T1 - A simple approach to supporting untagged objects in dynamically typed languages
AU - Bigot, Peter A.
AU - Debray, Saumya K.
N1 - Funding Information:
In many high-level programming languages, the representation of a data object at a particular program point cannot always be predicted in a precise way at compile-time. In dynamically typed languages, such as Icon, Lisp, Prolog, and Scheme, the type of a variable may not always be statically known (and, indeed, may change Symposium on Logic Programming. This work was supported in part by the National Science Foundation under grant number CCR-9123529. The first author was also supported by an AT&T Foundation Fellowship.
PY - 1997/7
Y1 - 1997/7
N2 - In many modern high-level programming languages, the exact low-level representation of data objects cannot always be predicted at compile-time. Implementations usually get around this problem using descriptors ("tags") and/or indirect ("boxed") representations. However, the flexibility so gained can come at the cost of significant performance overheads. The problem is especially acute in dynamically typed languages, where both tagging and boxing are necessary in general. This paper discusses a straightforward approach to using untagged and unboxed values in dynamically typed languages. An implementation of our algorithms allows a dynamically typed language to attain performance close to that of highly optimized C code on a variety of benchmarks (including many floating-point intensive computations) and dramatically reduces heap usage.
AB - In many modern high-level programming languages, the exact low-level representation of data objects cannot always be predicted at compile-time. Implementations usually get around this problem using descriptors ("tags") and/or indirect ("boxed") representations. However, the flexibility so gained can come at the cost of significant performance overheads. The problem is especially acute in dynamically typed languages, where both tagging and boxing are necessary in general. This paper discusses a straightforward approach to using untagged and unboxed values in dynamically typed languages. An implementation of our algorithms allows a dynamically typed language to attain performance close to that of highly optimized C code on a variety of benchmarks (including many floating-point intensive computations) and dramatically reduces heap usage.
UR - http://www.scopus.com/inward/record.url?scp=0031185544&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0031185544&partnerID=8YFLogxK
U2 - 10.1016/S0743-1066(96)00108-2
DO - 10.1016/S0743-1066(96)00108-2
M3 - Article
AN - SCOPUS:0031185544
VL - 32
SP - 25
EP - 47
JO - The Journal of Logic Programming
JF - The Journal of Logic Programming
SN - 0743-1066
IS - 1
ER -