I have been involved recently in developing reusable Ada components which are portable (in theory) across multiple systems using multiple compilers. One of the biggest problem areas in Ada portability aside from Chapter 13 issues is Chapter 14, Ada I/O. This paper represents an informal collection of my working notes on the portability problems of Chapter 14. These notes are based on my experience with a wide variety of compilers on an even larger set of hardware. I have purposefully not mentioned any compilers by name as I only wish to show the differences between implementations and do not wish to imply that any compiler is better than any other. While I/O is inherently non-portable, packages of common I/O functions such as those described in Chapter 14 can be specified in a manner which ensures maximum portability. There are too many loopholes and areas for implementor interpretation in current Ada 1.0; I hope to see more stringent I/0 specifications in 1988.
Read full abstract