[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Names and primitives in SRFI 56

bear wrote:
> Character strings are not binary.  They are characters. Binary is data
> without interpretation.  Characters are an interpretation of binary
> data.  These are different ideas.

More generally, I/O models differ in at least three ways:

1. Interpretation of individual units (e.g., characters, bytes)
2. Handling of variable-length units (e.g., CR+LF, combining characters)
3. Structure of I/O (e.g., stream, record, binary objects)

Many languages simply follow the assumptions of the operating system for
which they were originally designed. For example, the original C
language assumed that bytes and characters were synonymous, that there
are no variable-length units, and that all I/O is stream-oriented. The
ANSI C standard expanded the model to handle variable-length units, but
it still assumes character/byte equivalence and stream sequencing. Newer
languages in the C family have adopted the ANSI C assumptions, as do
many higher-level languages that use C for the underlying
implementation. In contrast, languages like COBOL make radically
different assumptions. They assume record-oriented files to support the
operating systems they were designed for.
Bradd W. Szonye