|
|
The Use of Literate Program Development ToolsPaul Vickers, John Pardoe & Stu Wade.
Contents
1. IntroductionThe Software Development Group (SDG) has for several years been using literate programming techniques and tools for teaching program design to its students at the Liverpool Polytechnic. Literate Programming, as described by Knuth, is considered by the group to be an excellent method for the production of well-documented, more maintainable and well-designed software. The SDG has developed a literate programming support environment called SWRPAS. It utilises many of the ideas put forth by Knuth in a Pascal-based environment using techniques of structured programming by step-wise refinement. 2. The Philosophy of SWR Pascal2.1 Background
2.2 Why SWR Pascal?"The beginning of wisdom for a computer programmer is to recognise the difference between getting a program to work and getting it right" M.A. Jackson [JAC75a].
3. Experiences of Using SWR Pascal
4. Future Trends and Other Tools
5. References[JAC75a]Principles of Program Design; M.A. Jackson; Academic Press, 1975. [JAC75b] Data Structure as a Basis for Program Design: Fundamentals; M.A. Jackson; Proc. Infotech State of the Art Conference on Structured Programming, 1975. [KNU84] Literate Programming; D.E. Knuth; Computer Journal, May, 1984. [PAR87] Knuth With Knobs On - Literate Program Development; J.P. Pardoe and S.J. Wade; in Automating Systems Development, ed. D. Benyon, S. Skidmore, Plenum, 1988. [SDG91] Lecture notes and teaching scheme for an introductory program design course; J.P. Pardoe; Liverpool Polytechnic, 1991. [WIR71] Program Development by Stepwise Refinement; N. Wirth; CACM Volume 14, Number 4, April, 1971. 6. The SDGThe Software Development Group in the School of Computing and Mathematical Sciences is a research and development grouping. Its members are responsible for the teaching of program design and software engineering to the students in the School. The principal research area is commercial software maintenance to which the concepts of literate programming are particularly applicable. Other areas of interest include software estimation, quality and the provision of CASE tools. |