Title: Partial initialisation of PARAMETERs. Submitted By: UK Status: For Consideration Severity Level: 3-4 (depending on technical approach). Reference: Basic Functionality: Allow independent subobjects of a PARAMETER to be initialised by separate statements. Rationale: A frequently-heard complaint is the awkwardness of being required to initialise (inevitably huge) PARAMETER arrays in a single statement. Estimated Impact: The edits will mostly be local to clause 5, depending on the approach taken. Detailed Specification: Allow independent subobjects of a PARAMETER to be initialised by separate statements. To keep it simple, no access to the value of a PARAMETER should be allowed until all of it has been initialised. This could be done as simply as allowing PARAMETERs to be initialised in DATA statements, but other approaches might have technical merit. Suggested Syntax: Three possible syntaxes for this feature are described here, with their advantages and disadvantages listed. (1) Allow the DATA statement to be used on PARAMETERs. + Easy to standardise (gives a severity level of 3). + Easy to implement (compilers can already parse DATA statements). + Easy to learn (users already know about DATA). + Identical treatment of variables and parameters. - Cannot use expressions in the initialisers. - Some people think DATA is old-fashioned. (2) Extend the syntax of the PARAMETER statement; in particular, allow " = ". + No new keyword needed. + Users recognise that PARAMETER is about parameters. + Can use expressions in the initialisers. - Not as easy to standardise/implement/learn (severity 4). - Does not allow expressions to initialise subobjects of variables. - Some people think the PARAMETER statement is old-fashioned. (3) Do it with a new statement, e.g. "FUNKY :: = ". + Could handle variables/parameters consistently. + Syntax less "quirky" than DATA. - Not as easy to standardise/implement/learn (severity 4). - DATA will still be quirky anyway. Note: The only technical disadvantage of the simplest approach (use DATA) is the lack of expression initialisers. This could be overcome by extending the syntax of DATA, e.g. to allow DATA(A(1:10) = [(i,i=1,10)]) History: