viii Ada 95 QUALITY AND STYLE Ada 95 QUALITY AND STYLE CONTENTS CHAPTER 1 Introduction 1 1.1 ORGANIZATION OF THIS BOOK 1 1.2 HOW TO USE THIS BOOK 3 1.3TO THE NEW Ada PROGRAMMER 4 1.4 TO THE EXPERIENCED Ada PROGRAMMER 4 1.5 TO EXPERIENCED OBJECT-ORIENTED PROGRAMMERS 4 1.6 TO THE SOFTWARE PROJECT MANAGER 5 1.7 TO CONTRACTING AGENCIES AND STANDARDS ORGANIZATIONS 5 1.8 TO Ada 83 TO Ada 95 TRANSITION PLANNERS 6 1.9 TYPOGRAPHIC CONVENTIONS 6 CHAPTER 2 Source Code Presentation 9 2.1 CODE FORMATTING 9 2.2 SUMMARY 19 CHAPTER 3 Readability 21 3.1 SPELLING 21 3.2 NAMING CONVENTIONS 24 3.3 COMMENTS 32 3.4 USING TYPES 42 3.5 SUMMARY 44 CHAPTER 4 Program Structure 47 4.1 HIGH-LEVEL STRUCTURE 47 4.2 VISIBILITY 55 4.3 EXCEPTIONS 60 4.4 SUMMARY 62 CHAPTER 5 Programming Practices 65 5.1 OPTIONAL PARTS OF THE SYNTAX 65 5.2 PARAMETER LISTS 68 5.3 TYPES 70 5.4 DATA STRUCTURES 74 5.5 EXPRESSIONS 83 5.6 STATEMENTS 86 5.7 VISIBILITY 95 5.8 USING EXCEPTIONS 99 5.9 ERRONEOUS EXECUTION AND BOUNDED ERRORS 102 5.10 SUMMARY 108 CHAPTER 6 Concurrency 113 6.1 CONCURRENCY OPTIONS 113 6.2 COMMUNICATION 124 6.3 TERMINATION 132 6.4 SUMMARY 137 CHAPTER 7 Portability 141 7.1 FUNDAMENTALS 142 7.2 NUMERIC TYPES AND EXPRESSIONS 149 7.3STORAGE CONTROL 154 7.4 TASKING 155 7.5 EXCEPTIONS 157 7.6 REPRESENTATION CLAUSES AND IMPLEMENTATION-DEPENDENT FEAT URES 158 7.7 INPUT/OUTPUT 162 7.8 SUMMARY 164 CHAPTER 8 Reusability 169 8.1 UNDERSTANDING AND CLARITY 170 8.2 ROBUSTNESS 172 8.3 ADAPTABILITY 177 8.4 INDEPENDENCE 191 8.5 SUMMARY 198 CHAPTER 9 Object-Oriented Features 201 9.1 OBJECT-ORIENTED DESIGN 202 9.2 TAGGED TYPE HIERARCHIES 202 9.3 TAGGED TYPE OPERATIONS 209 9.4 MANAGING VISIBILITY 217 9.5 MULTIPLE INHERITANCE 218 9.6 SUMMARY 221 CHAPTER 10 Improving Performance 225 10.1 PERFORMANCE ISSUES 225 10.2 PERFORMANCE MEASUREMENT 225 10.3 PROGRAM STRUCTURE 226 10.4 DATA STRUCTURES 227 10.5 ALGORITHMS 228 10.6 TYPES 232 10.7 PRAGMAS 236 10.8 SUMMARY 238 CHAPTER 11 Complete Example 241 11.1 PORTABLE DINING PHILOSOPHERS EXAMPLE 241 APPENDIX A Map From Ada 95 Reference Manual to Guidelines 257 REFERENCES 267 BIBLIOGRAPHY 273 INDEX 275 TABLES Table 1: Impact of Ada 95 Features and Enhancement on Ada Style Guide Chapters 7