"da Silva, Joe" wrote:
I'm glad you liked those ISO-10206 citations, too. Even if you want to limit yourself to ISO-7185, the EP standard is still a useful guide to the interpretation of ISO-7185, since it builds directly upon this, but takes a broader view of the application of Pascal in the real world.
You are correct that ISO-7185 only defines ONE mechanism by which program variables can be bound to external entities - via the program parameter list! Any other mechanism, which may be employed by a particular implementation, is a non-standard extension (well, by definition, all extensions are non-standard;-)!
At least in the embedded world, I found that I could describe everything I wanted in terms of the file system. The run-time had drivers for various specialized files, which included such things as a LAN and an interactive screen. The programs altered the file buffer variables (f^) appropriately (or interrogated them) and did the appropriate get or put. The drivers were table driven, and needed 5 routines per file (read, write, open, close, control/status). A sixth table field specified the file name.
In the case of the screen, the screen itself was an array 24*80 of char (or whatever). The run-time allowed the operator to move to appropriate fields and type in whatever he desired. The file object was a record, that included the screen and a few booleans (such as changed).
In other cases the file buffer was the output of an a/d converter.
For debugging, I could create actual disk files of these things, recorded from the actual machinery, and have a repeatable input set.
This did rely upon an extension, where either the reset (or rewrite) had an added parameter for file-name, or else the device name was the actual Pascal name.
However, once attached, the files obeyed the rules for Pascal files.
=============
Aside - I prepared a text version of ISO10206 and sent it to Frank a few days ago. I have not heard anything back from him. It seems like a good thing to have around for instant searches, etc. I wonder if he received it?
=============
I consider the lack of range-checking to be the worst failing of GPC. The point of using Pascal is to have ones hand held and to generate safe code. Without range checks one might as well use C.