Blocks-A New Data type for SNOBOL4

A new data type, called a block, has been implemented
for SNOBOL4.  A block is a three-dimensional 
aggregate of characters in the form of a right parallelepiped,
best thought of as a three-dimensional 
extension to a string.  (The third dimension is used for
overstriking.)  Blocks may be printed, concatenated 
in any of three dimensions, and merged on the basis
of program-defined connection points.  Some blocks 
adapt in size and shape to their environment.  Blocks
and their operations are mainly used for composing 
printable output.  A variety of graphical problems (including
flowcharting, bargraphs, logic diagrams, 
mathematical-equation formation, and text justification
and preparation) have been programmed on a printer 
in what appears to be an easy and natural way.  In addition
to these somewhat specialized applications, 
blocks appear to be a good general purpose device-independent
output formation mechanism especially suitable 
for nonnumerical work.  The concept of a block is largely
language independenthat is, blocks require 
little in the way of specialized syntax and could readily
be absorbed into the external structure of 
most programming languages.

CACM June, 1972

Gimpel, J. F.

character manipulation, output formatting, string
processing, graphics, nonnumerical programming, 
SNOBOL4, data types, two-dimensional mathematics, test processing, flowcharting

4.22 4.41

CA720604 JB January 30, 1978  4:38 PM

1086	4	2341
1132	4	2341
1234	4	2341
1263	4	2341
1265	4	2341
1270	4	2341
1323	4	2341
1358	4	2341
1379	4	2341
1380	4	2341
1453	4	2341
1464	4	2341
1484	4	2341
1491	4	2341
1498	4	2341
1613	4	2341
1614	4	2341
1767	4	2341
1781	4	2341
1781	4	2341
1781	4	2341
1825	4	2341
1860	4	2341
1945	4	2341
2083	4	2341
2178	4	2341
2179	4	2341
2252	4	2341
2325	4	2341
2341	4	2341
2341	4	2341
2341	4	2341
2341	4	2341
2546	4	2341
2645	4	2341
2652	4	2341
2684	4	2341
2842	4	2341
2929	4	2341
2934	4	2341
3069	4	2341
669	4	2341
679	4	2341
691	4	2341
761	4	2341
949	4	2341
989	4	2341
990	5	2341
1466	5	2341
1468	5	2341
2341	5	2341
2341	5	2341
2341	5	2341
2545	5	2341
3184	5	2341
1739	6	2341
1781	6	2341
2341	6	2341