Guide to the HP Structure Definition Language


Previous Contents Index


Kednos PL/I Translation Summary

The following table shows the HP SDL to Kednos PL/I language translation summary.
HP SDL Declaration Kednos PL/I Output
MODULE name IDENT string /*** MODULE name IDENT string ***/
/* comment /*comment*/
CONSTANT x  
EQUALS n; %REPLACE x BY n;
EQUALS STRING "s"; %REPLACE x BY 's';
ENTRY ENTRY
PARAMETER (type,...) (parameter-descriptor,...)
ANY ANY
DESCRIPTOR DESCRIPTOR or CHARACTER(*) for CHARACTER data type
RTL_STR_DESC ANY CHARACTER(*)
IN n/a
OUT n/a
NAMED param-name n/a
VALUE VALUE
REFERENCE n/a
DEFAULT n n/a
LIST LIST
OPTIONAL OPTIONAL or OPTIONAL TRUNCATE
TYPENAME type-name Special VMS TYPENAME values are recognized.
RETURNS return-data-type RETURNS (returns-descriptor)
NAMED param-name n/a
VARIABLE OPTIONS(VARIABLE)
ALIAS internal-name n/a
LINKAGE n/a
TYPENAME type-name Special VMS TYPENAME values are recognized.
STRUCTURE Structure declaration. An AGGREGATE declaration is always assigned a level number of 1; subsequent subaggregates are assigned level numbers 2, 3, and so on.
UNION UNION
BYTE [SIGNED ] FIXED BINARY(7)
INTEGER _BYTE [SIGNED ] FIXED BINARY(7)
WORD [SIGNED ] FIXED BINARY(15)
INTEGER _WORD [SIGNED ] FIXED BINARY(15)
LONGWORD [SIGNED ] FIXED BINARY(31)
INTEGER _LONG [SIGNED ] FIXED BINARY(31)
INTEGER [SIGNED ] FIXED BINARY(31)
INTEGER _HW [SIGNED ] (2) FIXED BIN(31) for /ALPHA
  FIXED BIN(31) for /VAX
HARDWARE _INTEGER [SIGNED ] (2) FIXED BIN(31) for /ALPHA
  FIXED BIN(31) for /VAX
QUADWORD [SIGNED ] BIT(64) ALIGNED
INTEGER _QUAD [SIGNED ] BIT(64) ALIGNED
OCTAWORD [SIGNED ] BIT(128) ALIGNED
BYTE UNSIGNED BIT(8) ALIGNED
  FIXED BINARY(7) for /PLI _DEVELOPMENT
INTEGER _BYTE UNSIGNED BIT(8) ALIGNED
  FIXED BINARY(7) for /PLI _DEVELOPMENT
WORD UNSIGNED BIT(16) ALIGNED
  FIXED BINARY(15) for /PLI _DEVELOPMENT
INTEGER _WORD UNSIGNED BIT(16) ALIGNED
  FIXED BINARY(15) for /PLI _DEVELOPMENT
LONGWORD UNSIGNED BIT(32) ALIGNED
  FIXED BINARY(31) for /PLI _DEVELOPMENT
INTEGER _LONG UNSIGNED BIT(32) ALIGNED
  FIXED BINARY(31) for /PLI _DEVELOPMENT
INTEGER UNSIGNED BIT(32) ALIGNED
  FIXED BINARY(31) for /PLI _DEVELOPMENT
INTEGER _HW UNSIGNED BIT(64) ALIGNED for /ALPHA
  (2) FIXED BIN(31)/ALPHA/PLI _DEVELOPMENT
  BIT(32) ALIGNED for /VAX
  FIXED BIN(31)/VAX/PLI _DEVELOPMENT
HARDWARE _INTEGER UNSIGNED BIT(64) ALIGNED for /ALPHA
  (2) FIXED BIN(31)/ALPHA/PLI _DEVELOPMENT
  BIT(32) ALIGNED for /VAX
  FIXED BIN(31)/VAX/PLI _DEVELOPMENT
QUADWORD UNSIGNED BIT(64) ALIGNED
INTEGER _QUAD UNSIGNED BIT(64) ALIGNED
OCTAWORD UNSIGNED BIT(128) ALIGNED
F_FLOATING FLOAT BINARY (24)
D_FLOATING FLOAT BINARY(53)
G_FLOATING FLOAT BINARY(53)
H_FLOATING FLOAT BINARY(113)
F_FLOATING COMPLEX ANY except as a
D_FLOATING COMPLEX - function return type or union
G_FLOATING COMPLEX - type of a structure member
H_FLOATING COMPLEX - array type
  In these cases, respective translations are:
  BIT(64)
  BIT(128)
  BIT(128)
  BIT(256)
DECIMAL PRECISION (p,q) DECIMAL (p,q)
BITFIELD LENGTH n BIT(n)
MASK %REPLACE prefixM_name BY mask-value;
SIGNED n/a
CHARACTER CHARACTER(n)
LENGTH n CHARACTER(n)
LENGTH * CHARACTER(*)
VARYING VARYING
ADDRESS POINTER
POINTER POINTER
POINTER _LONG POINTER
POINTER _HW (2) POINTER for /ALPHA
  POINTER for /VAX
HARDWARE _ADDRESS (2) POINTER for /ALPHA
  POINTER for /VAX
POINTER _QUAD (2) POINTER
BOOLEAN BIT(1) ALIGNED
user-type-name data-type /* user-type-name */
Default storage class BASED attribute
COMMON storage class STATIC EXTERNAL
GLOBAL storage class GLOBALREF
with /GLOBALDEF GLOBALDEF
BASED pointer-name aggregate BASED (pointer-name)
TYPEDEF n/a
name DIMENSION [lbound:]hbound name ([lbound]:hbound)
ORIGIN member-name n/a

Notes

  1. In Kednos PL/I, you can access values declared using the HP SDL UNSIGNED keyword by specifying the name in a POSINT built-in function. The integer value of the name will be returned; however, this will work only if the sign bit is 0.
  2. The mask value generated by HP SDL for the MASK option of the BITFIELD data type is a bit-string constant.
  3. The HP SDL declarations BYTE UNSIGNED, WORD UNSIGNED, and LONGWORD UNSIGNED produce the same Kednos PL/I output as the HP SDL declarations BYTE, WORD, and LONGWORD, when the /VMS_DEVELOPMENT qualifier is specified.

HP OpenVMS DCL Translation Summary

The following table shows the HP SDL to HP OpenVMS DCL language translation summary. Since HP OpenVMS DCL does not understand procedures or aggregates, only constants are translated.

HP SDL Declaration HP OpenVMS DCL Output
MODULE name IDENT string $ ! MODULE name
/ * comment $ ! comment
CONSTANT x  
EQUALS n; x = = n
EQUALS STRING "s"; x = = "s"
ENDMODULE name $ ! ENDMODULE


SDML Translation Summary

SDML is not a programming language; the translation is intended to be used as input to software manuals.

For every AGGREGATE STRUCT files named aggregate-name_PIC.SDML and aggregate-name_TBL.SDML are generated. Those files also include the constants defined in the SDL file before the AGGREGATE.

AGGREGATE UNIONs and ITEMs are written into files named PICFILE.DAT and TBLFILE.DAT. If an SDL file contains more than one ITEM or UNION, multiple versions of PICFILE.DAT and TBLFILE.DATE will be written.

"PIC" files contain drawings, where every member of an AGGREGATE is drawn according to its size and position. BITFIELDs are not drawn, their size and position are respected only partly; members following BITFIELDS are not always positioned correctly. "TBL" files contain tables with a row for every member of an AGGREGATE.

The HARDWARE_INTEGER and COMPLEX data types are not supported by the SDML backend.

ENTRY declarations are also not supported by the SDML backend.


DECTPU Translation Summary

The following table shows the HP SDL to DECTPU language translation summary. Since DECTPU does not understand procedures or aggregates, only constants are translated.

HP SDL Declaration DECTPU Output
MODULE name IDENT string MODULE name
/ * comment ! comment
CONSTANT x  
EQUALS n; CONSTANT x : = n;
EQUALS STRING "s"; CONSTANT x : = "s";
ENDMODULE name ENDMODULE


UIL Translation Summary

The following table shows the HP SDL to UIL language translation summary. Since UIL does not understand procedures or aggregates, only constants are translated.

HP SDL Declaration UIL Output
MODULE name IDENT string ! MODULE name
/ * comment ! comment
CONSTANT x  
EQUALS n; VALUE x : n;
EQUALS STRING "s"; VALUE x : "s";
ENDMODULE name ! ENDMODULE


Previous Next Contents Index