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. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Butler W. Lampson

dblp:l/ButlerWLampson · DBLP profile ↗
← Back
37ranked-venue papers
23as first author
0since 2021 · last 2018
—ORCID · none

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

Software engineering, systems software and programming languages · 16 · 10 first-authorSystems, architecture and hardware · 9 · 7 first-authorTheory of computation · 5 · 3 first-authorComputer networks · 4 · 3 first-authorSecurity and privacy · 2Artificial intelligence and machine learning · 1Databases, data management, data science and information retrieval · 1 · 1 first-authorHuman-computer interaction and ubiquitous computing · 1Applied, interdisciplinary, general and emerging computing · 1 · 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
10 papers
Program synthesis and code generation · 45% Program verification · 39% Concurrent programming · 12%
Computer architecture, parallel and distributed computing, and storage systems
12 papers
Distributed systems · 70% Storage systems · 12% Performance modeling and evaluation · 8%
Human-computer interaction and pervasive computing
1 paper
User interface design and tools · 100%
Network and information security
7 papers
Authentication and access control · 92% Cryptographic protocols and secure computation · 4% Cryptographic primitives and cryptanalysis · 4%
Computer networks
2 papers
Routing and switching · 93% Internet architecture and protocols · 7%
Artificial intelligence
1 paper
Speech recognition and synthesis · 77% Robot manipulation · 23%
Databases, data mining, and information retrieval
1 paper
Machine learning and data management · 100%

Topics — the 30 heaviest of 69, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program verification
concurrent program verification
0.312018
Verifying concurrent software using movers in CSPEC · OSDI 2018
Program synthesis and code generation
programming by example
0.222013
A Machine Learning Framework for Programming by Example · ICML (1) 2013
A colorful approach to text processing by example · UIST 2013
User interface design and tools › end-user programming
programming by demonstration
0.212013
A colorful approach to text processing by example · UIST 2013
Program synthesis and code generation
search-based program synthesis
0.212013
A Machine Learning Framework for Programming by Example · ICML (1) 2013
Concurrent programming
concurrency verification
0.112018
Verifying concurrent software using movers in CSPEC · OSDI 2018
Routing and switching
IP lookup
0.021999
IP lookups using multiway and multicolumn search · IEEE/ACM Trans. Netw. 1999
IP Lookups Using Multiway and Multicolumn Search · INFOCOM 1998
Routing and switching › IP lookup
longest prefix matching
0.021999
IP lookups using multiway and multicolumn search · IEEE/ACM Trans. Netw. 1999
IP Lookups Using Multiway and Multicolumn Search · INFOCOM 1998
Distributed systems
fault tolerance
0.022001
The ABCD's of Paxos · PODC 2001
Designing a Global Name Service · PODC 1986
Distributed systems
consensus
0.012001
The ABCD's of Paxos · PODC 2001
Distributed systems › consensus
paxos
0.012001
The ABCD's of Paxos · PODC 2001
Distributed systems › replication
state machine replication
0.012001
The ABCD's of Paxos · PODC 2001
Authentication and access control
distributed authentication
0.041993
Authentication in the Taos Operating System · SOSP 1993
Authentication in Distributed Systems: Theory and Practice · ACM Trans. Comput. Syst. 1992
Authentication in Distributed Systems: Theory and Practice · SOSP 1991
Authentication and access control
access control
0.031993
A Calculus for Access Control in Distributed Systems · ACM Trans. Program. Lang. Syst. 1993
Authentication in Distributed Systems: Theory and Practice · SOSP 1991
A Calculus for Access Control in Distributed Systems · CRYPTO 1991
Algorithms and data structures › search algorithms
multiway search
0.011998
IP Lookups Using Multiway and Multicolumn Search · INFOCOM 1998
Algorithms and data structures
search algorithms
0.011998
IP Lookups Using Multiway and Multicolumn Search · INFOCOM 1998
Authentication and access control › authentication
authentication theory
0.021992
Authentication in Distributed Systems: Theory and Practice · ACM Trans. Comput. Syst. 1992
Authentication in Distributed Systems: Theory and Practice · SOSP 1991
Authentication and access control › authentication
authentication protocols
0.021993
A Calculus for Access Control in Distributed Systems · ACM Trans. Program. Lang. Syst. 1993
A Global Authentication Service without Global Trust · S&P 1986
Authentication and access control
authentication
0.021993
Authentication in the Taos Operating System · SOSP 1993
Designing a Global Name Service · PODC 1986
Authentication and access control › access control
distributed access control
0.011993
A Calculus for Access Control in Distributed Systems · ACM Trans. Program. Lang. Syst. 1993
Operating systems
distributed systems
0.011993
Authentication in the Taos Operating System · SOSP 1993
Distributed systems › distributed database
distributed transactions
0.011993
A New Presumed Commit Optimization for Two Phase Commit · VLDB 1993
Distributed systems › distributed database › commit protocol
two-phase commit
0.011993
A New Presumed Commit Optimization for Two Phase Commit · VLDB 1993
Distributed systems › fault tolerance
byzantine fault tolerance
0.012001
The ABCD's of Paxos · PODC 2001
Storage systems
data compression
0.011992
On-Line Data Compression in a Log-Structured File System · ASPLOS 1992
Storage systems
file systems
0.011992
On-Line Data Compression in a Log-Structured File System · ASPLOS 1992
Storage systems › file systems › write-optimized file system
log-structured file system
0.011992
On-Line Data Compression in a Log-Structured File System · ASPLOS 1992
Authentication and access control › authorization
delegation and revocation
0.011991
Authentication in Distributed Systems: Theory and Practice · SOSP 1991
Programming languages and type systems
module systems
0.011988
Pebble, a Kernel Language for Modules and Abstract Data Types · Inf. Comput. 1988
Cryptographic primitives and cryptanalysis › public-key cryptography
public-key encryption
0.021992
Authentication in Distributed Systems: Theory and Practice · ACM Trans. Comput. Syst. 1992
Authentication in Distributed Systems: Theory and Practice · SOSP 1991
Distributed systems › fault tolerance
high availability
0.011986
Designing a Global Name Service · PODC 1986

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

machine learning · 0.3feature weighting · 0.3CSPEC · 0.3binary search · 0.1retrospective analysis · 0.1multiway search · 0.0multicolumn search · 0.0cache-line-aware search · 0.0secure channels · 0.0logic of authentication · 0.0credentials · 0.0formal reasoning · 0.0type system · 0.0process calculus · 0.0modal logic · 0.0logical language · 0.0hardware compression · 0.0compression algorithms · 0.0
YearPublicationVenuePosition
2018 Verifying concurrent software using movers in CSPEC
Tej Chajed, M. Frans Kaashoek, Butler W. Lampson, Nickolai Zeldovich
OSDI3
2013 A Machine Learning Framework for Programming by Example
abstract
Learning programs is a timely and interesting challenge. In Programming by Example (PBE), a system attempts to infer a program from input and output examples alone, by searching for a composition of some set of base functions. We show how machine learning can be used to speed up this seemingly hopeless search problem, by learning weights that relate textual features describing the provided input-output examples to plausible sub-components of a program. This generic learning framework lets us address problems beyond the scope of earlier PBE systems. Experiments on a prototype implementation show that learning improves search and ranking on a variety of text processing tasks found on help forums.
Aditya Krishna Menon, Omer Tamuz, Sumit Gulwani, Butler W. Lampson, Adam Tauman Kalai
ICML (1)4
2013 A colorful approach to text processing by example
abstract
Text processing, tedious and error-prone even for programmers, remains one of the most alluring targets of Programming by Example. An examination of real-world text processing tasks found on help forums reveals that many such tasks, beyond simple string manipulation, involve latent hierarchical structures.
Kuat Yessenov, Shubham Tulsiani, Aditya Krishna Menon, Rob Miller 0001, Sumit Gulwani, Butler W. Lampson, Adam Tauman Kalai
UIST6
2012 What Computers Do: Model, Connect, Engage
Butler W. Lampson
TAMC1
2008 Lazy and speculative execution in computer systems
Butler W. Lampson
ICFP1
2006 Lazy and Speculative Execution in Computer Systems
Butler W. Lampson
OPODIS1
2006 Gold and Fool's Gold: Successes, Failures, and Futures in Computer Systems Research
Butler W. Lampson
USENIX ATC, General Track1
2003 Getting computers to understand
abstract
Embodiment 2010 vision, speech, robots, smart dust I think of storage as communication with the past, and by “embodiment ” I mean somewhat unconstrained interactions with the physical world. The dates are when the wave began to be important; it’s interesting that they are about 25 years apart. Currently, the communication wave is in full flood, and the first signs of embodiment are starting to appear. Of course, old waves don’t recede: simulation continues to be an important class of applications. New applications are enabled to some extent by new knowledge, but mainly by Moore’s law, that is, by improvement in the cost/performance of computing hard-ware: processing, RAM, disk, and communications. This has been running at about a factor of 100 per decade. Sometimes, as with speech recognition or web search engines, the cheaper cycles or bytes are applied directly. Often, however, spending more hardware resources makes it possible to spend much less programming effort, as with applications that use web browsers or database systems as components. I find it much harder to predict what will happen in computing during the next
Butler W. Lampson
J. ACM1
2001 The ABCD's of Paxos
abstract
We explain how consensus is used to implement replicated state machines, the general mechanism for fault-tolerance. We describe an abstract version of Lamport's Paxos algorithm for asynchronous consensus. Then we derive the Byzantine, classic, and disk versions of Paxos from the abstract one, show how they are related to each other, and discuss the safety, liveness, and performance of each one.
Butler W. Lampson
PODC1
2000 Revisiting the PAXOS algorithm
Roberto De Prisco, Butler W. Lampson, Nancy A. Lynch
Theor. Comput. Sci.2
1999 IP lookups using multiway and multicolumn search
abstract
IP address lookup is becoming critical because of increasing routing table sizes, speed, and traffic in the Internet. Given a set S of prefixes and an IP address D, the IP address lookup problem is to find the longest matching prefix of D in set S. This paper shows how binary search can be adapted for solving the best-matching prefix problem. Next, we show how to improve the performance of any best-matching prefix scheme using an initial array indexed by the first X bits of the address. We then describe how to take advantage of cache line size to do a multiway search with six-way branching. Finally, we show how to extend the binary search solution and the multiway search solution for IPv6. For a database of N prefixes with address length W, naive binary search would take O(W*log N); we show how to reduce this to O(W+log N) using multiple-column binary search. Measurements using a practical (Mae-East) database of 38000 entries yield a worst-case lookup time of 490 ns, five times faster than the Patricia trie scheme used in BSD UNIX. Our scheme is attractive for IPv6 because of its small storage requirement (2N nodes) and speed (estimated worst case of 7 cache line reads per lookup).
Butler W. Lampson, George Varghese
IEEE/ACM Trans. Netw.1
1998 IP Lookups Using Multiway and Multicolumn Search
abstract
IP address lookup is becoming critical because of increasing routing table size, speed, and traffic in the Internet. Our paper shows how binary search can be adapted for best matching prefix using two entries per prefix and by doing precomputation. Next we show how to improve the performance of any best matching prefix scheme using an initial array indexed by the first X bits of the address. We then describe how to take advantage of cache line size to do a multiway search with 6-way branching. Finally, we show how to extend the binary search solution and the multiway search solution for IPv6. For a database of N prefixes with address length W, naive binary search scheme would take O(W*logN); we show how to reduce this to O(W+logN) using multiple column binary search. Measurements using a practical (Mae-East) database of 30000 entries yield a worst case lookup time of 490 nanoseconds, five times faster than the Patricia trie scheme used in BSD UNIX. Our scheme is attractive for IPv6 because of small storage requirement (2N nodes) and speed (estimated worst case of 7 cache line reads).
Butler W. Lampson, George Varghese
INFOCOM1
1996 Analysis and Caching of Dependencies
abstract
We address the problem of dependency analysis and caching in the context of the λ-calculus. The dependencies of a λ-term are (roughly) the parts of the λ-term that contribute to the result of evaluating it. We introduce a mechanism for keeping track of dependencies, and discuss how to use these dependencies in caching.
Martín Abadi, Butler W. Lampson, Jean-Jacques Lévy
ICFP2
1996 Virtual Infrastructure: Putting Information Infrastructure on the Technology Curve
David L. Tennenhouse, Butler W. Lampson, Sharon Eisner Gillett, Jennifer Steiner Klein
Comput. Networks ISDN Syst.2
1993 Correctness of At-Most-Once Message Delivery Protocols
Butler W. Lampson, Nancy A. Lynch, Jørgen F. Søgaard-Andersen
FORTE1
1993 Authentication in the Taos Operating System
abstract
We describe a design and implementation of security for a distributed system. In our system, applications access security services through a narrow interface. This interface provides a notion of identity that includes simple principals, groups, roles, and delegations. A new operating system component manages principals, credentials, and secure channels. It checks credentials according to the formal rules of a logic of authentication. Our implementation is efficient enough to support a substantial user community.
Edward Wobber, Martín Abadi, Michael Burrows, Butler W. Lampson
SOSP4
1993 A New Presumed Commit Optimization for Two Phase Commit
Butler W. Lampson, David B. Lomet
VLDB1
1993 Authentification and Delegation with Smart-Cards
Martín Abadi, Michael Burrows, C. Kaufman, Butler W. Lampson
Sci. Comput. Program.4
1993 A Calculus for Access Control in Distributed Systems
abstract
We study some of the concepts, protocols, and algorithms for access control in distributed systems, from a logical perspective. We account for how a principal may come to believe that another principal is making a request, either on his own or on someone else's behalf. We also provide a logical language for accesss control lists and theories for deciding whether requests should be granted.
Martín Abadi, Michael Burrows, Butler W. Lampson, Gordon D. Plotkin
ACM Trans. Program. Lang. Syst.3
1992 On-Line Data Compression in a Log-Structured File System
abstract
We have incorporated on-line data compression into the low levels of a log-structured file system (Rosenblum's Sprite IFS).Each block of data or meta-data is compressed as it is written to the disk and decompressed as it is read.The log-structuring overcomes the problems of allocation and fragmentation for variable-sized blocks.We observe compression factors ranging from 1.6 to 2.2, using algorithms running from 1.7 to 0.4 MBytes per second in software on a DECstation 5000/200.System performance is degraded by a few percent for normal activities (such as compiling or editing), and as much as a factor of 1.6 for file system intensive operations (such as copying multi-megabyte files).Hardware compression devices mesh well with this design.Chips are already available that operate at speeds exceeding disk transfer rates, which indicates that hardware compression would not only remove the performance degradation we observed, but might well increase the effective dkk transfer rate beyond that obtainable from a system without compression.
Michael Burrows, Charles Jerian, Butler W. Lampson, Timothy P. Mann
ASPLOS3
1992 At-Most-Once Message Delivery. A Case Study in Algorithm Verification
Butler W. Lampson, Nancy A. Lynch, Jørgen F. Søgaard-Andersen
CONCUR1
1992 Authentication in Distributed Systems: Theory and Practice
abstract
We describe a theory of authentication and a system that implements it. Our theory is based on the notion of principal and a “speaks for” relation between principals. A simple principal either has a name or is a communication channel; a compound principal can express an adopted role or delegated authority. The theory shows how to reason about a principal's authority by deducing the other principals that it can speak for; authenticating a channel is one important application. We use the theory to explain many existing and proposed security mechanisms. In particular, we describe the system we have built. It passes principals efficiently as arguments or results of remote procedure calls, and it handles public and shared key encryption, name lookup in a large name space, groups of principals, program loading, delegation, access control, and revocation.
Butler W. Lampson, Martín Abadi, Michael Burrows, Edward Wobber
ACM Trans. Comput. Syst.1
1991 A Calculus for Access Control in Distributed Systems
Martín Abadi, Michael Burrows, Butler W. Lampson, Gordon D. Plotkin
CRYPTO3
1991 Authentication in Distributed Systems: Theory and Practice
abstract
We describe a theory of authentication and a system that implements it. Our theory is based on the notion of principal and a "speaks for" relation between principals. A simple principal either has a name or is a communication channel; a compound principal can express an adopted role or delegation of authority. The theory explains how to reason about a principal's authority by deducing the other principals that it can speak for; authenticating a channel is one important application. We use the theory to explain many existing and proposed mechanisms for security. In particular, we describe the system we have built. It passes principals efficiently as arguments or results of remote procedure calls, and it handles public and shared key encryption, name lookup in a large name space, groups of principals, loading programs, delegation, access control, and revocation.
Butler W. Lampson, Martín Abadi, Michael Burrows, Edward Wobber
SOSP1
1988 Pebble, a Kernel Language for Modules and Abstract Data Types
Butler W. Lampson, Rod M. Burstall
Inf. Comput.1
1986 Designing a Global Name Service
abstract
A name service maps a name of an individual, organization or facility into a set of labeled properties, each of which is a string. It is the basis for resource location, mail addressing, and authentication in a distributed computing system. The global name service described here is meant to do this for billions of names distributed throughout the world. It addresses the problems of high availability, large size, continuing evolution, fault isolation and lack of global trust. The non-deterministic behavior of the service is specified rather precisely to allow a wide range of client and server implementations. Introduction There are already enough names. One must know when to stop. Knowing when to stop averts trouble. Tao Te Ching The name service I am describing in this talk is intended to be the basis for resource location, mail addressing, and authentication in a distributed computing system. The system I have in mind is a large one, large enough to encompass all the computers in t...
Butler W. Lampson
PODC1
1986 A Global Authentication Service without Global Trust
abstract
This paper describes a design for an authentication service for a very large scale, very long lifetime, distributed system. The paper introduces a methodology for describing authentication protocols that makes explicit the trust relationships amongst the participants. The authentication protocol is based on the primitive notion of composition of secure channels. The authentication model offered provides for the authentication of "roles", where a principal might exercise differing roles at differing times, whilst having only a single "identity". Roles are suitable for inclusion in access control lists. The naming of a role implies what entities are being trusted to authenticate the role. We provide a UID scheme that gives clients control over the time at which a name gets bound to a principal, thus controlling the effects of mutability of the name space.
Andrew Birrell, Butler W. Lampson, Roger M. Needham, Michael D. Schroeder
S&P2
1984 Gene McDaniel, Severo M. Ornstein: An Instruction Fetch Unit for a High-Performance Personal Conmputer
abstract
The instruction fetch unit (IFU) of the Dorado personal computer speeds up the emulation of instructions by prefetching, decoding, and preparing later instructions in parallel with the execution of earlier ones. It dispatches the machine's microcoded processor to the proper starting address for each instruction, and passes the instruction's fields to the processor on demand. A writeable decoding memory allows the IFU to be specialized to a particular instruction set, as long as the instructions are an integral number of bytes long. There are implementations of specialized instruction sets for the Mesa, Lisp, and Smalltalk languages. The IFU is implemented with a six-stage pipeline, and can decode an instruction every 60 ns. Under favorable conditions the Dorado can execute instructions at this peak rate (16 mips).
Butler W. Lampson
IEEE Trans. Computers1
1983 Practical Use of a Polymorphic Applicative Language
abstract
Assembling a large system from its component elements is not a simple task. An adequate notation for specifying this task must reflect the system structure, accommodate many configurations of the system and many versions as it develops, and be a suitable input to the many tools that support software development. The language described here applies the ideas of λ-abstraction, hierarchical naming and type-checking to this problem. Some preliminary experience with its use is also given.
Butler W. Lampson, Eric E. Schmidt
POPL1
1983 Hints for Computer System Design
abstract
Studying the design and implementation of a number of computer has led to some general hints for system design.They are described here and illustrated by many examples, ranging from hardware such as the Alto and the Dorado to application programs such as Bravo and Star.
Butler W. Lampson
SOSP1
1982 Fast Procedure Calls
abstract
A mechanism for control transfers should handle a variety of applications (e.g., procedure calls and returns, coroutine transfers, exceptions, process switches) in a uniform way. It should also allow an implementation in which the common cases of procedure call and return are extremely fast, preferably as fast as unconditional jumps in the normal case. This paper describes such a mechanism and methods for its efficient implementation.
Butler W. Lampson
ASPLOS1
1981 The Memory System of a High-Performance Personal Computer
abstract
The memory system of the Dorado, a compact high- performance personal computer, has very high I/O bandwidth, a large paged virtual memory, a cache, and heavily pipelined control; this paper discusses all of these in detail. Relatively low-speed I/O devices transfer single words to or from the cache; fast devices, such as a color video display, transfer directly to or from main storage while the processor uses the cache. Virtual addresses are used in the cache and for all I/O transfers. The memory is controlled by a seven-stage pipeline, which can deliver a peak main-storage bandwidth of 533 million bits/s to service fast I/O devices and cache misses. Interesting problems of synchronization and scheduling in this pipeline are discussed. The paper concludes with some performance measurements that show, among other things, that the cache hit rate is over 99 percent.
Douglas W. Clark, Butler W. Lampson, Kenneth A. Pier
IEEE Trans. Computers2
1980 A Processor for a High-Performance Personal Computer
abstract
This paper describes the design goals, micro- architecture, and implementation of the microprogrammed processor for a compact high performance personal computer. This computer supports a range of high level language environments and high bandwidth I/O devices. Besides the processor, it has a cache, a memory map, main storage, and an instruction fetch unit; these are described in other papers. The processor can be shared among 16 microcoded tasks, performing microcode context switches on demand with essentially no overhead. Conditional branches are done without any lookahead or delay. Microinstructions are fairly tightly encoded, and use an interesting variant on control field sharing. The processor implements a large number of internal registers, hardware stacks, a cyclic shifter/masker, and an arithmetic/logic unit, together with external data paths for instruction fetching, memory interface, and I/O, in a compact, pipe-lined organization.
Butler W. Lampson, Kenneth A. Pier
ISCA1
1979 Experience with Processes and Monitors in Mesa (Summary)
abstract
In early 1977 we began to design the concurrent programming facilities of Pilot, a new operating system for a personal computer [5]. Pilot is a fairly large program itself (25,000 lines of Mesa code). In addition, it supports some large applications, ranging from data base management to internetwork message transmission, which are heavy users of concurrency (our experience with some of these applications is discussed in the paper). We intended the new facilities to be used at least for the following purposes:
Butler W. Lampson, David D. Redell
SOSP1
1979 An Open Operating System for a Single-User Machine
abstract
The file system and modularization of a single-user operating system are described. The main points of interest are the openness of the system, which establishes no sharp boundary between itself and the user's programs, and the techniques used to make the system robust.
Butler W. Lampson, Robert F. Sproull
SOSP1
1978 Proof Rules for the Programming Language Euclid
Ralph L. London, John V. Guttag, James J. Horning, Butler W. Lampson, James G. Mitchell, Gerald J. Popek
Acta Informatica4
1967 A scheduling philosophy for multi-processing systems
abstract
One of the essential parts of any computer system is a mechanism for allocating the processors of the system among the various competitors for their services. These allocations must be performed in even the simplest system, for example, by the action of an operator at the console of the machine. In larger systems more automatic techniques are usually adopted; batching of jobs, interrupts and interval timers are the most common ones. As the use of such techniques becomes more frequent, it becomes increasingly difficult to maintain the conventional view of a computer as a system which does only one job at a time; even though it may at any given instant be executing a particular sequence of instructions, its attention is switched from one such sequence to another with such rapidity that it appears desirable to describe the system in a manner which accommodates this multiplexing more naturally. It is worthwhile to observe that these remarks apply to any large modern computer system and not just to one which attempts to service a number of on-line users simultaneously.
Butler W. Lampson
SOSP1