There are no computers anywhere in existence, be they men or machine, that
do not:
(1) Take some form of input
(2) Perform some operation on it
(3) Generate output
It is the fundamental definition of a "computer," ie "one who computes" or
"something that computes". They all follow this course:
(1) input
(2) process
(3) output
And in all cases, that absolutely means read-write. There are no exceptions.
Completely false suppositions. See below.
All computers are read-write by default. The only things which make them
read-only are imposed protocols which inhibit their otherwise unrestricted
operation.
Nevertheless, that absolutely doesn't mean the input needs to be
"read-writeable" in all cases or that string literals can't be
read-only. In fact, the initialization of constant strings into the
CONST segment, in the fashion VC++ does, is done with an eye toward
security. Your proposed compiler will allow a process to write new
data into your string buffers, with the potential to overflow those
buffers, a clear security risk if an attacker can control the input
that modifies your strings. You have not demonstrated that you
understand that issue and that you have coded to prevent such
exploitation. I dare say the amount of code you will need to write to
cover such contingencies will be far more repetitious and wasteful
than copying some read-only data into read-write memory with a few
memcpy calls.
Computers take input, yes, but that input is typically read-only
(e.g., a keyboard or a A/D converter), the data is placed into
read-write buffers where it can be modified as needed, sometimes, many
times it isn't.
The process may be read-only code, not self-modifying and certainly in
embedded systems it will ALWAYS be read-only, including any strings it
might be programmed to output. The x86 architecture also goes to great
pains to protect the code segment against modification. PROCESS DATA
will almost certainly be read-write but it may not even be stored in
common with INPUT.
Moreover, while a "computer" can be read-write, it is NEVER read-write
in all it's memory for all time. Certain portions MUST be reserved as
read-only and certain other special locations may even be write-only,
your argument is specious on these points. As a generalization of
"computer" your definitions and expectations fail miserably.