15 research outputs found
A Mechanism for Extensible Mutual Recursion
Abstract This paper summarizes an approach to extensible mutual recursion using what the author calls, "open modules." An open module effectively parameterizes its content so that it can be used both for the current module and future, extending modules. This paper discusses some of the issues with extensible mutual recursion, describes an open module construct and gives encodings and typing rules for open modules
ETYMA: a framework for modular systems
Journal ArticleModularity, i.e. support for the flexible construction, adaptation, and combination of units of software, is an important goal in many systems. In most cases, however, systems achieve only a few aspects of modularity. The problem can be traced to the inflexibility, or the limited view of modularity taken by the underlying architecture of these systems. As a remedy, we show that the notions fundamental to object-oriented programming, i.e. classes and inheritance, can be formulated as a simple meta-level architecture that can be effectively reused in a wide variety of contexts. We have realized such an architecture as an O-O framework, and constructed two significant and distinct completions of it. Systems based on this framework benefit not only from design and code reuse, but also from the flexibility that the architecture offers. In addition, the architecture represents a unification of the fundamental ideas of several similar but subtly different module systems
A Fully Abstract Denotational Model for Observational Congruence
Denotational Model for Observational Congruence Anna Ing olfsd ottir Andrea Schalk BRICS Report Series RS-95-40 ISSN 0909-0878 August 1995 Copyright c fl 1995, BRICS, Department of Computer Science University of Aarhus. All rights reserved. Reproduction of all or part of this work is permitted for educational or research use on condition that this copyright notice is included in any copy. See back inner page for a list of recent publications in the BRICS Report Series. Copies may be obtained by contacting: BRICS Department of Computer Science University of Aarhus Ny Munkegade, building 540 DK - 8000 Aarhus C Denmark Telephone:+45 8942 3360 Telefax: +45 8942 3255 Internet: [email protected] BRICS publications are in general accessible through WWW and anonymous FTP: http://www.brics.aau.dk/BRICS/ ftp ftp.brics.aau.dk (cd pub/BRICS) A Fully Abstract Denotational Model for Observational Congruence Anna Ing'olfsd'ottir BRICS Dep.of Maths and Computer Science ..
A Concurrent IFDS Dataflow Analysis Algorithm Using Actors
There has recently been a resurgence in interest in techniques for effective programming
of multi-core computers. Most programmers find general-purpose concurrent programming to be
extremely difficult. This difficulty severely limits the number of applications that
currently benefit from multi-core computers.
There already exist many concurrent solutions for the class of regular applications,
which include various algorithms for linear algebra.
For the class of irregular applications, which operate on dynamic and pointer- and graph-based
structures, efficient concurrent solutions have so far remained elusive.
Dataflow analysis applications, which are often found in compilers and
program analysis tools, have received particularly little attention
with regard to execution on multi-core machines.
Operating on the theory that the Actor model, which structures computations
as systems of asynchronously-communicating entities, is a more appropriate
method for representing irregular algorithms than the shared-memory model,
this work presents a concurrent Actor-based formulation of the IFDS,
or Interprocedural Finite Distributive Subset, dataflow analysis algorithm.
The implementation of this algorithm is done using the Scala language and its Actors
library. This algorithm achieves significant speedup on multi-core machines without using
any optimistic execution.
This work contributes to Actor research by showing how the Actor model can be practically
applied to a dataflow analysis problem.
This work contributes to static analysis research by showing how a dataflow analysis
algorithm can effectively make use of multi-core machines,
allowing the possibility of faster and more precise analyses