Advertisement

Research and Advances

Predicative programming Part II

Part I of this two-part paper presented a new semantics of programs. Each program is considered to be a predicate, in a restricted notation, that specifies the observable behavior of a computer executing the program. We considered a variety of notations, including assignment, composition (semicolon), deterministic choice (if), nondeterministic choice, definition (nonrecursive and recursive), and variable declaration. We did not consider any input or output notations, or concurrency; that is the subject of Part II. We assume the reader is familiar with Part I, so that we can build on ideas presented there.
Research and Advances

Online help systems: a conspectus

Users of computer systems are now accustomed to the convenience of online help systems and generally demand these amenities in the computers they buy. However, recent studies as to the efficacy of certain types of assistance for certain classes of users raise important questions for designers.
Research and Advances

Predicative programming Part I

Programs are given a new semantics with the merit that a specification written as a first-order predicate can be refined, step by step, to a program via the rules of Predicate Calculus. The semantics allows a free mixture of predicate and programming notations, and manipulation of programs.
Research and Advances

Some negative results concerning prime number generators

Programs attributed to Wirth and Misra for generating the prime numbers up to a specified limit are investigated. It is shown that Wirth's program is incorrect according to three increasingly weak criteria, and a composite number is exhibited that the program accepts as prime. This is the smallest known counterexample, and could not have been found by the usual method of program testing—the program would run for trillions of years on the fastest computer before reaching it! Closely related counterexamples are given to a conjecture of Misra concerning his program. An appendix gives a particularly simple algorithmic proof of the Chinese remainder theorem.
Research and Advances

Why students reject engineering teaching careers

Many of the country's brightest engineering students have been passing up graduate school for the challenge and high salaries of industry. This is drying up the supply of new Ph.D.s interested in teaching at a time when U.S. engineering schools are struggling to cope with swelling enrollments and a severe faculty shortage.

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More