Mark D. Weiser

dblp:w/MarkWeiser · DBLP profile ↗
← Back
23ranked-venue papers
11as first author
0since 2021 · last 1999
—ORCID · none

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

Software engineering, systems software and programming languages · 14 · 7 first-authorHuman-computer interaction and ubiquitous computing · 5 · 2 first-authorDatabases, data management, data science and information retrieval · 2 · 1 first-authorSystems, architecture and hardware · 1Security and privacy · 1 · 1 first-authorTheory of computation · 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
Runtime systems and virtual machines · 47% Operating systems · 15% Program analysis · 11%
Human-computer interaction and pervasive computing
5 papers
Interaction techniques and input · 50% Ubiquitous computing and smart environments · 31% User interface design and tools · 15%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Energy-efficient computing · 100%
Databases, data mining, and information retrieval
1 paper
Information retrieval · 50% Data models and query languages · 50%

Topics — the 19 heaviest of 28, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Runtime systems and virtual machines
garbage collection
0.021990
Combining Generational and Conservative Garbage Collection: Framework and Implementations · POPL 1990
The Portable Common Runtime Approach to Interoperability · SOSP 1989
Energy-efficient computing
power management
0.011994
Scheduling for Reduced CPU Energy · OSDI 1994
Runtime systems and virtual machines › garbage collection
generational garbage collection
0.011990
Combining Generational and Conservative Garbage Collection: Framework and Implementations · POPL 1990
Runtime systems and virtual machines
language runtime
0.011989
The Portable Common Runtime Approach to Interoperability · SOSP 1989
Interaction techniques and input › selection techniques › command selection
menu interaction
0.011988
An empirical comparison of pie vs. linear menus · CHI 1988
Interaction techniques and input › selection techniques › command selection › menu interaction
pie menus
0.011988
An empirical comparison of pie vs. linear menus · CHI 1988
Program analysis › static analysis
program slicing
0.021984
Program Slicing · IEEE Trans. Software Eng. 1984
Program Slicing · ICSE 1981
Information retrieval › document organization
hypertext
0.011986
TEXTNET: A Network-Based Approach to Text Handling · ACM Trans. Inf. Syst. 1986
Operating systems › resource management › process management
CPU scheduling
0.011994
Scheduling for Reduced CPU Energy · OSDI 1994
Programming languages and type systems
programming environment
0.011985
Continous Execution: The VisiProg Environment · ICSE 1985
Operating systems
interactive systems
0.011993
Using Threads in Interactive Systems: A Case Study · SOSP 1993
Program analysis
data flow analysis
0.011984
Program Slicing · IEEE Trans. Software Eng. 1984
Computing education
programming education
0.011983
Programming Problem Representation in Novice and Expert Programmers · Int. J. Man Mach. Stud. 1983
Operating systems › resource management
memory management
0.011990
Combining Generational and Conservative Garbage Collection: Framework and Implementations · POPL 1990
Programming languages and type systems
language design
0.011989
Experiences Creating a Portable Cedar · PLDI 1989
Operating systems › operating system design
OS abstractions
0.011989
The Portable Common Runtime Approach to Interoperability · SOSP 1989
User interface design and tools › graphical user interface
object-oriented user interface
0.011986
TEXTNET: A Network-Based Approach to Text Handling · ACM Trans. Inf. Syst. 1986
Debugging and program repair
fault localization
0.011984
Program Slicing · IEEE Trans. Software Eng. 1984
Empirical software engineering
developer studies
0.011983
Programming Problem Representation in Novice and Expert Programmers · Int. J. Man Mach. Stud. 1983

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

thread statistics analysis · 0.0code reading · 0.0c as intermediate language · 0.0target selection task · 0.0fitts's law · 0.0exploratory user study · 0.0empirical comparison · 0.0design exploration · 0.0
YearPublicationVenuePosition
1999 How Computers Will Be Used Differently in the Next Twenty Years
abstract
How computers will be used will be determined in part by technology trends, and in part by trends in the needs of people for computation, and by changes in living and activities. These changes are parts of feedback loops: for example, changes in needs cause changes in investments which cause changes in technology which enable changes in lifestyle. Beyond a few years the scene is no more predictable in shape than any other chaotic system. I nonetheless propose some strong attractors based on what seem to be stable regions extrapolated from the present.
Mark D. Weiser
S&P1
1997 Software Engineering That Matters to People (Abstract)
abstract
No abstract available.
Mark D. Weiser
ICSE1
1994 Scheduling for Reduced CPU Energy
Mark D. Weiser, Brent B. Welch, Alan J. Demers, Scott Shenker
OSDI1
1994 Creating the Invisible Interface (invited talk)
abstract
For thirty years, most interface design, and most computer design, has been headed down the path of the “dramatic” machine. Its highest ideal is to make a computer so exciting, so wonderful so interesting, that we never want to be without it. A less-traveled path I call the “invisible”; its highest ideal is to make a computer so imbedded, so fitting, so natural, that we use it without even thinking about it. (I have also called this notion “Ubiquitous Computing.”) I believe that in the next twenty years the second path will come to dominate. But this will not be easy; very little of our current systems infrastructure will survive. We have been building versions of the infrastructure-to-come at PARC for the past four years, in the form of inch-, foot-, and yard-sized computers we call Tabs, Pads, and Boards. In this talk I will describe the humanistic origins of the “invisible” ideal in post-modernist thought. I will then describe some of our prototypes, how they succeed and fail to be invisible, and what we have learned. I will illustrate new systems issues that user interface designers will face when creating invisibility. And I will indicate some new directions we are now exploring, including the famous “dangling string” display.
Mark D. Weiser
ACM Symposium on User Interface Software and Technology1
1993 Using Threads in Interactive Systems: A Case Study
abstract
We describe the results of examining two large research and commercial systems for the ways that they use threads. We used three methods: analysis of macroscopic thread statistics, analysis the microsecond spacing between thread events, and reading the implementation code. We identify ten different paradigms of thread usage: defer work, general pumps, slack processes, sleepers, one-shots, deadlock avoidance, rejuvenation, serializers, encapsulated fork and exploiting parallelism. While some, like defer work, are well known, others have not been previously described. Most of the paradigms cause few problems for programmers and help keep the resulting system implementation understandable. The slack process paradigm is both particularly effective in improving system performance and particularly difficult to make work well. We observe that thread priorities are difficult to use and may interfere in unanticipated ways with other thread primitives and paradigms. Finally, we glean from the practices in this code several possible future research topics in the area of thread abstractions.
Carl H. Hauser, Marvin Theimer, Brent B. Welch, Mark D. Weiser
SOSP5
1990 Combining Generational and Conservative Garbage Collection: Framework and Implementations
abstract
Two key ideas in garbage collection are generational collection and conservative pointer-finding. Generational collection and conservative pointer-finding are hard to use together, because generational collection is usually expressed in terms of copying objects, while conservative pointer-finding precludes copying. We present a new framework for defining garbage collectors. When applied to generational collection, it generalizes the notion of younger/older to a partial order. It can describe traditional generational and conservative techniques, and lends itself to combining different techniques in novel ways. We study in particular two new garbage collectors inspired by this framework. Both these collectors use conservative pointer-finding. The first one is based on a rewrite of an existing trace-and-sweep collector to use one level of generation. The second one has a single parameter, which controls how objects are partitioned into generations: the value of this parameter can be changed dynamically with no overhead. We have implemented both collectors and present measurements of their performance in practice.
Alan J. Demers, Mark D. Weiser, Barry Hayes, Hans-Juergen Boehm, Daniel G. Bobrow, Scott Shenker
POPL2
1989 Experiences Creating a Portable Cedar
abstract
Cedar is the name for both a language and an environment in use in the Computer Science Laboratory at Xerox PARC since 1980. The Cedar language is a superset of Mesa, the major additions being garbage collection and runtime types. Neither the language nor the environment was originally intended to be portable, and for many years ran only on D-machines at PARC and a few other locations in Xerox. We recently re-implemented the language to make it portable across many different architectures. Our strategy was, first, to use machine-dependent C code as an intermediate language, second, to create a language-independent layer known as the Portable Common Runtime, and third, to write a relatively large amount of Cedar-specific runtime code in a subset of Cedar itself. By treating C as an intermediate code we are able to achieve reasonably fast compilation, very good eventual machine code, and all with relatively small programmer effort. Because Cedar is a much richer language than C, there were numerous issues to resolve in performing an efficient translation and in providing reasonable debugging. These strategies will be of use to many other porters of high-level languages who may wish to use C as an assembler language without giving up either ease of debugging or high performance. We present a brief description of the Cedar language, our portability strategy for the compiler and runtime, our manner of making connections to other languages and the Unix* operating system, and some measures of the performance of our “Portable Cedar”.
Russell R. Atkinson, Alan J. Demers, Carl H. Hauser, Peter Kessler, Mark D. Weiser
PLDI6
1989 The Portable Common Runtime Approach to Interoperability
abstract
Operating system abstractions do not always reach high enough for direct use by a language or applications designer. The gap is filled by language-specific runtime environments, which become more complex for richer languages (CommonLisp needs more than C+ +, which needs more than C). But language-specific environments inhibit integrated multi-lingual programming, and also make porting hard (for instance, because of operating system dependencies). To help solve these problems, we have built the Portable Common Runtime (PCR), a language-independent and operating-system-independent base for modern languages. PCR offers four interrelated facilities: storage management (including universal garbage collection), symbol binding (including static and dynamic linking and loading), threads (lightweight processes), and low-level I/O (including network sockets). PCR is “common” because these facilities simultaneously support programs in several languages. PCR supports C. Cedar, Scheme, and CommonLisp intercalling and runs pre-existing C and CommonLisp (Kyoto) binaries. PCR is “portable” because it uses only a small set of operating system features. The PCR source code is available for use by other researchers and developers.
Mark D. Weiser, Alan J. Demers, Carl H. Hauser
SOSP1
1988 An empirical comparison of pie vs. linear menus
abstract
Menus are largely formatted in a linear fashion listing items from the top to bottom of the screen or window. Pull down menus are a common example of this format. Bitmapped computer displays, however, allow greater freedom in the placement, font, and general presentation of menus. A pie menu is a format where the items are placed along the circumference of a circle at equal radial distances from the center. Pie menus gain over traditional linear menus by reducing target seek time, lowering error rates by fixing the distance factor and increasing the target size in Fitts's Law, minimizing the drift distance after target selection, and are, in general, subjectively equivalent to the linear style.
John R. Callahan, Don Hopkins, Mark D. Weiser, Ben Shneiderman
CHI3
1988 Exploratory evaluation of a planar foot-operated cursor-positioning device
abstract
The use of feet instead of hands to perform workstation cursor-positioning and related functions has been the subject of an on-going investigation. In the exploratory study reported here, a particular foot-operated device, the planar slide mole, was assessed against a mouse in a target-selection task. The study showed that novices can learn to select fairly small targets using a mole; for a target size of 1/8″ square, the response time equaled that of the mouse when keyboard homing time was taken into account.
Glenn F. Pearson, Mark D. Weiser
CHI2
1988 Minimizing Communication for Synchronizing Parallel Dataflow Programs
Lee Badger, Mark D. Weiser
ICPP (2)2
1988 Garbage Collection in an Uncooperative Environment
abstract
Abstract We describe a technique for storage allocation and garbage collection in the absence of significant co‐operation from the code using the allocator. This limits garbage collection overhead to the time actually required for garbage collection. In particular, application programs that rarely or never make use of the collector no longer encounter a substantial performance penalty. This approach greatly simplifies the implementation of languages supporting garbage collection. It further allows conventional compilers to be used with a garbage collector, either as the primary means of storage reclamation, or as a debugging tool. Our approach has two potential disadvantages. First, some garbage may fail to be reclaimed. Secondly, we use a ‘stop and collect’ approach, thus making the strategy unsuitable for applications with severe real‐time constraints. We argue that the first problem is, to some extent, inherent in any garbage collection system. Furthermore, based on our experience, it is usually not significant in practice. In spite of the second problem, we have had favourable experiences with interactive applications, including some that use a heap of several megabytes.
Hans-Juergen Boehm, Mark D. Weiser
Softw. Pract. Exp.2
1987 Incremental re-execution of programs
Raghu Karinthi, Mark D. Weiser
PLDI2
1986 Of moles and men: the design of foot controls for workstations
abstract
Workstations require use of the hands both for text entry and for cursor-positioning or menu-selection. The physical arrangement does not allow these two tasks to be done concurrently. To remove this restriction, various alternative input devices have been investigated. This work focuses on the class of foot-operated computer input devices, called moles here. Appropriate topologies for foot movement are identified, and several designs for realising them are discussed.
Glenn F. Pearson, Mark D. Weiser
CHI2
1986 TEXTNET: A Network-Based Approach to Text Handling
abstract
Textnet is a new system for structuring text. The Textnet approach uses one uniform data structure to capture graphlike pools of text, as well as embedded hierarchical structures. By using a semantic network formalism of nodes connected by typed links, the relationships between neighboring pieces of text are made explicit. Also described is our partial implementation of the Textnet approach, which makes use of an object-oriented window/menu-driven user interface. Users peruse the network by moving among object menus or by reading text along a path through the network. In addition, critiquing, reader linking, searching, and jumping are easily accessible operations. Finally, the results of a short trial with users are presented.
Randall H. Trigg, Mark D. Weiser
ACM Trans. Inf. Syst.2
1985 Continous Execution: The VisiProg Environment
Peter B. Henderson, Mark D. Weiser
ICSE2
1985 Experience with a Dataflow Datatype
Mark D. Weiser
Comput. Lang.1
1985 CWSH: The Windowing Shell of the Maryland Window System
abstract
Abstract The Maryland Window System is a set of programs for manipulating multiple overlapping windows on CRT terminals. Part of the package is the window shell, called the CWSH. The CWSH uses the windowing system to create multiple windows running shell processes. The CWSH differs from the WSH and BRUWIN window systems by permitting processes running in the windows access to window functionality, and by more fully implementing a Unix terminal within each window. Unlike BRUWIN and WSH, CWSH permits programs, such as other shells and editors, that intensively examine or modify their terminal environment to run unmodified in its windows.
Mark D. Weiser
Softw. Pract. Exp.1
1984 Program Slicing
abstract
Program slicing is a method for automatically decomposing programs by analyzing their data flow and control flow. Starting from a subset of a program's behavior, slicing reduces that program to a minimal form which still produces that behavior. The reduced program, called a ``slice,'' is an independent program guaranteed to represent faithfully the original program within the domain of the specified subset of behavior. Some properties of slices are presented. In particular, finding statement-minimal slices is in general unsolvable, but using data flow analysis is sufficient to find approximate slices. Potential applications include automatic slicing tools for debuggng and parallel processing of slices.
Mark D. Weiser
IEEE Trans. Software Eng.1
1983 Programming Problem Representation in Novice and Expert Programmers
Mark D. Weiser, Joan Shertz
Int. J. Man Mach. Stud.1
1983 Reconstructing Sequential Behavior from Parallel Behavior Projections
Mark D. Weiser
Inf. Process. Lett.1
1982 Implementing a Compiler-Based Test Tool
abstract
Abstract DAISTS (Data Abstraction Implementation, Specification and Testing System)1 is a compiler tool‐base for program development. The compiler combines an automated ‘oracle’, which checks consistency conditions derived from algebraic specifications of modules, with run‐time routines that judge the quality of a user's test data according to statement and expression coverage criteria. This paper describes some of the implementation techniques used in DAISTS.
Paul R. McMullin, John D. Gannon, Mark D. Weiser
Softw. Pract. Exp.3
1981 Program Slicing
Mark D. Weiser
ICSE1