John Reppy's Publications

Moby


Application-specific foreign-interface generation.
John Reppy and Chunyan Song. In Proceedings of the Fifth International Conference on Generative Programming and Component Engineering, pages 49--58, October 2006.
bib | .pdf ]

A foreign interface (FI) mechanism to support interoperability with libraries written in other languages (especially C) is an important feature in most high-level language implementations. Such FI mechanisms provide a Foreign Function Interface (FFI) for the high-level language to call C functions and marshaling and unmarshaling mechanisms to support conversion between the high-level and C data representations. Often, systems provide tools to automate the generation of FIs, but these tools typically lock the user into a specific model of interoperability. It is our belief that the policy used to craft the mapping between the high-level language and C should be distinct from the underlying mechanism used to implement the mapping.

In this paper, we describe a FI generation tool, called FIG (for Foreign Interface Generator) that embodies a new approach to the problem of generating foreign interfaces for high-level languages. FIG takes as input raw C header files plus a declarative script that specifies the generation of the foreign interface from the header file. The script sets the policy for the translation, which allows the user to tailor the resulting FI to his or her application. We call this approach application-specific foreign-interface generation. The scripting language uses rewriting strategies as its execution model. The other major feature of the scripting language is a novel notion of composable typemaps that describe the mapping between high-level and low-level types.

Object-oriented aspects of Moby.
Kathleen Fisher and John Reppy. Technical Report TR-2003-10, Department of Computer Science, University of Chicago, Chicago, IL, September 2003.
bib ]

Optimizing Nested Loops Using Local CPS Conversion.
John Reppy. Higher-order and Symbolic Computation, 15(2/3):161--180, September 2002.
bib | .pdf ]

Inheritance-based subtyping.
Kathleen Fisher and John Reppy. Information and Computation, 177(1):28--55, August 2002.
bib | .pdf ]

Classes play a dual role in mainstream statically-typed object-oriented languages, serving as both object generators and object types. In such languages, inheritance implies subtyping. In contrast, the theoretical language community has viewed this linkage as a mistake and has focused on subtyping relationships determined by the structure of object types, without regard to their underlying implementations. In this paper, we explore why inheritance-based subtyping relations are useful, and we describe two different approaches to extending the Moby programming language with inheritance-based subtyping relations. In addition, we present a typed object calculus that supports both structural and inheritance-based subtyping, and which provides a formal accounting of our extensions to Moby.

Compiler support for lightweight concurrency.
Kathleen Fisher and John Reppy. Technical memorandum, Bell Labs, March 2002.
bib | .pdf ]

A framework for interoperability.
Kathleen Fisher, Riccardo Pucella, and John Reppy. In Nick Benton and Andrew Kennedy, editors, Proceedings of the First International Workshop on Multi-Language Infrastructure and Interoperability (BABEL'01), Volume 59 of Electronic Notes in Theoretical Computer Science, New York, NY, September 2001. Elsevier Science Publishers.
bib | .pdf ]

Practical implementations of high-level languages must provide access to libraries and system services that have APIs specified in a low-level language (usually C). An important characteristic of such mechanisms is the foreign-interface policy that defines how to bridge the semantic gap between the high-level language and C. For example, IDL-based tools generate code to marshal data into and out of the high-level representation according to user annotations. The design space of foreign-interface policies is large and there are pros and cons to each approach. Rather than commit to a particular policy, we choose to focus on the problem of supporting a gamut of interoperability policies. In this paper, we describe a framework for language interoperability that is expressive enough to support very efficient implementations of a wide range of different foreign-interface policies. We describe two tools that implement substantially different policies on top of our framework and present benchmarks that demonstrate their efficiency.

Local CPS conversion in a direct-style compiler.
John Reppy. In Proceedings of the Third ACM SIGPLAN Workshop on Continuations (CW'01), pages 13--22, January 2001.
bib | .pdf ]

Extending Moby with inheritance-based subtyping.
Kathleen Fisher and John Reppy. In Proceedings of the European Conference on Object Oriented Programming, Volume 1850 of Lecture Notes in Computer Science, pages 83--107, New York, NY, June 2000. Springer-Verlag.
bib | .pdf ]

Inheritance-based subtyping.
Kathleen Fisher and John Reppy. In Proceedings of the 7th Workshop on Foundations of Object-oriented Programming, January 2000.
bib | .pdf ]

Data-level interoperability.
Kathleen Fisher, Riccardo Pucella, and John Reppy. Technical Memorandum, Bell Labs, Lucent Technologies, April 2000.
bib ]

The design of a class mechanism for Moby.
Kathleen Fisher and John Reppy. In Proceedings of the SIGPLAN 1999 Conference on Programming Language Design and Implementation, pages 37--49, New York, NY, May 1999. ACM.
bib ]

Foundations for Moby classes.
Kathleen Fisher and John Reppy. Technical Memorandum, Bell Labs, Lucent Technologies, Murray Hill, NJ, February 1999.
bib ]


This file was generated by bibtex2html 1.98.


Last updated on February 22, 2022
Comments to John Reppy.