Search Top Index
HELP PDPROPS A.Sloman, April 1985 pdprops(<procedure>) -> <item> item -> pdprops(<procedure> All procedures in POP11 have an associated property (see HELP *PROPERTIES) which is accessible through the procedure PDPROPS (PDPROPS is short for "procedure properties"). When a procedure is created using 'define', its name (a POP-11 word) is stored in the PDPROPS of the procedure (and similarly if an updater is defined using 'define updaterof'). The property is in turn stored in a field of the procedure record. The system makes use of the PDPROPS of a procedure when printing. Try assigning to the PDPROPS of a procedure and then printing the procedure, for example: define silly(num); num + num enddefine; silly => ** <procedure silly> "verysilly" -> pdprops(silly); silly => ** <procedure verysilly> When the PDPROPS contains a list, the standard printing procedure assumes the first element is the name, e.g. [1 10 1 10] -> pdprops(silly); silly => ** <procedure 1> Similarly, if the first element is a list, then its first element will be examined, and so on, until a non-list is found. This enables a lot of information about a procedure to be stored in the PDPROPS, without cluttering up printing: [[[silly procedure] [type stupid]] one argument] -> pdprops(silly); silly => ** <procedure silly> When a mishap occurs, the system normally prints out the PDPROPS of all the procedures that are currently being executed. (The only exceptions are those procedures whose PDPROPS are FALSE, and words beginning with "sys" or "ved", though even those will be printed out if you assign TRUE to POPSYSCALL.) An array is a special kind of procedure (see *NEWARRAY). Like other procedures, it therefore has a PDPROPS (and an *UPDATER). The same applies to *CLOSURES. See REF *PROCEDURE for more detailed information on procedures in POP-11. See also HELP *UPDATER - allows a procedure to change the contents of data structures *DEFINE - on the form and content of procedure definitions --- C.all/help/pdprops ------------------------------------------------- --- Copyright University of Sussex 1987. All rights reserved. ----------