Network


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

Hotspot


Dive into the research topics where Edsger W. Dijkstra is active.

Publication


Featured researches published by Edsger W. Dijkstra.


Numerische Mathematik | 1959

A note on two problems in connexion with graphs

Edsger W. Dijkstra

We consider n points (nodes), some or all pairs of which are connected by a branch; the length of each branch is given. We restrict ourselves to the case where at least one path exists between any two nodes. We now consider two problems. Problem 1. Constrnct the tree of minimum total length between the n nodes. (A tree is a graph with one and only one path between every two nodes.) In the course of the construction that we present here, the branches are subdivided into three sets: I. the branches definitely assignec~ to the tree under construction (they will form a subtree) ; II. the branches from which the next branch to be added to set I, will be selected ; III. the remaining branches (rejected or not yet considered). The nodes are subdivided into two sets: A. the nodes connected by the branches of set I, B. the remaining nodes (one and only one branch of set II will lead to each of these nodes), We start the construction by choosing an arbitrary node as the only member of set A, and by placing all branches that end in this node in set II. To start with, set I is empty. From then onwards we perform the following two steps repeatedly. Step 1. The shortest branch of set II is removed from this set and added to


Communications of The ACM | 1974

Self-stabilizing systems in spite of distributed control

Edsger W. Dijkstra

The synchronization task between loosely coupled cyclic sequential processes (as can be distinguished in, for instance, operating systems) can be viewed as keeping the relation “the system is in a legitimate state” invariant. As a result, each individual process step that could possibly cause violation of that relation has to be preceded by a test deciding whether the process in question is allowed to proceed or has to be delayed. The resulting design is readily—and quite systematically—implemented if the different processes can be granted mutually exclusive access to a common store in which “the current system state” is recorded.


Communications of The ACM | 1975

Guarded commands, nondeterminacy and formal derivation of programs

Edsger W. Dijkstra

So-called “guarded commands” are introduced as a building block for alternative and repetitive constructs that allow nondeterministic program components for which at least the activity evoked, but possibly even the final state, is not necessarily uniquely determined by the initial state. For the formal derivation of programs expressed in terms of these constructs, a calculus will be be shown.


The origin of concurrent programming | 2002

Cooperating sequential processes

Edsger W. Dijkstra

This chapter is intended for all those who expect that in their future activities they will become seriously involved in the problems that arise in either the design or the more advanced applications of digital information processing equipment; they are further intended for all those who are just interested in information processing.


Communications of The ACM | 1965

Solution of a problem in concurrent programming control

Edsger W. Dijkstra

A number of mainly independent sequential-cyclic processes with restricted means of communication with each other can be made in such a way that at any moment one and only one of them is engaged in the “critical section” of its cycle.


Acta Informatica | 1971

Hierarchical ordering of sequential processes

Edsger W. Dijkstra

SummaryOne of the primary functions of an operating system is to rebuild a machine that must be regarded as non-deterministic (on account of cycle stealing and interrupts) into a more or less deterministic automaton. Taming the degree of indeterminacy in steps will lead to a layered operating system. A bottom layer will be discussed and so will the adequacy of the interface it presents. An analysis of the requirements of the correctness proofs will give us an insight into the logical issues at hand. A “director-secretary” relationship will be introduced to reflect a possible discipline in the use of sequencing primitives.


Archive | 1990

Predicate calculus and program semantics

Edsger W. Dijkstra; Carel S. Scholten

This text gives a self-contained foundation of predicate transformer semantics by making extensive use of the predicate calculus. The semantics of the repetitive construct is defined in terms of weakest and strongest solutions in terms of the weakest precondition and the weakest liberal precondition, the notion of determinacy is defined it is shown how to cope unbounded nondeterminacy without using transfinite induction.


Communications of The ACM | 1979

Go to statement considered harmful

Edsger W. Dijkstra

For a number of years I have been familiar with the observation that the quality of programmers is a decreasing function of the density of go to statements in the programs they produce. More recently I discovered why the use of the go to statement has such disastrous effects, and I became convinced that the go to statement should be abolished from all “higher level” programming languages (i.e. everything except, perhaps, plain machine code). At that time I did not attach too much importance to this discovery; I now submit my considerations for publication because in very recent discussions in which the subject turned up, I have been urged to do so.


Information Processing Letters | 1983

Derivation of a termination detection algorithm for distributed computations

Edsger W. Dijkstra; W. H. J. Feijen; A. J. M. van Gasteren

The purpose of this paper is twofold, viz. to present a new [0] algorithm for the detection of the termination of a distributed computation and to demonstrate how the algorithm can be derived in a number of steps. We consider N machines, each of which is either active or passive. Only active machines send so-called ‘messages’ to other machines; message transmission is considered instantaneous. After having received a message, a machine is active; the receipt of a message is the only mechanism that triggers for a passive machine its transition to activity. For each machine, the transition from the active to the passive state may occur ‘spontaneously’. From the above it follows that the state in which all machines are passive is stable: the distributed computation with which the messages are associated is said to have terminated. The purpose of the algorithm to be designed is to enable one of the machines, machine nr.0 say, to detect that this stable state has been reached; it is furthermore required that the detection algorithm can cope with any distribution of the activity at the moment machine nr.0 initiates the detection algorithm. For brevity’s sake we shall denote the process by which termination is to be detected by the ‘probe’. The probe obviously has to involve, in some way or another, all the other machines. Two orderly configurations present themselves: an (N l)point star with machine nr.0 at its centre or the N machines arranged in a ring. Since the latter gives rise to less signalling traffic, we adopt the circular arrangement, more precisely, we assume the availability of communication facilities such that (i) machine nr.0 can initiate the probe by sending a signal to machine nr.N 1, (ii) machine nr.i + 1 can propagate the probe around the ring by sending a signal to machine nr.i These signalling facilities are assumed to be available, irrespective of the facilities for message sending. Note that being passive (with respect to the distributed computation proper) does not prevent a machine from partaking in the above signalling. The propagation of the probe around the ring allows us to describe that probe as sending a token around the ring. The token being returned to machine nr.0 will be an essential component of the justification of the conclusion that all machines are passive. As usual, the system state will be captured by an invariant, P say. In the sequel P will be constructed in a number of steps, each step consisting of an extension of the state space considered and an appropriate adjustment of P


In Selected Writings on Computing: A personal Perspective (1982), pp. 60-66, doi:10.1007/978-1-4612-5695-3_12 | 1982

On the Role of Scientific Thought

Edsger W. Dijkstra

Essentially, this essay contains nothing new; on the contrary, its subject matter is so old that sometimes it seems forgotten. It is written in an effort to undo some of the more common misunderstandings that I encounter (nearly daily) in my professional world of computing scientists, programmers, computer users and computer designers, and even colleagues engaged in educational politics. The decision to write this essay now was taken because I suddenly realized that my confrontation with this same pattern of misunderstanding was becoming a regular occurrence.

Collaboration


Dive into the Edsger W. Dijkstra's collaboration.

Top Co-Authors

Avatar

A. J. M. van Gasteren

Eindhoven University of Technology

View shared research outputs
Top Co-Authors

Avatar

Alain J. Martin

California Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

W. H. J. Feijen

Eindhoven University of Technology

View shared research outputs
Top Co-Authors

Avatar

Jayadev Misra

University of Texas at Austin

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Josyula R. Rao

University of Texas at Austin

View shared research outputs
Researchain Logo
Decentralizing Knowledge