Category:ALGOL 68: Difference between revisions

(→‎Coercion (casting): Reduced the width of the <div>)
 
(9 intermediate revisions by the same user not shown)
Line 26:
* Algol 68G is available as one of the languages at https://tio.run
 
==Tasks not implemented in ALGOL 68==
==TODO==
[[Tasks not implemented in ALGOL 68]]
 
Line 68:
*Dec. 1968: Report on the Algorithmic Language ALGOL 68 - Offprint from Numerische Mathematik, 14, 79-218 (1969); Springer-Verlag. - Edited by: A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck and C.H.A. Koster.
*Sep 1973: Revised Report on the Algorithmic Language Algol 68 - Springer-Verlag 1976 - Edited by: A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck, C.H.A. Koster, M. Sintzoff, C.H. Lindsey, L.G.L.T. Meertens and R.G. Fisker.
==Coding style of samples, alphabets and stropping==
Click "Expand" for more details.
<div class="mw-collapsible mw-collapsed" style="width:1200px880px; overflow:auto; background-color:parent;">
<div class="mw-collapsible-content" style="padding-left:2em;">
 
Line 97:
FINISH
|}
<br><br>'''Alphabets'''
<br><br>
Notionally, Algol 68 source is written in two alphabets. The reserved words, mode indicants (type names) and operators that are non-symbolic (.e.g. '''and''', '''or''', ...) are generally referred to as "bold words" and usually shown in a bold font in literature. Words that are identifiers (used for "variable" names, procedure names, structure member names, ...) are in a separate, non-bold font.<br>
The [https://www.softwarepreservation.org/projects/ALGOL/manual/a68s.txt/view Manual for CMU ALGOL 68S (on softwarepreservation.org)] refers to the non-bold words as being in timid face.
<br><br>'''Examples of different program representations'''
<br><br>
At the time when ALGOL 68 was defined some predominant computers had
24 or 36 bit words, with 6 bit character sets. Hence it was desirable that
ALGOL 68 should be able to run on machines with only uppercase.
As multiple fonts were generally unavailable, a method of identifying the bold words was required.<br>
The official spec provided for different representations of the same
program.
program. Quote stropping (enclosing the bold words in single quotes)
and Point stropping (preceeding the bold words with a dot)
were used.<br>
were used. A variant of Point stropping called RES stropping was also defined.
In RES stropping some language-defined bold words are not preceded by a dot. <br>
A pragmatic comment may have been required to indicate which
stropping convention was to be used, as in some of the examples below.<br>
Upper stropping (representing the bold words by upper case and
non-bold words in lower case) was introduced by Algol 68R. Upper stropping<br>
Upper stropping is used by Algol 68RS and is one of the options for Algol 68G.<br>
Rutgers ALGOL 68 uses quote stropping. Most of the samples<br>
Most of the samples on Rosetta Code use Upper stropping.<br><br>
Examples (pragmatic comments to set the stropping regime not shown):
Example:
{|border="1" style="border-collapse: collapse; border: 5px2px double grey;" align="centerleft"
|| Algol68 as typically published
¢ bold/underline typeface ¢
'''mode''' '''xint''' = '''int''';
'''xint''' sum sq:=0;
Line 125 ⟶ 131:
sum sq+:=i↑2
'''od'''
|| quoteQUOTE stropping (similar to wiki)
'pr' quote 'pr'
'mode' 'xint' = 'int';
'xint' sum sq:=0;
Line 134 ⟶ 139:
sum sq+:=i↑2
'od'
|| POINT stropping
|| 7-bit/ascii compiler
.PR UPPER .PR
MODE XINT = INT;
XINT sum sq:=0;
FOR i WHILE
sum sq/=70*70
DO
sum sq+:=i**2
OD
|| 6-bits/byte compiler
.PR POINT .PR
.MODE .XINT = .INT;
.XINT SUM SQ:=0;
Line 153 ⟶ 148:
.OD
|| RES stropping
.PR RES .PR
mode .xint = int;
.xint sum sq:=0;
Line 162 ⟶ 156:
od
|| Upper stropping
# upper case = bold #
MODE XINT = INT;
XINT sum sq:=0;
Line 291 ⟶ 284:
 
== Library code used in Rosetta Code samples ==
[https://rosettacode.org/wiki/Category:ALGOL_68-primes/prelude PrimeVarious related(including the standard prelude)]<br/>
[https://rosettacode.org/wiki/Category:ALGOL_68-primes Prime related]<br/>
<br>
[https://rosettacode.org/wiki/Category:ALGOL_68-rows Row (array) related]<br/>
[https://rosettacode.org/wiki/Category:ALGOL_68-l-system L-System related]
 
== Tools ==
[[Syntax_highlighting_using_Mediawiki_formatting#ALGOL 68|Format an upper-stropped Algol 68 source with Mediawiki markup]]<br/>
[[Compiler/Simple_file_inclusion_pre_processor#ALGOL 68|Implement ''read'' and ''include'' pragmatic-comments for compilers that don't support file inclusion]]
 
{{language programming paradigm|Concurrent}}
3,037

edits