Results 1 -
4 of
4
Programming in an Integrated Functional and Logic Language
, 1999
"... Escher is a general-purpose, declarative programming language that integrates the best features of both functional and logic programming languages. It has types and modules, higher-order and meta-programming facilities, concurrency, and declarative input/output. The main design aim is to combine in ..."
Abstract
-
Cited by 63 (14 self)
- Add to MetaCart
Escher is a general-purpose, declarative programming language that integrates the best features of both functional and logic programming languages. It has types and modules, higher-order and meta-programming facilities, concurrency, and declarative input/output. The main design aim is to combine in a practical and comprehensive way the best ideas of existing functional and logic languages, such as Haskell and Godel. In fact, Escher uses the Haskell syntax and is most straightforwardly understood as an extension of Haskell. Consequently, this paper discusses Escher from this perspective. It provides an introduction to the Escher language, concentrating largely on the issue of programming style and the Escher programming idioms not provided by Haskell. Also the extra mechanisms needed to support these idioms are discussed.
Extensible virtual machines
, 2001
"... Virtual machines (vms) have enjoyed a resurgence as a way of allowing the same application program to be used across a range of computer systems. This flexibility comes from the abstraction that the vm provides over the native interface of a particular computer. However, this also means that the app ..."
Abstract
-
Cited by 9 (0 self)
- Add to MetaCart
Virtual machines (vms) have enjoyed a resurgence as a way of allowing the same application program to be used across a range of computer systems. This flexibility comes from the abstraction that the vm provides over the native interface of a particular computer. However, this also means that the application is prevented from taking the features of particular physical machines into account in its implementation. This dissertation addresses the question of why, where and how it is useful, possible and practicable to provide an application with access to lower-level interfaces. It argues that many aspects of vm implementation can be devolved safely to untrusted applications and demonstrates this through a prototype which allows control over run-time compilation, object placement within the heap and thread scheduling. The proposed architecture separates these application-specific policy implementations from the application itself. This allows one application to be used with different policies on different systems and also allows nave or premature optimizations to be removed.
RISC-like approach to flexible, high-performance virtual machine design
, 1998
"... Contents 1 Introduction 5 2 Problems 6 2.1 Flexibility of the Java Virtual Machine . . . . . . . . . . . . . . . . . 6 2.1.1 Storage management . . . . . . . . . . . . . . . . . . . . . . 6 2.1.2 Bytecode verification . . . . . . . . . . . . . . . . . . . . . . 7 2.1.3 Primitive operations . . . . . ..."
Abstract
- Add to MetaCart
Contents 1 Introduction 5 2 Problems 6 2.1 Flexibility of the Java Virtual Machine . . . . . . . . . . . . . . . . . 6 2.1.1 Storage management . . . . . . . . . . . . . . . . . . . . . . 6 2.1.2 Bytecode verification . . . . . . . . . . . . . . . . . . . . . . 7 2.1.3 Primitive operations . . . . . . . . . . . . . . . . . . . . . . 8 2.1.4 Thread scheduling . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 Virtual machine complexity . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.1 Size of virtual machine implementations . . . . . . . . . . . . 9 2.2.2 Risk of errors . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Proposal 10 3.1 Technical details . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 Timescale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4 Related work 12 5 Conclusion 14 4 5 1 Introduction Papers concerning the Java programming language [GJS97] and its implementation have a characteristic structur
A Study of the Operational Behaviour of Escher and its
"... This paper summarises the results of an extensive study into the foundations of functional logic programming with Escher. It introduces the Escher language and compares Escher to the purely functional language Haskell. Based on this study an abstract machine is proposed that supports the rewritin ..."
Abstract
- Add to MetaCart
This paper summarises the results of an extensive study into the foundations of functional logic programming with Escher. It introduces the Escher language and compares Escher to the purely functional language Haskell. Based on this study an abstract machine is proposed that supports the rewriting computational model of Escher. The machine is based on a simplified version of the Spineless Tagless G-Machine which was developed for the implementation of higher-order, lazy, purely functional languages. This paper shows how to add a representation for variables, a technique to deal with insufficiently instantiated arguments in function calls and a mechanism to handle pattern matching on function symbols. It studies how the rewrite rules that define the logical features of Escher can be implemented, and also addresses the integration of sharing into a machine model that supports rewriting in the presence of variables.

