Observations of Fallibility in Applications of Modern Programming Methodologies
- 1 September 1976
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. SE-2 (3), 195-207
- https://doi.org/10.1109/tse.1976.233815
Abstract
Errors, inconsistencies, or confusing points are noted in a variety of published algorithms, many of which are being used as examples in formulating or teaching principles of such modern programming methodologies as formal specification, systematic construction, and correctness proving. Common properties of these points of contention are abstracted. These properties are then used to pinpoint possible causes of the errors and to formulate general guidelines which might help to avoid further errors. The common characteristic of mathematical rigor and reasoning in these examples is noted, leading to some discussion about fallibility in mathematics, and its relationship to fallibility in these programming methodologies. The overriding goal is to cast a more realistic perspective on the methodologies, particularly with respect to older methodologies, such as testing, and to provide constructive recommendations for their improvement.Keywords
This publication has 14 references indexed in Scilit:
- Structured programming and formal specificationIEEE Transactions on Software Engineering, 1975
- Toward a theory of test data selectionIEEE Transactions on Software Engineering, 1975
- Specification techniques for data abstractionsIEEE Transactions on Software Engineering, 1975
- An assertion language for data structuresPublished by Association for Computing Machinery (ACM) ,1975
- How to write correct programs and know itPublished by Association for Computing Machinery (ACM) ,1975
- The synthesis of loop predicatesCommunications of the ACM, 1974
- An experiment in structured programmingBIT Numerical Mathematics, 1972
- Fidelity in Mathematical Discourse: Is One and One Really Two?The American Mathematical Monthly, 1972
- Proof of a programCommunications of the ACM, 1971
- Programming by action clustersBIT Numerical Mathematics, 1969