• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

ML pattern match compilation and partial evaluation (1996)

by Peter Sestoft
Add To MetaCart

Tools

Sorted by:
Results 1 - 7 of 7

Statically Checkable Pattern Abstractions

by Manuel Fähndrich, John Boyland - In 2nd ACM Int. Conf. on Functional Programming , 1997
"... Pattern abstractions increase the expressiveness of pattern matching, enabling the programmer to describe a broader class of regular forests with patterns. Furthermore, pattern abstractions support code reuse and code factoring, features that facilitate maintenance and evolution of code. Past resear ..."
Abstract - Cited by 13 (0 self) - Add to MetaCart
Pattern abstractions increase the expressiveness of pattern matching, enabling the programmer to describe a broader class of regular forests with patterns. Furthermore, pattern abstractions support code reuse and code factoring, features that facilitate maintenance and evolution of code. Past research on pattern abstractions has generally ignored the aspect of compile-time checks for exhaustiveness and redundancy. In this paper we propose a class of expressive patterns that admits these compile-time checks.

Abstract Machines for Dynamic Computation

by Christopher David Walton - UNIVERSITY OF EDINBURGH , 2001
"... In this thesis we address the challenges associated with the provision of dynamic software architectures. These are systems in which programs are constructed from separately compiled units with a facility for the replacement of these units at runtime. Typical examples of applications which will bene ..."
Abstract - Cited by 9 (0 self) - Add to MetaCart
In this thesis we address the challenges associated with the provision of dynamic software architectures. These are systems in which programs are constructed from separately compiled units with a facility for the replacement of these units at runtime. Typical examples of applications which will benefit from this dynamic approach are long-lived systems in which downtime is highly undesirable, for example, web-servers, database engines, and equipment controllers. In addition, dynamic software architectures are also gaining popularity with the recent advent of wide-area Internet applications, where it is often impractical to compile a program in its entirety or begin execution in a single step. Our approach to dynamic software architectures differs from earlier attempts in that we guarantee the safety of the replacement operation. This is done by founding our techniques on the rigour of strong typing. In the first half of the thesis we take an existing static software architecture with strong typing facilities and modular program construction, namely the Standard ML platform, and equip

Optimizing Pattern Matching

by Fabrice Le Fessant, Luc Maranget - In ICFP’01 Proceedings , 2001
"... We present improvements to the backtracking technique of pattern-matching compilation. Several optimizations are introduced, such as commutation of patterns, use of exhaustiveness information, and control ow optimization through the use of labeled static exceptions and context information. These opt ..."
Abstract - Cited by 8 (0 self) - Add to MetaCart
We present improvements to the backtracking technique of pattern-matching compilation. Several optimizations are introduced, such as commutation of patterns, use of exhaustiveness information, and control ow optimization through the use of labeled static exceptions and context information. These optimizations have been integrated in the ObjectiveCaml compiler. They have shown good results in increasing the speed of pattern-matching intensive programs, without increasing nal code size.

When Do Match-Compilation Heuristics Matter?

by Kevin Scott, Norman Ramsey , 2000
"... Modern, statically typed, functional languages define functions by pattern matching. Although pattern matching is defined in terms of sequential checking of a value against one pattern after another, real implementations translate patterns into automata that can test a value against many pattern ..."
Abstract - Cited by 7 (1 self) - Add to MetaCart
Modern, statically typed, functional languages define functions by pattern matching. Although pattern matching is defined in terms of sequential checking of a value against one pattern after another, real implementations translate patterns into automata that can test a value against many patterns at once. Decision trees are popular automata.

The Translation Power of the Futamura Projections

by Robert Glück - In Perspectives of Systems Informatics, volume 2890 of LNCS , 2003
"... Despite practical successes with the Futamura projections, it has been an open question whether target programs produced by specializing interpreters can always be as e#cient as those produced by a translator. We show that, given a Jones-optimal program specializer with static expression reducti ..."
Abstract - Cited by 2 (0 self) - Add to MetaCart
Despite practical successes with the Futamura projections, it has been an open question whether target programs produced by specializing interpreters can always be as e#cient as those produced by a translator. We show that, given a Jones-optimal program specializer with static expression reduction, there exists for every translator an interpreter which, when specialized, can produce target programs that are at least as fast as those produced by the translator. This is not the case if the specializer is not Jones-optimal. We also examine Ershov's generating extensions, give a parameterized notion of Jones optimality, and show that there is a class of specializers that can always produce residual programs that match the size and time complexity of programs generated by an arbitrary generating extension. This is the class of generation universal specializers. We study these questions on an abstract level, independently of any particular specialization method.

Jones Optimality, Binding-Time Improvements, and the Strength of Program Specializers

by Robert Glück, Robert Gl Uck
"... Jones optimality tells us that a program specializer is strong enough to remove an entire level of self-interpretation. We show that Jones optimality, which was originally aimed at the Futamura projections, plays an important role in binding-time improvements. The main results show that, regardless ..."
Abstract - Cited by 1 (0 self) - Add to MetaCart
Jones optimality tells us that a program specializer is strong enough to remove an entire level of self-interpretation. We show that Jones optimality, which was originally aimed at the Futamura projections, plays an important role in binding-time improvements. The main results show that, regardless of the binding-time improvements which we apply to a source program, no matter how extensively, a specializer that is not Jones-optimal is strictly weaker than a specializer which is Jones optimal. By viewing a binding-time improver as a generating extension of a self-interpreter, we can connect our results with previous work on the interpretive approach.

PMC: A Programming Language for Embedded Systems

by Simon Mørk, Ken Larsen, Henrik Reif Andersen, Lyngby Danmark, Peter Sestoft - In Proc. Int. Workshop Formal Methods for Industrial Critical Systems , 1999
"... The process algebra pmc (Processes with Multiple Clocks) extends Milner's ccs with a notion of qualitative time called clocks. The algebra has been used for specifying industrial size case-studies. Based on the algebra pmc, we introduce a programming language (also named PMC) for embedded systems. T ..."
Abstract - Cited by 1 (0 self) - Add to MetaCart
The process algebra pmc (Processes with Multiple Clocks) extends Milner's ccs with a notion of qualitative time called clocks. The algebra has been used for specifying industrial size case-studies. Based on the algebra pmc, we introduce a programming language (also named PMC) for embedded systems. The language features point-to-point communication, multi-synchronization, local deterministic parallel composition, global non-deterministic parallel composition, and a restricted form of mixed input/output guarded choice. The expression language includes constructors, tuples, and patterns as known from SML. The language is strongly typed. The PMC language provides the user with a clean, yet flexible, separation between the abstract programming of an embedded system, and the low-level, hardware specific details of for instance device drivers. We have a prototype compiler that compiles PMC to Java byte code. Concurrency does not necessarily give rise to considerable computation overhead. In im...
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University