Opinion
Programming pearls: Writing correct programs
In the late 1960s people were talking about the promise of programs that verify the correctness of other programs. Unfortunately, it is now the middle of the 1980s, and, with precious few exceptions, there is still little more than talk about automated verification systems. Despite unrealized expectations, however, the research on program verification has given us something far more valuable than a black box that gobbles programs and flashes “good” or “bad”—we now have a fundamental understanding of computer programming.
The purpose of this column is to show how that fundamental understanding can help programmers write correct programs. But before we get to the subject itself, we must keep it in perspective. Coding skill is just one small part of writing correct programs. The majority of the task is the subject of the three previous columns: problem definition, algorithm design, and data structure selection. If you perform those tasks well, then writing correct code is usually easy.
From Washington: Secrecy versus scientific communication
There are many issues that affect the health of science but none more pervasive than the problem of “secrecy vs. scientific communication.” Unfortunately much of the debate on this issue, which is concern to all scientists, is being held behind closed doors among a few “key people.” The status of this debate was discussed in the August issue of Communications. More recent developments are reviewed here.
From Washington: Scientific communications and national security
The Reagan Administration has given considerable attention to the issue of “technology transfer,” by which they mean the dissemination of unclassified, but militarily sensitive U.S. technology to Eastern Bloc countries. There are some 44 separate groups in 10 or more U.S. departments either studying the subject or executing present policy, according to Louis T. Montulli, formerly of the White House Office of Science and Technology Policy.
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 InvolvedCommunications 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