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

  • 2.2 STANDARD_INTEGERS package
  • 2.3 Non-existent STANDARD_FLOATS package
  • 2.4 DIM_INT_32 package
  • 2.5 Generic INTEGER_UNITS package
  • 2.6 Generic FLOAT_UNITS package
  • 2.7 DIM_FLOAT package
  • 2.8 Non-existent NUMERIC_UNITS package
  • 2.9 Non-existent FIXED_UNITS package
  • 2.10 TRIG package
  • 2.11 COORDINATES package
  • 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