Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Alan Mycroft is active.

Publication


Featured researches published by Alan Mycroft.


Artificial Intelligence | 1984

A polymorphic type system for PROLOG.

Alan Mycroft; Richard A. O'Keefe

Abstract We describe a polymorphic type scheme for Prolog which makes static type checking possible. Polymorphism gives a good degree of flexibility to the type system, and makes it intrude very little on a users programming style. The only additions to the language are type declarations, which an interpreter can ignore if it so desires, with the guarantee that a well-typed program will behave identically with or without type checking. Our implementation is discussed and we observe that the type resolution problem for a Prolog program is another Prolog (meta)program.


european conference on object oriented programming | 2008

Kilim: Isolation-Typed Actors for Java

Sriram Srinivasan; Alan Mycroft

This paper describes Kilim, a framework that employs a combination of techniques to help create robust, massively concurrent systems in mainstream languages such as Java: (i) ultra-lightweight, cooperatively-scheduled threads (actors), (ii) a message-passing framework (no shared memory, no locks) and (iii) isolation-aware messaging. Isolation is achieved by controlling the shape and ownership of mutable messages --- they must not have internal aliases and can only be owned by a single actor at a time. We demonstrate a static analysis built around isolation type qualifiers to enforce these constraints. Kilim comfortably scales to handle hundreds of thousands of actors and messages on modest hardware. It is fast as well --- task-switching is 1000x faster than Java threads and 60x faster than other lightweight tasking frameworks, and message-passing is 3x faster than Erlang (currently the gold standard for concurrency-orientedprogramming).


Proceedings of the Fourth 'Colloque International sur la Programmation' on International Symposium on Programming | 1980

The Theory and Practice of Transforming Call-by-need into Call-by-value

Alan Mycroft

Call-by-need (which is an equivalent but more efficient implementation of call-by-name for applicative languages) is quite expensive with current hardware and also does not permit full use of the tricks (such as memo functions and recursion removal) associated with the cheaper call-by-value. However the latter mechanism may fail to terminate for perfectly well-defined equations and also invalidates some program transformation schemata.


Proceedings of the 6th Colloquium on International Symposium on Programming | 1984

Polymorphic Type Schemes and Recursive Definitions

Alan Mycroft

An extension to Milners polymorphic type system is proposed and proved correct. Such an extension appears to be necessary for the class of languages with mutually recursive top-level definitions. We can now ascribe a more general type to such definitions than before.


symposium on principles of programming languages | 1986

Data flow analysis of applicative programs using minimal function graphs

Neil D. Jones; Alan Mycroft

Data or program flow analysis is concerned with the static analysis of programs, to obtain as much information as possible about their possible run time behavior without actually having to run the programs. Due to the unsolvability of the halting problem (and nearly any other question concerning program behavior), such analyses are necessarily only approximate whenever the analysis algorithm is guaranteed to terminate. Further, exact analysis may be impossible due to the lack of knowledge of input data values, so the analysis can at best yield information about sets of possible computations.


international colloquium on automata, languages and programming | 1984

On the Relationship of CCS and Petri Nets

Ursula Goltz; Alan Mycroft

We give a partial order semantics to (pure) CCS via a translation into Petri nets and prove, that the interleaved behaviour of the resulting nets is equivalent to Milners semantics. We show that a large class of CCS programs can be represented by finite nets and that this is impossible for the whole CCS.


compiler construction | 2005

Task partitioning for multi-core network processors

Robert Ennals; Richard Sharp; Alan Mycroft

Network processors (NPs) typically contain multiple concurrent processing cores. State-of-the-art programming techniques for NPs are invariably low-level, requiring programmers to partition code into concurrent tasks early in the design process. This results in programs that are hard to maintain and hard to port to alternative architectures. This paper presents a new approach in which a high-level program is separated from its partitioning into concurrent tasks. Designers write their programs in a high-level, domain-specific, architecturally-neutral language, but also provide a separate Architecture Mapping Script (AMS). An AMS specifies semantics-preserving transformations that are applied to the program to re-arrange it into a set of tasks appropriate for execution on a particular target architecture. We (i) describe three such transformations: pipeline introduction, pipeline elimination and queue multiplexing; and (ii) specify when each can be safely applied. As a case study we describe an IP packet-forwarder and present an AMS script that partitions it into a form capable of running at 3Gb/s on an Intel IXP2400 Network Processor.


Programs as Data Objects, Proceedings of a Workshop | 1985

A relational framework for abstract interpretation

Alan Mycroft; Neil D. Jones

Abstract interpretation is a very general framework for proving certain properties of programs. This is done by interpreting the symbols of the program, or the symbols of a denotational metalanguage translation, in two different ways (the standard interpretation and the abstract interpretation) and relating them. We set up a new framework for abstract interpretation based on relations (with the intent of inclusive or logical relations). This avoids problems with power domains and enables certain higher-order frameworks to be proved correct. As an example we show how the Hindley/Milner type system can be viewed as a special case of our system and is thus automatically correct.


european symposium on programming | 2004

Linear Types for Packet Processing

Robert Ennals; Richard Sharp; Alan Mycroft

We present PacLang: an imperative, concurrent, linearly-typed language designed for expressing packet processing applications. PacLang’s linear type system ensures that no packet is referenced by more than one thread, but allows multiple references to a packet within a thread. We argue (i) that this property greatly simplifies compilation of high-level programs to the distributed memory architectures of modern Network Processors; and (ii) that PacLang’s type system captures that style in which imperative packet processing programs are already written. Claim (ii) is justified by means of a case-study: we describe a PacLang implementation of the IPv4 unicast packet forwarding algorithm.


Electronic Notes in Theoretical Computer Science | 2003

Redux: A Dynamic Dataflow Tracer

Nicholas Nethercote; Alan Mycroft

Abstract Redux is a tool that generates dynamic dataflow graphs. It generates these graphs by tracing a programs execution and recording every value-producing operation that takes place, building up a complete computational history of every value produced. For that execution, by considering the parts of the graph reachable from system call inputs, we can choose to see only the dataflow that affects the outside world. Redux works with program binaries, and thus is not restricted to programs written in any particular language. We explain how Redux works, and show how dynamic dataflow graphs give the essence of a programs computation. We show how Redux can be used for debugging and program slicing, and consider a range of other possible uses.

Collaboration


Dive into the Alan Mycroft's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Cosmin E. Oancea

University of Western Ontario

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge