Ada in Action

(with Practical Programming Examples)

by Do-While Jones

Second Edition

1995

Also available in other formats.


SHORT CONTENTS

Chapter 1 : Introduction
Chapter 2 : Numeric Considerations
Chapter 3 : IO Utilities
Chapter 4 : Programming isn't software engineering
Chapter 5 : Testing software components and programs
Chapter 6 : Conclusion
Chapter 7 : Epilog

Figures


FULL CONTENTS

Copyright Statement

Dedications

Hypertext Conversion

Chapter 1

INTRODUCTION

Chapter 2

NUMERIC CONSIDERATIONS

Chapter 3

IO UTILITIES

Chapter 4

PROGRAMMING ISN'T SOFTWARE ENGINEERING

Chapter 5

TESTING SOFTWARE COMPONENTS AND PROGRAMS

Chapter 6

CONCLUSION

Chapter 7

Epilog

Figures

1. POOR_COORDINATES package specification

2. Distinct types

3. SLIGHTLY_BETTER_COORDINATES package specification

4. Shared types

5. Dimensional units example

6. Range checking example

7. Dimensional division

8. Precise division

9. Simple output

10. Better output

11. NUMERIC_UNITS example

12. Polar Coordinates

13. Directions

14. COORDINATES package specification

15. POOR_COORDINATES body

16. COORDINATES body

17. The IMAGE attribute is awkward to use.

18. The Image function is easy to use.

19. ASCII_UTILITIES demo

20. Sales_Tax

21. Usual_Dilemma

22. Usual_Solution

23. Form_Dilemma

24. FORTRAN_Mentality_Solution

25. Form_Solution

26. Objects need a constraint

27. Constrained objects can't change constraints

28. You can't change the constraint alone

29. ADDRESS.DAT

30. Erroneous FORTRAN SPLIT subroutine

31. Erroneous Split procedure

32. Correct Split procedure

33. VIRTUAL_PRINTER body for COM2 port

34. First version of Show

35. The first Get_Command_Line procedure

36. Improved version of Show

37. Original Get_Command_Line body for Meridian

38. Get_Command_Line body for Gould APLEX

39. Write without help and error recovery

40. Portions of Meridian COS.DAT

41. Accuracy of Meridian TRIG.Cos function

42. Coordinates_Test program

43. Get_Command_Line stub 1

44. Get_Command_Line stub 2

45. Lookup driver

46. Lookup stub

Listings disk1/dir.txt <------ SUPER IMPORTANT INFO !!!!! disk1/read.me <------ IMPORTANT INFO !!!!! 1. disk1/sis.ada STANDARD_INTEGERS 2. disk1/giu.ada INTEGER_UNITS 3. disk1/di32.ada DIM_INT_32 4. disk1/gfu.ada FLOAT_UNITS 5. disk1/dfu.ada DIM_FLOAT Version 1.0 6. disk2/meridian/dfu.ada DIM_FLOAT Version 1.1 7. disk1/ts.ada TRIG specification 8. disk2/dec/tbdec.ada TRIG body for DEC Ada 9. disk2/meridian/tbmibm.ada TRIG body for Meridian Ada 10. disk2/alsys/tbaibm.ada TRIG body for Alsys Ada 11. disk1/aus.ada ASCII_UTILITIES specification 12. disk1/aub.ada ASCII_UTILITIES body 13. disk1/aubfxi.ada ASCII_UTILITIES.Fixed_Image 14. disk1/aubfli.ada ASCII_UTILITIES.Float_Image 15. disk1/aubii.ada ASCII_UTILITIES.Image 16. disk1/aubv.ada ASCII_UTILITIES.Value 17. disk1/ms.ada MONEY_UTILITIES specification 18. disk1/mb.ada MONEY_UTILITIES body 19. disk1/vts.ada VIRTUAL_TERMINAL specification 20. disk2/alsys/vtbaibm.ada VIRTUAL_TERMINAL body for Alsys 21. disk2/meridian/vtbmibm.ada VIRTUAL_TERMINAL body for Meridian 22. disk1/sts.ada SCROLL_TERMINAL specification 23. disk1/stb.ada SCROLL_TERMINAL body 24. disk1/stbgr.ada SCROLL_TERMINAL.Get_Response 25. disk1/fts.ada FORM_TERMINAL specification 26. disk1/ftb.ada FORM_TERMINAL body 27. disk1/ftbgf.ada FORM_TERMINAL.Get_Form 28. disk1/ftbrw.ada FORM_TERMINAL.Read & FORM_TERMINAL.Write 29. disk1/ftbd.ada FORM_TERMINAL.Display 30. disk1/ftbu.ada FORM_TERMINAL.Update 31. disk1/ftbc.ada FORM_TERMINAL.Create 32. disk1/ftbci.ada FORM_TERMINAL.Create.Instructions 33. disk1/ftbcgf.ada FORM_TERMINAL.Create.Get_Field 34. disk1/ftbcgfp.ada FORM_TERMINAL.Create.Get_Field.Protect_Field 35. disk1/ftbe.ada FORM_TERMINAL.Edit 36. disk1/ftbie.ada FORM_TERMINAL.Edit.Instructions 37. disk1/ftbef.ada FORM_TERMINAL.Edit.Edit_Fields 38. disk1/ftbefg.ada FORM_TERMINAL.Edit.Edit_Fields.Get_Changes 39. disk1/ftbecf.ada FORM_TERMINAL.Edit.Change_Field 40. disk1/ftbeif.ada FORM_TERMINAL.Edit.Insert_Field 41. disk1/ftbedf.ada FORM_TERMINAL.Edit.Delete_Field 42. disk1/ftbemf.ada FORM_TERMINAL.Edit.Move_Field 43. disk1/ftber.ada FORM_TERMINAL.Error_Recovery 44. disk1/mf.ada Make_Form program 45. disk1/ef.ada Edit_Form program 46. disk1/xftbc.ada Create stub 47. disk1/xftbe.ada Edit stub 48. disk2/dec/vmss.ada VMS specification 49. disk2/dec/vmsb.ada VMS body 50. disk2/dec/vmsbi.ada VMS.INPUT task body 51. disk2/dec/vmsbo.ada VMS.OUTPUT package body 52. disk2/dec/vtsdec.ada VIRTUAL_TERMINAL specification for DEC 53. disk2/dec/vtbdec.ada VIRTUAL_TERMINAL body for DEC Ada 54. disk1/vps.ada VIRTUAL_PRINTER specification 55. disk1/vpblpt1.ada VIRTUAL_PRINTER body for LPT1 port 56. disk1/sps.ada SCROLL_PRINTER specification 57. disk1/spb.ada SCROLL_PRINTER body 58. disk2/alsys/gclbaibm.ada Get_Command_Line body for Alsys 59. disk1/gcls.ada Get_Command_Line specification 60. disk2/dec/gclbdec.ada Get_Command_Line body for DEC 61. disk1/more.ada The More program 62. disk1/write.ada Write program 63. disk1/line.ada Line program 64. disk1/le.ada Line.Extract subunit 65. disk2/meridian/gclbmibm.ada Get_Command_Line body for Meridian 66. disk1/pcs.ada PLAYING_CARDS specification 67. disk1/pcb.ada PLAYING_CARDS body 68. disk1/dp2.ada Draw_Poker program, Version 2 69. disk1/dp2g.ada Draw_Poker.get 70. disk1/dp2vo.ada Draw_Poker.Value_Of 71. disk1/dp2p.ada Draw_Poker.put 72. disk1/dp2df.ada Draw_Poker.Discard_From 73. disk1/dp2po.ada Draw_Poker.Payout 74. disk1/costest.ada Cos_Test program 75. disk1/cosdif.ada Cos_Dif program 76. disk1/rns.ada RANDOM_NUMBERS specification 77. disk1/rnb.ada RANDOM_NUMBERS body