Hard-Soft News

Новости железа и софта

The Classical Computer Science Papers Every Programmer Should Read

Here is the list of papers on computing which I consider the Golden Hall of Classics of Computer Science.  We have already read most of these things in our textbooks and heard them on lectures. But I think it is still refreshing and broadening the mind to see the original publications that grounded many fields of CS. The text are not sorted in any way. The list is going to be updated and you are welcome to send the links to the texts you consider as important as those below.
A note about copyrights: while all these papers are freely available online (i.e. not pay-walled), I don’t store the files on my server. Following are only the links that point elsewhere.

Read more…

An Axiomatic Basis for Computer Programming, C. A. R. HOARE, 1969.

While Mr. Hoare is well known for quite many things, including the QuickSort algorithm, this article is an excellent insight into the logical foundations of computer programming.

 

Predicate Dispatching: A Uni ed Theory of Dispatch, Michael Ernst, et al., 1998.

Describes a method for dispatching functions based not on a static set of rules, but instead as the traversal of a decision tree that could be built at compile-time and extended incrementally at runtime.

 

Cooperating sequential processes, E.W.Dijkstra, 1965

While Dijkctra’s is quite famous for many CS discoveries and sarcastic remarks, this article describes the methods of synchronization which gained much of importance with the growth of multi-threaded programming. The sheer weight of the heady topics assembled in one place is stunning to observe.

 

Fundamental Concepts in Programming LanguagesChristopher Strachey, 1967

L-values, R-values, parameter passing, variable binding, functions as data, parametric polymorphism, ad hoc polymorphism… All these concepts are explained in this classical text with crystal clarity.

 

On Understanding Types, Data Abstraction, and PolymorphismLuca Cardelli, Peter Wegner, 1985

An excellent article on the foundations of types theory and OOP.

 

Time, Clocks, and the Ordering o f Events in a Distributed SystemLeslie Lamport, 1978

This paper presents a single-handed definitions of the two branches of study in distributed computing: the reasoning of event ordering in distributed systems and protocols, and the state machine approach to redundancy

 

Sketchpad: A Man-Machine Graphical Communication SystemI. E. Sutheland, 1963

The pioneering work on computer graphics

 

To be updated…

Comments are closed.