óÀ½, ÀÌÀü, ´ÙÀ½, ¸¶Áö¸· Àý·Î °¡±â, ¸ñÂ÷.
This chapter lists the differences and extensions between GNUCHILL
and the CCITT recommendation Z.200 in its 1988 version (reffered to
as Z.200/1988).
¿ø¹®½ÃÀÛ
Differences to Z.200/1988
The definition of <simple name string> is changed to:
<simple name string> ::=
{<letter> | _ } { <letter> | <digit | _ }
Only one directive is allowed between the compiler directive delimiters
`<>' and `<>' or the end-of-line, i.e.
<> USE_SEIZE_FILE "foo.grt" <>
<> ALL_STATIC_OFF
The syntax of <mode> is changed to:
<mode> ::=
[READ] <non-composite-mode>
| [READ] composite-mode>
<non-composite-mode> ::=
<discrete mode>
| <real modes>
| <powerset modes>
| <reference mode>
| <procedure mode>
| <instance mode>
| <synchronization mode>
| <timing mode>
The list of discrete modes is enhanced by the following modes:
BYTE 8-bit signed integer
UBYTE 8-bit unsigned integer
UINT 16-bit unsigned integer
LONG 32-bit signed integer
ULONG 32-bit unsigned integer
Please note that INT is implemented as 16-bit signed integer.
The mode BIN(n) is not implemented. Using INT(0 : 2 ** n - 1) instead of
BIN(n) makes this mode unneccessary.
Note: This is an extension to Z.200/1988, however, it is defined in
Z.200/1992.
syntax:
<real mode> ::=
<floating point mode>
semantics:
A real mode specifies a set of numerical values which approximate a
contiguous range of real numbers.
syntax:
<floating point mode> ::=
<floating point mode name
predefined names:
The names REAL and LONG_REAL are predefined as floating
point mode names.
semantics:
A floating point mode defines a set of numeric approximations to a
range of real values, together with their minimum relative accuracy,
between implementation defined bounds, over which the usual ordering
and arithmetic operations are defined. This set contains only the
values which can be represented by the implementation.
examples:
REAL
LONG_REAL
¿ø¹®³¡
º» ÀåÀº GNU CHILL°ú CCITT ±Ç°í¾È Z.200ÀÇ 1988³â ¹öÀü(Z.200/1988°ú °°ÀÌ ¾ð±ÞµÊ)°úÀÇ Â÷ÀÌÁ¡°ú È®Àå»çÇ×À» ³ª¿ÇÑ´Ù.
<simple name string> ::=
{<letter> | _ } { <letter> | <digit | _ }
<> USE_SEIZE_FILE "foo.grt" <> <> ALL_STATIC_OFF
<mode> ::=
[READ] <non-composite-mode> | [READ] composite-mode><non-composite-mode> ::=
<discrete mode> | <real modes> | <powerset modes> | <reference mode> | <procedure mode> | <instance mode> | <synchronization mode> | <timing mode>
BYTE 8-bit ºÎÈ£ÀÖ´Â Á¤¼ö UBYTE 8-bit ºÎÈ£¾ø´Â Á¤¼ö UINT 16-bit ºÎÈ£¾ø´Â Á¤¼ö LONG 32-bit ºÎÈ£ÀÖ´Â Á¤¼ö ULONG 32-bit ºÎÈ£¾ø´Â Á¤¼öINT´Â 16ºñÆ® ºÎÈ£ÀÖ´Â Á¤¼ö·Î½á ½ÇÇàµÇ´Ù´Â °ÍÀ» ÁÖÀÇÇØ Áֽʽÿä.
<real mode> ::=
<floating point mode>Àǹ̷Ð(semantics):
½Ç¼ö ¸ðµå´Â ½Ç¼öÀÇ ¿¬¼Ó ¿µ¿ªÀ» ±Ù»çÇÑ ¼öÄ¡°ªÀÇ ÁýÇÕÀ» ÁöÁ¤ÇÑ´Ù.
<floating point mode> ::=
<floating point mode name»çÀüÁ¤ÀÇµÈ À̸§(predefined name): REAL°ú LONG_REALÀº ºÎµ¿ ¼Ò¼öÁ¡ ¸ðµå À̸§À¸·Î ÀÌ¹Ì Á¤ÀÇ µÇ¾î ÀÖ´Ù. Àǹ̷Ð: ºÎµ¿ ¼Ò¼öÁ¡ ¸ðµå´Â ½ÇÇàÀÌ Á¤ÀÇµÈ °æ°è³»-ÀÌ ¿µ¿ª¿¡¼´Â ÀϹÝÀûÀÎ ¼ø¼¿Í ¼öÄ¡¿¬»êÀÌ Á¤ÀǵȴÙ-¿¡¼ ÃÖ¼Ò »ó´ë Á¤¹Ðµµ(minimum relative accuracy)¸¦ °¡Áö°í ½Ç¼öÀÇ ¾î¶² ¿µ¿ª¿¡ ´ëÇÑ ¼öÄ¡Àû ±Ù»çÀÇ ÁýÇÕÀ» Á¤ÀÇÇÑ´Ù. ÀÌ ÁýÇÕÀº ½ÇÇà¿¡ ÀÇÇؼ ³ªÅ¸³»Áú ¼ö ÀÖ´Â °ªµé¸¸ °¡Áø´Ù. ¿¹:
REAL LONG_REAL
<procedure mode> ::=
PROC ([<parameter list>]) [ <result spec> ] [EXCEPTIONS(<exception list>)] [RECURSIVE] | <procedure mode name><parameter list> ::=
<parameter spec> {, <parameter spec> } *<parameter spec> ::=
<mode> [ <parameter attribute> ]<parameter attribute> ::=
IN | OUT | INOUT | LOC<result spec> ::=
RETURNS ( <mode> [LOC])<exception list> ::=
<exception name> {, <exception name> } *
<string mode> ::=
<string type> ( <string length> ) [ VARYING ] | <parametrized string mode> | <string mode name><parameterized string mode> ::=
<origin string mode name> ( <string length> ) | <parameterized string mode name><origin string mode name> ::=
<string mode name>string type
BOOLS | BIT | CHARS | CHAR<string length> ::=
<integer literal expression>VARYING is not implemented for <string type> BIT and BOOL.
MILLISECS (UPPER (ULONG)), SECS (4294967), MINUTES (71582), HOURS (1193), and DAYS (49).
<element layout> ::=
PACK | NOPACK<field layout> ::=
PACK | NOPACK
<procedure mode> ::=
PROC ([<parameter list>]) [ <result spec> ] [EXCEPTIONS(<exception list>)] [RECURSIVE] | <procedure mode name><parameter list> ::=
<parameter spec> {, <parameter spec> } *<parameter spec> ::=
<mode> [ <parameter attribute> ]<parameter attribute> ::=
IN | OUT | INOUT | LOC<result spec> ::=
RETURNS ( <mode> [LOC])<exception list> ::=
<exception name> {, <exception name> } *
<string mode> ::=
<string type> ( <string length> ) [ VARYING ] | <parametrized string mode> | <string mode name><parameterized string mode> ::=
<origin string mode name> ( <string length> ) | <parameterized string mode name><origin string mode name> ::=
<string mode name>string type
BOOLS | BIT | CHARS | CHAR<string length> ::=
<integer literal expression>VARYINGÀº <string type> BIT¿Í BOOL¿¡ ´ëÇؼ ½ÇÇàµÇÁö ¾Ê´Â´Ù.
MILLISECS (UPPER (ULONG)), SECS (4294967), MINUTES (71582), HOURS (1193), and DAYS (49).
<element layout> ::=
PACK | NOPACK<field layout> ::=
PACK | NOPACK
<based declaration> ::=
<defining occerrence list> <mode> BASED ( <free reference location name> )semantics: A based declaration with <free reference location name> specifies as many access names as are defining occerrences in the defining occurrence list. Names declared in a base declaration serve as an alternative way accessing a location by dereferencing a reference value. This reference value is contained in the location specified by the free reference location name. This dereferencing operation is made each time and only when an access is made via a declared based name. static properties: A defining occurrence in a based declaration with free reference location name defines a based name. The mode attached to a based name is the mode specified in the based declaration. A based name is referable.
<access name> ::=
<location name> | <loc-identity name> | <based name> | <location enumeration name> | <location do-with name>The semantics, static properties and dynamic conditions remain unchanged except that they are enhanced by base name.
<literal> ::=
<integer literal> | <boolean literal> | <charater literal> | <set literal> | <emptiness literal> | <character string literal> | <bit string literal> | <floating point literal>Note: The <floating point literal> is an extension to Z.200/1988 and will be described later on.
<decimal integer literal> ::=
{ D | d } ' { <digit> | _ } + | <digit> { <digit> | _ } *
<character string literal> ::=
'{ <non-reserved character> | <single quote> | <control sequence> } * ' | '{ <non-reserved character> | <double quote> | <control sequence> } * '<single quote> ::=
"<double quote> ::=
""A character string litaral of length 1, enclosed in apostrophes (e.g. 'M') may also serve as a charater literal.
<floating point literal> ::=
<unsigned floating point literal> | <signed floating point literal><unsigned floating point literal> ::=
<digit sequence> . [ <digit sequence> ] [ <exponent> ] | [ <digit sequence> ] . <digit sequence> [ <exponent> ]<signed floating point literal> ::=
- <unsigned floating point literal><digit sequence> ::=
<digit> { <digit> | _ } *<exponent> ::=
[ E | D | e | d ] <digit sequence> | [ E | D | e | d ] - <digit sequence>
<based declaration> ::=
<defining occerrence list> <mode> BASED ( <free reference location name> )Àǹ̷Ð: <free reference location name>À» °¡Áø based declerationÀº defining occurrence list ¾ÈÀÇ defining occurrence ¼ö ¸¸ÅÀÇ Á¢¼Ó¸í(access name)À» ¸í½ÃÇÑ´Ù. base decleration¿¡ ¼±¾ðµÈ À̸§Àº ÂüÁ¶°ªÀ» dereferenceÇÔÀ¸·Î½á ¾î¶² À§Ä¡¸¦ Á¢¼ÓÇÏ´Â ´Ù¸¥ ¹æ¹ýÀÇ ¿ªÇÒÀ» ÇÑ´Ù. ÀÌ ÂüÁ¶°ªÀº free reference location name¿¡ ÀÇÇØ ÁöÁ¤µÈ À§Ä¡¿¡ Æ÷ÇԵȴÙ. ÀÌ·± dereferencing µ¿ÀÛÀº ¸Å ½Ã°£¸¶´Ù, ±×¸®°í ¿ÀÁ÷ Á¢¼ÓÀÌ ¼±¾ðµÈ based nameÀ» ÅëÇØ ÀÌ·ç¾îÁú¶§¸¸ ¼öÇàµÈ´Ù. Á¤Àû Ư¼º: free reference location name¸¦ °¡Áø based declarationÀÇ defining occurrenceÀº based nameÀ» Á¤ÀÇÇÑ´Ù. based name¿¡ ÷ºÎµÈ ¸ðµå´Â based declaration¾È¿¡ ÁöÁ¤µÈ modeÀÌ´Ù. based name´Â ÂüÁ¶°¡´ÉÇÏ´Ù.
<access name> ::=
<location name> | <loc-identity name> | <based name> | <location enumeration name> | <location do-with name>Àǹ̷Ð, Á¤Àû Ư¼º°ú µ¿Àû Á¶°ÇÀº base name¿¡ ÀÇÇØ °³¼±µÈ°ÍÀ» Á¦¿ÜÇÏ°í´Â º¯°æ»çÇ×ÀÌ ¾ø´Ù.
<literal> ::=
<integer literal> | <boolean literal> | <charater literal> | <set literal> | <emptiness literal> | <character string literal> | <bit string literal> | <floating point literal>ÁÖÀÇ: <floating point literal>Àº Z.200/1988¿¡ ´ëÇÑ È®ÀåÀÌ°í ÈÄ¿¡ ±â¼úÇÒ °ÍÀÌ´Ù.
<decimal integer literal> ::=
{ D | d } ' { <digit> | _ } + | <digit> { <digit> | _ } *
<character string literal> ::=
'{ <non-reserved character> | <single quote> | <control sequence> } * ' | '{ <non-reserved character> | <double quote> | <control sequence> } * '<single quote> ::=
"<double quote> ::=
""¾ÆÆ÷½ºÆ®·ÎÇÇ(apostrophe)·Î µÑ·¯½×ÀÎ(¿¹¸¦ µé¸é, 'M') ±æÀÌ 1ÀÇ Chracter string literalÀº ¶ÇÇÑ character literal ¿ªÇÒÀ» ÇÒÁöµµ ¸ð¸¥´Ù.
<floating point literal> ::=
<unsigned floating point literal> | <signed floating point literal><unsigned floating point literal> ::=
<digit sequence> . [ <digit sequence> ] [ <exponent> ] | [ <digit sequence> ] . <digit sequence> [ <exponent> ]<signed floating point literal> ::=
- <unsigned floating point literal><digit sequence> ::=
<digit> { <digit> | _ } *<exponent> ::=
[ E | D | e | d ] <digit sequence> | [ E | D | e | d ] - <digit sequence>
<string repetition operator> ::=
(<integer expression>)
<start action> ::=
START <process name> (<copy number> [, <actual parameter list>]) [ SET <instance location> ]<copy number> ::=
<integer expression>
<send signal action> ::=
SEND <signal name> [ ( <value> {, <value> } * ) ] [ WITH <expression> ] TO <instance primitive value> [ <priority> ]The default priority can be specified by the compiler directive SEND_SIGNAL_DEFAULT_PRIORITY. If this also is omitted, the default priority is 0.
CHILL value built-in routine call> ::=
ADDR (<location>) | PRED (<pred succ argument>) | SUCC (<pred succ argument>) | ABS (<numeric expression>) | LENGTH (<length argument>) | SIN (<floating point expression>) | COS (<floating point expression>) | TAN (<floating point expression>) | ARCSIN (<floating point expression>) | ARCCOS (<floating point expression>) | ARCTAN (<floating point expression>) | EXP (<floating point expression>) | LN (<floating point expression>) | LOG (<floating point expression>) | SQRT (<floating point expression>) | QUEUE_LENGTH (<buffer location> | <event location>) | GEN_INST (<integer expression> | <process name> , <integer expression>) | COPY_NUMBER (<instance expression>) | GEN_PTYE (<process name>) | PROC_TYPE (<instance expression>) | GEN_CODE (<process name> | <signal name>) | DESCR (<location>)<pred succ argument> ::=
<discrete expression> | <bound reference expression><numeric expression> ::=
<integer expression> | floating point expression><length argument> ::=
<string location> | <string expression> | <string mode name> | <event location> | <event mode name> | <buffer location> | <buffer mode name> | <text location> | <text mode name>semantics: ADDR is derived syntax for -> <location>. PRED and SUCC delivers respectively, in case of a discrete expression, the next lower or higher discrete value of their argument, in case of bound reference expression these built-in calls deliver a pointer to the previous or next element. ABS is defined on numeric values, i.e. integer values and floating point values, delivering the corresponding absolute value. LENGTH is defined on
SYNMODE __tmp_descr = STRUCT (p PTR, l ULONG);
<string repetition operator> ::=
(<integer expression>)
<start action> ::=
START <process name> (<copy number> [, <actual parameter list>]) [ SET <instance location> ]<copy number> ::=
<integer expression>
<send signal action> ::=
SEND <signal name> [ ( <value> {, <value> } * ) ] [ WITH <expression> ] TO <instance primitive value> [ <priority> ]µðÆúÆ® ¿ì¼±¼øÀ§´Â ÄÄÆÄÀÏ·¯ Áö½Ã¹® SEND_SIGNAL_DEFAULT_PRIORITY¿¡ ÀÇÇØ ÁöÁ¤µÉ ¼ö ÀÖ´Ù. ¸¸¾à ÀÌ°Í ¶ÇÇÑ »ý·«µÈ´Ù¸é, µðÆúÆ® ¿ì¼±¼øÀ§´Â 0ÀÌ´Ù.
CHILL value built-in routine call> ::=
ADDR (<location>) | PRED (<pred succ argument>) | SUCC (<pred succ argument>) | ABS (<numeric expression>) | LENGTH (<length argument>) | SIN (<floating point expression>) | COS (<floating point expression>) | TAN (<floating point expression>) | ARCSIN (<floating point expression>) | ARCCOS (<floating point expression>) | ARCTAN (<floating point expression>) | EXP (<floating point expression>) | LN (<floating point expression>) | LOG (<floating point expression>) | SQRT (<floating point expression>) | QUEUE_LENGTH (<buffer location> | <event location>) | GEN_INST (<integer expression> | <process name> , <integer expression>) | COPY_NUMBER (<instance expression>) | GEN_PTYE (<process name>) | PROC_TYPE (<instance expression>) | GEN_CODE (<process name> | <signal name>) | DESCR (<location>)<pred succ argument> ::=
<discrete expression> | <bound reference expression><numeric expression> ::=
<integer expression> | floating point expression><length argument> ::=
<string location> | <string expression> | <string mode name> | <event location> | <event mode name> | <buffer location> | <buffer mode name> | <text location> | <text mode name>Àǹ̷Ð: ADDRÀº -> <location>¿¡ ´ëÇÑ ±¸¹®À¸·Î ºÎÅÍ À¯·¡ÇÑ´Ù. PRED¿Í SUCC´Â discrete expressionÀÇ °æ¿ì¿¡ ±×µé ÀÎÀÚÀÇ ´ÙÀ½ ÇÏÀ§ ¶Ç´Â »óÀ§ À̻갪À» °¢°¢ ³Ñ°ÜÁØ´Ù. bound reference expressionÀÇ °æ¿ì¿¡ ÀÌ·¯ÇÑ built-in callÀº ÀÌÀü ¶Ç´Â ´ÙÀ½ ¿ä¼Ò¿¡°Ô Æ÷ÀÌÅ͸¦ ³Ñ°ÜÁØ´Ù. ABS´Â ¼öÄ¡°ª(Áï, Á¤¼ö°ª°ú ºÎµ¿ ¼Ò¼öÁ¡°ª)¿¡ ´ëÇÏ¿© Á¤ÀǵȴÙ. ÀÌ°ÍÀº ´ëÀÀÇÏ´Â Àý´ë°ªÀ» ³Ñ°ÜÁØ´Ù. LENGTH´Â ´ÙÀ½¿¡ ´ëÇØ Á¤ÀǵȴÙ.
SYNMODE __tmp_descr = STRUCT (p PTR, l ULONG);
<associate built-in routine call> ::=
ASSOCIATE ( <association location>, <string expression>, [, <string expression> ] )The ASSOCIATE call has two parameters besides the association location: a pathname and an optional mode string. The value of the first string expression must be a pathname according to the rules of the underlying operating system. (Note that a relative pathname implies a name relative to the working directory of the process.) The mode string may contain the value "VARIABLE", which requests an external representation of records consisting of an UINT record length followed by as many bytes of data as indicated by the length field. Such a file with variable records is not indexable. A file with variable records can be written using any record mode. If the record mode is CHARS(n) VARYING, the record length is equal to the actual length of the value written. (Different record may have differing lengths.) With all other record modes, all records written using the same access mode will have the same length, but will still be prefixed with the length field. (Note that by re-connecting with different access modes, the external representation may ultimately contain records with differing lengths.) A file with variable records can only be read by using a record mode of CHARS(n) VARYING.
<modify built-in call> ::=
MODIFY ( <association location>, <string expression> )At present, MODIFY accepts a character string containing a pathname in addition to the association location, which will cause a renaming of the associated file.
<text argument> ::=
<text location> | <predefined text location> | <varying string location><predefined text location> ::=
STDIN | STDOUT | STDERRNOTE: The identifiers STDIN, STDOUT, and STDERR are predefined. Association and connection with files or devices is done according to operating system rules. The effect of using READTEXT or WRITETEXT with a character string location as a text argument (i.e. the first parameter) where the same location also appears in the i/o list is undefined. The current implementation of formatting assumes run-to-completion semantics of CHILL tasks within an image.
<conversion clause> ::=
<conversion code> { <conversion qualifier } * [ <clause width> ]<conversion code> ::=
B | O | H | C | F<conversion qualifier> ::=
L | E | P<character><clause width> ::=
{ <digit> } + | V | <real clause width><real clause width> ::=
{ { <digit> + | V } : { { <digit> } + | V }Note: The <real clause width> is only valid for <conversion code> `C' or `F'.
<case label specification> ::=
( <case label> {, <case label> } * )<case label> ::=
<discrete literal expression> | <literal range> | <discrete mode name> | ELSE
<associate built-in routine call> ::=
ASSOCIATE ( <association location>, <string expression>, [, <string expression> ] )ASSOCIATE callÀº association location¿Ü¿¡µµ µÎ°³ÀÇ ¸Å°³º¯¼ö¸¦ °¡Áø´Ù: pathname¿Í optional mode string. first string expressionÀÇ °ªÀº µ¿À۵Ǵ ¿î¿µÃ¼Á¦ÀÇ ±ÔÄ¢À» µû¸£´Â pathnameÀ̾î¾ß ÇÑ´Ù. (»óÅÂÀûÀÎ pathnameÀº ÇÁ·Î¼¼½º°¡ µ¿ÀÛÇÏ°í ÀÖ´Â µð·ºÅ丮¿¡ »ó´ëÀûÀÎ ¸íÀÓÀ» ÁÖÀÇÇ϶ó.) mode stringÀº UINT ·¹ÄÚµå(record) ±æÀÌ ´ÙÀ½¿¡ length field¿¡ÀÇÇØ Áö½ÃµÈ °Í°ú °°Àº ¼öÀÇ µ¥ÀÌŸÀÇ ¹ÙÀÌÆ®·Î ±¸¼ºµÈ ·¹ÄÚµåÀÇ ¿ÜºÎ Ç¥ÇöÀ» ¿ä±¸ÇÏ´Â "VARIABLE" °ªÀ» °¡Áö°í ÀÖÀ» Áöµµ ¸ð¸¥´Ù. °¡º¯ ·¹ÄÚµå(variable record)¸¦ °¡Áø ±×·¯ÇÑ ÆÄÀÏÀº »öÀÎÀ» ´Þ ¼ö ¾ø´Ù. °¡º¯ ·¹Äڵ带 °¡Áø ÆÄÀÏÀº ¾î¶² record mode¸¦ »ç¿ëÇÏ´õ¶óµµ ½áÁú ¼ö ÀÖ´Ù. ¸¸¾à record mode°¡ CHARS(n) VARYINGÀ̶ó¸é, ·¹ÄÚµå ±æÀÌ´Â ¾²¿©Áø °ªÀÇ ½ÇÁ¦ ±æÀÌ¿Í °°´Ù. (´Ù¸¥ ·¹ÄÚµå´Â ´Ù¸¥ ±æÀ̸¦ °¡ÁúÁöµµ ¸ð¸¥´Ù.) ¸ðµç ´Ù¸¥ ·¹ÄÚµå ¸ðµå¿Í ÇÔ²², µ¿ÀÏÇÑ access mode¸¦ »ç¿ëÇØ ¾²¿©Áø ¸ðµç ·¹ÄÚµå´Â °°Àº ±æÀ̸¦ °¡Áú °ÍÀÌ´Ù. ±×·¯³ª ¿©ÀüÈ÷ length field¸¦ °¡Áö°í ¾Õ¿¡ ³õ¿©Áú °ÍÀÌ´Ù. (´Ù¸¥ access mode¸¦ °¡Áö°í À翬°áÇÔÀ¸·Î½á ¿ÜºÎ Ç¥ÇöÀº ´Ù¸¥ ±æÀ̸¦ °¡Áø ·¹Äڵ带 °á±¹ Æ÷ÇÔÇÒÁöµµ ¸ð¸¥´Ù´Â °ÍÀ» ÁÖÀÇÇ϶ó.) °¡º¯ ·¹Äڵ带 °¡Áø ÆÄÀÏÀº CHARS(n) VARYINGÀÇ record mode¸¦ »ç¿ëÇؼ¸¸ ÀÐÇôÁú ¼ö ÀÖ´Ù.
<modify built-in call> ::=
MODIFY ( <association location>, <string expression> )¿äÁîÀ½, MODIFY´Â association location¿Ü¿¡ pathnameµµ Æ÷ÇÔÇÏ´Â ¹®ÀÚ¿À» Çã¿ëÇÑ´Ù. ÀÌ°ÍÀº °ü°èµÈ ÆÄÀϸíÀÇ Àç¼³Á¤À» ¾ß±âÇÒ °ÍÀÌ´Ù.
<text argument> ::=
<text location> | <predefined text location> | <varying string location><predefined text location> ::=
STDIN | STDOUT | STDERRÁÖÀÇ: ½Äº°ÀÚ STDIN, STDOUT, STDERRÀº »çÀü Á¤ÀǵȴÙ. ÆÄÀÏÀ̳ª ÀåÄ¡¿ÍÀÇ ¿¬°è(association)¿Í Á¢¼Ó(connection)Àº ¿î¿µÃ¼Á¦ ±ÔÄ¢¿¡ µû¶ó ÇàÇØÁø´Ù. µ¿ÀÏÇÑ À§Ä¡°¡ i/o ¸ñ·Ï¿¡ ¶ÇÇÑ ³ªÅ¸³ª´Â ¹®ÀÚ ÀÎÀÚ(Áï, ÃÖÃÊ ¸Å°³º¯¼ö)·Î½á character string locationÀ» °¡Áø READTEXT³ª WRITETEXT¸¦ »ç¿ëÇÑ È¿°ú´Â Á¤ÀǵÇÁö ¾Ê´Â´Ù. Æ÷¸ËÆÃ(formatting)ÀÇ ÇöÀç ±¸ÇöÀº ÇÑ À̹ÌÁö(image)¾ÈÀÇ CHILL Å×½ºÅ©ÀÇ run-to-completion Àǹ̷Ð(semantics)À» °¡Á¤ÇÑ´Ù.
<conversion clause> ::=
<conversion code> { <conversion qualifier } * [ <clause width> ]<conversion code> ::=
B | O | H | C | F<conversion qualifier> ::=
L | E | P<character><clause width> ::=
{ <digit> } + | V | <real clause width><real clause width> ::=
{ { <digit> + | V } : { { <digit> } + | V }ÁÖÀÇ: <real clause width>´Â <conversion code> 'C'³ª 'F'¿¡ ´ëÇؼ¸¸ À¯È¿ÇÏ´Ù.
<case label specification> ::=
( <case label> {, <case label> } * )<case label> ::=
<discrete literal expression> | <literal range> | <discrete mode name> | ELSE