Increasing the Readability and Comprehensibility of Programs

Abstract : Source code must be readable and understandable in order to be debugged, used, and maintained efficiently and effectively. Creating programs that are easily read and understood is important, but not as simple as one might think. This thesis surveys the ways in which programming style, programming language design and program presentation influence a person's ability to read and understand program text. It is concerned with solving small scale problems associated with individual functions or files and not with problems that pertain exclusively to large software systems. The programming style chapter examines the changes a programmer may make to source code without modifying the content or meaning of the code. Two of tha main sections cover code reformatting and identifier naming conventions. The chapter on language design discusses the selection of basic tokens (symbols and keywords) and the structure of language statements. This chapter also categorizes the subtle errors that occur when the meanings of a code segment when read and when executed are not the same. The program presentation chapter presents methods for enhancing completed source code making it easier to read and its true meaning easier to discern. Restructuring/transforming the code, graphic design principles, and introducing supplemental information are some of the main sections. Knuth's literate programming paradigm is examined in this chapter as well. One of the underlying themes of the thesis is that an automated proofreader program could greatly aid programmers to create readable, understandable programs.