character ::=
graphic_character
| format_effector
| other_control_function
graphic_character ::=
identifier_letter
| digit
| space_character
| special_character
Static Semantics
upper_case_identifier_letter | lower_case_identifier_letter
Any character of Row 00 of ISO 10646 BMP whose name begins ``Latin Capital Letter''.
Any character of Row 00 of ISO 10646 BMP whose name begins ``Latin Small Letter''.
One of the characters 0, 1, 2, 3, 4, 5, 6, 7, 8, or 9.
The character of ISO 10646 BMP named ``Space''.
Any character of the ISO 10646 BMP that is not reserved for a control function, and is not the space_character, an identifier_letter, or a digit.
The control functions of ISO 6429 called character tabulation (HT), line tabulation (VT), carriage return (CR), line feed (LF), and form feed (FF).
Any control function, other than a format_effector, that is allowed in a comment; the set of other_control_functions allowed in comments is implementation defined.
symbol name symbol name
" quotation mark : colon
# number sign ; semicolon
& ampersand < less-than sign
' apostrophe, tick = equals sign
( left parenthesis > greater-than sign
) right parenthesis _ low line, underline
* asterisk, multiply | vertical line
+ plus sign [ left square bracket
, comma ] right square bracket
- hyphen-minus, minus { left curly bracket
. full stop, dot, point } right curly bracket
/ solidus, divide
Implementation Permissions
Static Semantics
& ' ( ) * + , - . / : ; < = > |
=> .. ** := /= >= <= << >> <>
delimiter name => arrow .. double dot ** double star, exponentiate := assignment (pronounced: ``becomes'') /= inequality (pronounced: ``not equal'') >= greater than or equal <= less than or equal << left label bracket >> right label bracket <> boxImplementation Requirements
identifier ::= identifier_letter {[underline] letter_or_digit}
letter_or_digit ::= identifier_letter | digit
Static Semantics
Count X Get_Symbol Ethelyn Marion Snobol_4 X1 Page_Count Store_Next_Item
numeric_literal ::= decimal_literal | based_literalNOTES
decimal_literal ::= numeral [.numeral] [exponent]
numeral ::= digit {[underline] digit}
exponent ::= E [+] numeral | E - numeral
Static Semantics
12 0 1E6 123_456 -- integer literals 12.0 0.0 0.456 3.14159_26 -- real literals
based_literal ::= base # based_numeral [.based_numeral] # [exponent]
base ::= numeral
based_numeral ::=
extended_digit {[underline] extended_digit}
extended_digit ::= digit | A | B | C | D | E | FLegality Rules
2#1111_1111# 16#FF# 016#0ff# -- integer literals of value 255 16#E#E1 2#1110_0000# -- integer literals of value 224 16#F.FF#E+2 2#1.1111_1111_1110#E11 -- real literals of value 4095.0
character_literal ::= 'graphic_character'NOTES
'A' '*' ''' ' '
string_literal ::= "{string_element}"
string_element ::= "" | non_quotation_mark_graphic_character
Static Semantics
"Message of the day:" "" -- a null string literal " " "A" """" -- three string literals of length 1 "Characters such as $, %, and } are allowed in string literals"
comment ::= --{non_end_of_line_character}
Static Semantics
-- the last sentence above echoes the Algol 68 report end; -- processing of Line is complete -- a long comment may be split onto -- two or more consecutive lines ---------------- the first two hyphens start the comment
pragma ::=
pragma identifier [(pragma_argument_association
{, pragma_argument_association})];
pragma_argument_association ::=
[pragma_argument_identifier =>] name
| [pragma_argument_identifier =>] expression
Syntax
Static Semantics
pragma List(Off); -- turn off listing generation pragma Optimize(Off); -- turn off optional optimizations pragma Inline(Set_Mask); -- generate code for Set_Mask inline pragma Suppress(Range_Check, On => Index); -- turn off range checking on Index
Syntax
abort else new return
abs elsif not reverse
abstract end null
accept entry select
access exception separate
aliased exit of subtype
all or
and for others tagged
array function out task
at terminate
generic package then
begin goto pragma type
body private
if procedure
case in protected until
constant is use
raise
declare range when
delay limited record while
delta loop rem with
digits renames
do mod requeue xor
Go to the first, previous, next, last section, table of contents.