Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Jonathan T. Moore

dblp:73/21 · DBLP profile ↗
← Back
8ranked-venue papers
1as first author
0since 2021 · last 2007
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 6Computer networks · 2 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
3 papers
Compilers and program optimization · 60% Programming languages and type systems · 30% Software maintenance and evolution · 8%
Computer networks
2 papers
Software-defined and programmable networks · 64% Internet architecture and protocols · 36%
Databases, data mining, and information retrieval
1 paper
Database theory · 100%

Topics — the 11 heaviest of 12, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization › program transformation
bidirectional transformation
0.122007
Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem · ACM Trans. Program. Lang. Syst. 2007
Combinators for bi-directional tree transformations: a linguistic approach to the view update problem · POPL 2005
Programming languages and type systems
domain-specific languages
0.122007
Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem · ACM Trans. Program. Lang. Syst. 2007
Combinators for bi-directional tree transformations: a linguistic approach to the view update problem · POPL 2005
Compilers and program optimization › program transformation
tree transformations
0.112007
Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem · ACM Trans. Program. Lang. Syst. 2007
Compilers and program optimization › program transformation › bidirectional transformation
lenses
0.112005
Combinators for bi-directional tree transformations: a linguistic approach to the view update problem · POPL 2005
Software-defined and programmable networks
programmable data plane
0.012001
Practical Programmable Packets · INFOCOM 2001
Software maintenance and evolution
dynamic software updating
0.012001
Dynamic Software Updating · PLDI 2001
Internet architecture and protocols › future internet architecture
active networks
0.011999
PLANet: An Active Internetwork · INFOCOM 1999
Software-defined and programmable networks › programmable network nodes
programmable routers
0.011999
PLANet: An Active Internetwork · INFOCOM 1999
Database theory
view update
0.012005
Combinators for bi-directional tree transformations: a linguistic approach to the view update problem · POPL 2005
Operating systems
live update
0.012001
Dynamic Software Updating · PLDI 2001
Internet architecture and protocols › network architecture design
internet architecture
0.011999
PLANet: An Active Internetwork · INFOCOM 1999

Methods — techniques the papers use, named apart from their topics

type soundness · 0.2combinator library · 0.1functional programming combinators · 0.1proof sketch · 0.1compiler · 0.1byte-code interpretation · 0.0
YearPublicationVenuePosition
2007 Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem
abstract
We propose a novel approach to the view-update problem for tree-structured data: a domain-specific programming language in which all expressions denote bidirectional transformations on trees. In one direction, these transformations---dubbed lenses ---map a concrete tree into a simplified abstract view; in the other, they map a modified abstract view, together with the original concrete tree, to a correspondingly modified concrete tree. Our design emphasizes both robustness and ease of use, guaranteeing strong well-behavedness and totality properties for well-typed lenses. We begin by identifying a natural space of well-behaved bidirectional transformations over arbitrary structures, studying definedness and continuity in this setting. We then instantiate this semantic framework in the form of a collection of lens combinators that can be assembled to describe bidirectional transformations on trees. These combinators include familiar constructs from functional programming (composition, mapping, projection, conditionals, recursion) together with some novel primitives for manipulating trees (splitting, pruning, merging, etc.). We illustrate the expressiveness of these combinators by developing a number of bidirectional list-processing transformations as derived forms. An extended example shows how our combinators can be used to define a lens that translates between a native HTML representation of browser bookmarks and a generic abstract bookmark format.
Nate Foster, Michael B. Greenwald, Jonathan T. Moore, Benjamin C. Pierce, Alan Schmitt
ACM Trans. Program. Lang. Syst.3
2005 Combinators for bi-directional tree transformations: a linguistic approach to the view update problem
abstract
We propose a novel approach to the well-known view update problem for the case of tree-structured data: a domain-specific programming language in which all expressions denote bi-directional transformations on trees. In one direction, these transformations---dubbed lenses---map a "concrete" tree into a simplified "abstract view"; in the other, they map a modified abstract view, together with the original concrete tree, to a correspondingly modified concrete tree. Our design emphasizes both robustness and ease of use, guaranteeing strong well-behavedness and totality properties for well-typed lenses.We identify a natural space of well-behaved bi-directional transformations over arbitrary structures, study definedness and continuity in this setting, and state a precise connection with the classical theory of "update translation under a constant complement" from databases. We then instantiate this semantic framework in the form of a collection of lens combinators that can be assembled to describe transformations on trees. These combinators include familiar constructs from functional programming (composition, mapping, projection, conditionals, recursion) together with some novel primitives for manipulating trees (splitting, pruning, copying, merging, etc.). We illustrate the expressiveness of these combinators by developing a number of bi-directional list-processing transformations as derived forms.
Nate Foster, Michael B. Greenwald, Jonathan T. Moore, Benjamin C. Pierce, Alan Schmitt
POPL3
2001 Practical Programmable Packets
abstract
We present SNAP (safe and nimble active packets), a new scheme for programmable (or active) packets centered around a new low-level packet language. Unlike previous active packet approaches, SNAP is practical: namely, adding significant flexibility over IP without compromising safety and security or efficiency. In this paper we show how to compile from the well-known active picket language PLAN to SNAP, showing that SNAP retains PLAN's flexibility; give proof sketches of its novel approach to resource control; and present experimental data showing SNAP attains performance very close to that of a software IP router.
Jonathan T. Moore, Michael Hicks 0001, Scott Nettles
INFOCOM1
2001 Dynamic Software Updating
abstract
Many important applications must run continuously and without interruption, yet must be changed to fix bugs or upgrade functionality. No prior general-purpose methodology for dynamic updating achieves a practical balance between flexibility, robustness, low overhead, and ease of use.
Michael Hicks 0001, Jonathan T. Moore, Scott Nettles
PLDI2
1999 PLANet: An Active Internetwork
abstract
We present PLANet: an active network architecture and implementation. In addition to a standard suite of Internet-like services, PLANet has two key programmability features: (1) all packets contain programs; and (2) router functionality may be extended dynamically. Packet programs are written in our special purpose programming language PLAN, the Packet Language for Active Networks, while dynamic router extensions are written in OCaml, a dialect of ML. Currently, PLANet routers run as byte-code-interpreted Linux user-space applications, and support Ethernet and IP as link layers. PLANet achieves respectable performance on standard networking operations: on 300 MHz Pentium-II's attached to 100 Mbps Ethernet, PLANet can route 48 Mbps and switch over 5000 packets per second. We demonstrate the utility of PLANet's activeness by showing experimentally how it can nontrivially improve application and aggregate network performance in congested conditions.
Michael Hicks 0001, Jonathan T. Moore, D. Scott Alexander, Carl A. Gunter, Scott Nettles
INFOCOM2
1998 PLAN: A Packet Language for Active Networks
abstract
PLAN (Packet Language for Active Networks) is a new language for programs that form the packets of a programmable network. These programs replace the packet headers (which can be viewed as very rudimentary programs) used in current networks. As such, PLAN programs are lightweight and of restricted functionality. These limitations are mitigated by allowing PLAN code to call node-resident service routines written in other, more powerful languages. This two-level architecture, in which PLAN serves as a scripting or 'glue' language for more general services, is the primary contribution of this paper. We have successfully applied the PLAN programming environment to implement an IP-free internetwork.PLAN is based on the simply typed lambda calculus and provides a restricted set of primitives and datatypes. PLAN defines a special construct called a chunk used to describe the remote execution of PLAN programs on other nodes. Primitive operations on chunks are used to provide basic data transport in the network and to support layering of protocols. Remote execution can make debugging difficult, so PLAN provides strong static guarantees to the programmer, such as type safety. A more novel property aimed at protecting network availability is a guarantee that PLAN programs use a bounded amount of network resources.
Michael Hicks 0001, Pankaj Kakkar, Jonathan T. Moore, Carl A. Gunter, Scott Nettles
ICFP3
1998 A Study of Large Object Spaces
abstract
This paper examines the design space for copying garbage collectors (GCs) in which "large objects" are managed in a separate, non-copy-collected space. We focus on two main issues:1. how to set the policy for classifying objects as "large"2. how to manage the large object spaceWe explore these issues experimentally using the Oscar GC testbed. In particular, we vary the threshold size of large objects and also whether the objects may contain pointers. Furthermore, we compare the performance of treadmill collection to that of mark-and-sweep collection for managing the large object space.We find that for some heaps there is a minimum cutoff size below which adding objects to the large object space does not result in a performance improvement, while for others no such cutoff exists. In general, including pointer-containing objects in the large object space seems beneficial. Finally, the exact method used to collect the large object space does not significantly influence overall performance.
Michael Hicks 0001, Luke Hornof, Jonathan T. Moore, Scott Nettles
ISMM3
1997 The Measured Cost of Copying Garbage Collection Mechanisms
abstract
We examine the costs and benefits of a variety of copying garbage collection (GC) mechanisms across multiple architectures and programming languages. Our study covers both low-level object representation and copying issues as well as the mechanisms needed to support more advanced techniques such as generational collection, large object spaces, and type segregated areas.Our experiments are made possible by a novel performance analysis tool, Oscar. Oscar allows us to capture snapshots of programming language heaps that may then be used to replay garbage collections. The replay program is self-contained and written in C, which makes it easy to port to other architectures and to analyze with standard performance analysis tools. Furthermore, it is possible to study additional programming languages simply by instrumenting existing implementations to capture heap snapshots.In general, we found that careful implementation of GC mechanisms can have a significant benefit. For a simple collector, we measured improvements of as much as 95%. We then found that while the addition of advanced features can have a sizeable overhead (up to 15%), the net benefit is quite positive, resulting in additional gains of up to 42%. We also found that results varied depending upon the platform and language. Machine characteristics such as cache arrangements, instruction set (RISC/CISC), and register pool were important. For different languages, average object size seemed to be most important.The results of our experiments demonstrate the usefulness of a tool like Oscar for studying GC performance. Without much overhead, we can easily identify areas where programming language implementors could collaborate with GC implementors to improve GC performance.
Michael Hicks 0001, Jonathan T. Moore, Scott Nettles
ICFP2