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

Russell R. Atkinson

dblp:63/1137 · DBLP profile ↗
← Back
5ranked-venue papers
3as first author
0since 2021 · last 1995
—ORCID · none

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

Software engineering, systems software and programming languages · 5 · 3 first-authorSystems, architecture and hardware · 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
3 papers
Concurrent programming · 33% Compilers and program optimization · 29% Runtime systems and virtual machines · 29%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Integrated circuit design · 52% Distributed systems · 17% Memory systems · 16%

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

TopicWeightPapersLastEvidence papers
Integrated circuit design › VLSI design
VLSI processor design
0.011987
The Dragon Processor · ASPLOS 1987
Concurrent programming
synchronization
0.021979
Specification and Proof Techniques for Serializers · IEEE Trans. Software Eng. 1979
Parallelism and Synchronization in Actor Systems · POPL 1977
Programming languages and type systems
language design
0.011989
Experiences Creating a Portable Cedar · PLDI 1989
Concurrent programming › synchronization
monitors
0.021979
Specification and Proof Techniques for Serializers · IEEE Trans. Software Eng. 1979
Parallelism and Synchronization in Actor Systems · POPL 1977
Distributed systems
distributed coordination
0.011979
Specification and Proof Techniques for Serializers · IEEE Trans. Software Eng. 1979
Concurrent programming › concurrency models
actor model
0.011977
Parallelism and Synchronization in Actor Systems · POPL 1977
Concurrent programming
message passing
0.011977
Parallelism and Synchronization in Actor Systems · POPL 1977

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

c as intermediate language · 0.0VLSI design · 0.0specification language · 0.0proof techniques · 0.0proof technique · 0.0actor model · 0.0
YearPublicationVenuePosition
1995 Ropes: An Alternative to Strings
abstract
Abstract Programming languages generally provide a ‘string’ or ‘text’ type to allow manipulation of sequences of characters. This type is usually of crucial importance, since it is normally mentioned in most interfaces between system components. We claim that the traditional implementations of strings, and often the supported functionality, are not well suited to such general‐purpose use. They should be confined to applications with specific, and unusual, performance requirements. We present ‘ropes’ or ‘heavyweight’ strings as an alternative that, in our experience leads to systems that are more robust, both in functionality and in performance. Ropes have been in use in the Cedar environment almost since its inception, but this appears to be neither well‐known, nor discussed in the literature. The algorithms have been gradually refined. We have also recently built a second similar, but somewhat lighter weight, C‐language implementation, which is included in our publically released garbage collector distribution. We describe the algorithms used in both, and give some performance measurements for the C version.
Hans-Juergen Boehm, Russell R. Atkinson, Michael F. Plass
Softw. Pract. Exp.2
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
PLDI1
1987 The Dragon Processor
abstract
The Xerox PARC Dragon is a VLSI research computer that uses several techniques to achieve dense code and fast procedure calls in a system that can support multiple processors on a central high bandwidth memory bus.
Russell R. Atkinson, Edward M. McCreight
ASPLOS1
1979 Specification and Proof Techniques for Serializers
abstract
This paper presents a specification language, implementation mechanism, and proof techniques for problems involving the arbitration of concurrent requests to shared protected resources whose integrity must be preserved. This mechanism is the serializer, which may be described as a kind of protection mechanism, in that it prevents improper orders of access to a protected resource. Serializers are a more structured form of the monitor mechanism of Brinch Hansen and Hoare.
Carl Hewitt, Russell R. Atkinson
IEEE Trans. Software Eng.2
1977 Parallelism and Synchronization in Actor Systems
abstract
This paper presents a mechanism for the arbitration of parallel requests to shared resources. This mechanism is the serialize, which may be described as a kind of protection mechanism, in that it prevents improper orders of access to a protected resource. The mechanism is a generalization and improvement of the monitor mechanism of Brinch-Hansen and Hoare.Serializers attempt to systematize and abstract desirable structural features of synchronization control structure into a coherent language construct. They represent an improvement in the modularity of synchronization over monitors in several respects. Monitors synchronize requests by providing a pair of operations for each request type [examples are STARTREAD/ENDREAD and STARTWRITE/ENDWRITE for the readers-writers problems]. Such a pair of operations must be used in a certain order for the synchronization to work properly, yet nothing in the monitors construct enforces this use. Serializers incorporate this structural aspect of synchronization in a unified mechanism to guarantee proper check-in and check-out. In scheduling access to a protected resource, it is often desired to wait in a queue for a certain condition before it continues execution. Monitors require that a process waiting in a queue will remain dormant forever, unless another process explicitly signals to the dormant process that it should continue. Serializers improve the modularity of synchronization by providing that the condition for resuming execution must be explicitly stated when a process enters a queue making it it unnecessary for processes to signal other processes. Each process determines for itself the conditions required for its further execution.The behavior of a serializer is defined using the actor message-passing model of computation. Different versions of the "readers-writers" problems are used to illustrate how the structure of a serializer corresponds in a natural way to the structure of the arbitration problem to be solved. The correspondence makes it easier to synthesize a scheduler from behavioral specifications and to verify that an implementation satisfies its specifications.No claim is made for the "completeness" of the serializer mechanism, beyond showing that semaphores can be implemented using serializers. Further, no "complete" solution is proposed to the "no-starvation" specification which requires that a resource reply to each request which it receives. Rather, it is shown for some simple examples that serializers represent a step toward better structuring of parallel access to shared resources, and that proofs that starvation is impossible for these examples are easier with serializers than with some of the currently existing mechanisms for controlling parallel access to resources.
Russell R. Atkinson, Carl Hewitt
POPL1