References: functional programming languages implementation on VM's
Due to the popularization of virtual machines' (VM's) based programming environments, it has been up to date to port different languages for such ones. Initiatives such as Microsoft's .NET has already stimulated the implementation of various languages, and directed the cientific communitty in a way to provide implementations of functional languages for VM's. The references listed below has the objective to serve as a basic set of readings to the ones who intends to tread through the path of such implementation/integration, in particular for the Haskell language. However, the list bellow is not closed, in a way that we may have forgeted someone, so if you know about a important reference concerning this matter, send a message to mscla@cin.ufpe.br.
Index
Scripting COM Components in
Haskell
Calling Hell From Heaven and
Heaven From Hell
Implementing Functional Languages
on Object-Oriented Virtual Machines
A Haskell to Java Virtual
Machine Code Compiler
Compiling Standard ML to Java
Bytecodes
Scripting .NET Using Mondrian
Compiling Scheme to JVM
bytecode A Performance Study
ILX:
Extending the .NET Common IL for Functional Language Interoperability
Object-Oriented Style
Overloading for Haskell
Technical Overview of the
Common Language Runtime
Stacking then up A Comparison
of Virtual Machines
Design and Implementation of
Generics for the .NET Common Language Runtime
Title: Scripting COM Components in Haskell |
Abstract: |
Authors: Simon Peyton Jones, Erik Meijer and Daan Leijen | |
Date: December 1997 | |
Full Text: [pdf] |
Title: Calling Hell From Heaven and Heaven From Hell |
Abstract: |
Authors: Sigbjorn Finne, Daan Leijen, Erik Meijer and Simon Peyton Jones | |
Date: November 1999 | |
Full Text: [pdf] |
Title: Implementing Functional Languages on Object-Oriented Virtual Machines |
Abstract: |
Authors: Nigel Perry and Erik Meijer | |
Date: ??? | |
Full Text: [pdf] |
Title: A Haskell to Java Virtual Machine Code Compiler |
Abstract: |
Authors: David Wakeling | |
Date: ??? | |
Full Text: [pdf] |
Title: Compiling Standard ML to Java Bytecodes |
Abstract: |
Authors: Nick Benton, Andrew Kennedy and George Russel | |
Date: ??? | |
Full Text: [pdf] |
Title: Scripting .NET Using Mondrian |
Abstract: |
Authors: Eric Meijer, Nigel Perry and Arjan van Yzendoorn | |
Date: ??? | |
Full Text: [pdf] |
Title: Compiling Scheme to JVM bytecode A Performance Study |
Abstract: |
Authors: Bernard Paul Serpette and Manuel Serrano | |
Date: ??? | |
Full Text: [pdf] |
Title: ILX: Extending the .NET Common IL for Functional Language Interoperability |
Abstract: |
Authors: Don Syme | |
Date: ??? | |
Full Text: [pdf] |
Title: Object-Oriented Style Overloading for Haskell |
Abstract: Haskell has a sophisticated mechanism for overloading identifiers with multiple definitions at distinct types. Object-oriented programming has a similar notion of overriding and overloading for methods names. Unfortunately, it is not possible to encode object-oriented overloading directly using Haskell overloading. This deficiency becomes particularly tiresome when Haskell programs wish to call methods imported from an object-oriented library. We explore various encodings of object-oriented classes into Haskell, demonstrate precisely where Haskell's existing type class system is unsatisfactory, and propose two refinements. We proceed in three stages. Firstly, we discuss various ways of accommodating sub-typing; we conclude that a simple encoding using Haskell classes is better for our purpose than a more substantial language extension. Second, we introduce a new notion of closed class, and show how this enables improvement of constraints beyond what is possible in Haskell. Closed classes make it easy to encode the truely ad hoc overloading of object-oriented methods without the need for name mangling or gratuitous type annotations. Thirdly, we allow overlapping instances, and define what it means for one instance to be better than another. This mechanism will turn out to mimic the rather complex overloading resolution rules used by object-oriented languages to select the most-specific method at a call site. In the Appendix, we present type checking and inference rules, as well as details of constraint entailment and simplification. However, this workshop paper is somewhat exploratory: the design may shift once we gain experience with an implementation, and we have not devoted any time to showing any formal properties of our system. |
Authors: Mark Shields and Simon Peyton Jones | |
Date: ??? | |
Full Text: [pdf] |
Title: Technical Overview of the Common Language Runtime |
Abstract: |
Authors: ErikMeijer and JimMiller | |
Date: ??? | |
Full Text: [pdf] |
Title: Stacking then up A Comparison of Virtual Machines |
Abstract:
|
Authors: John Gough | |
Date: ??? | |
Full Text: [pdf] |
Title: Design and Implementation of Generics for the .NET Common Language Runtime |
Abstract:
|
Authors: Andrew Kennedy and Don Syme | |
Date: ??? | |
Full Text: [pdf] |