On 2026-09-08 10:40, David Brown wrote:
[...]
It is not always easy to tell with fir, but I believe he thought it
was shocking that this symbol is not in Unicode.ÿ I have no idea what
this symbol is supposed to be, or where he has taken it from, or what
he thinks it should mean.ÿ But if it is not in Unicode, then that is a
good indication that it would be a very poor choice for anything as it
would be unfamiliar to everyone else.ÿ And it would be impossible to
type when coding.
I think that this is actually the crucial point; how to type Unicode
symbols *efficiently* on a typical keyboard.
Concerning the "Colon equals" '?' I mentioned, I mean, why not just
use ':=' as usual. The Unicode symbol adds nothing and costs a lot!
Incidentally there were legacy keyboards that supported characters
that we now typically find only in Unicode and some legacy languages
even supported these.
I don't see a point in using non-portable or exotic characters that
are not easy to handle.
On 09/09/2026 10:49, Janis Papanagnou wrote:
On 2026-09-08 10:40, David Brown wrote:
[...]
It is not always easy to tell with fir, but I believe he thought it
was shocking that this symbol is not in Unicode.ÿ I have no idea what
this symbol is supposed to be, or where he has taken it from, or what
he thinks it should mean.ÿ But if it is not in Unicode, then that is
a good indication that it would be a very poor choice for anything as
it would be unfamiliar to everyone else.ÿ And it would be impossible
to type when coding.
I think that this is actually the crucial point; how to type Unicode
symbols *efficiently* on a typical keyboard.
Concerning the "Colon equals" '?' I mentioned, I mean, why not just
use ':=' as usual. The Unicode symbol adds nothing and costs a lot!
Incidentally there were legacy keyboards that supported characters
that we now typically find only in Unicode and some legacy languages
even supported these.
I don't see a point in using non-portable or exotic characters that
are not easy to handle.
Yes.
At the very least, they should add something very significant to the language before using them.ÿ People may want to use letters from their
own language for identifiers, and that is not unreasonable (though it is
a decision that may cause them complications later) since it adds to
their own understanding, and is relatively easy to type on their own keyboards.ÿ (Sometimes people have to switch keyboard layouts to do so.)
ÿA Norwegian speaker will see "for", "f?r" and "f“r" as three very different words, and all are easy to type on a Norwegian layout
keyboard.ÿ So a Norwegian programmer might conceivably choose to use
these Norwegian letters in their code.
So if you were making a language that was heavily oriented towards
vectors and matrices, you /might/ feel it is worth having ú and ? as
special symbols for distinguishing dot product and cross product.ÿ But
you would not want them for normal every-day usage in a general-purpose language.ÿ And you would not, as you say, use a ? when := is clearer and easier to type.
And of course, easy to type varies by user.ÿ I have immediate access to
ã, ö, ý, ó and many other symbols - people with other OS's or other
keyboard layouts may not be so lucky.
On 09/09/2026 10:49, Janis Papanagnou wrote:
[ general or nationally uncommon Unicode characters in IT ]
Yes.
At the very least, they should add something very significant to the language before using them.ÿ People may want to use letters from their
own language for identifiers, and that is not unreasonable (though it is
a decision that may cause them complications later) since it adds to
their own understanding, and is relatively easy to type on their own keyboards.
(Sometimes people have to switch keyboard layouts to do so.)
ÿA Norwegian speaker will see "for", "f?r" and "f“r" as three very different words, and all are easy to type on a Norwegian layout
keyboard.ÿ So a Norwegian programmer might conceivably choose to use
these Norwegian letters in their code.
So if you were making a language that was heavily oriented towards
vectors and matrices, you /might/ feel it is worth having ú and ? as
special symbols for distinguishing dot product and cross product.
But
you would not want them for normal every-day usage in a general-purpose language.ÿ And you would not, as you say, use a ? when := is clearer and easier to type.
And of course, easy to type varies by user.ÿ I have immediate access to
ã, ö, ý, ó and many other symbols - people with other OS's or other
keyboard layouts may not be so lucky.
Concerning the "Colon equals" '?' I mentioned, I mean, why not just
use ':=' as usual. The Unicode symbol adds nothing and costs a lot!
Janis Papanagnou pisze:
Concerning the "Colon equals" '?' I mentioned, I mean, why not just
use ':=' as usual. The Unicode symbol adds nothing and costs a lot!
this one is in fact quite nice, and practically could be used as is imo
char* txt ? "skjnskjns";
char* txt = "skjnskjns";
its maybe even better looking than oryginal = but this probably depends
on font..but from this mentioned it seem the best as for now
a ? b=3ÿ //would mean assign true to a if b=3
a=b?3 //this would mean assign b to 3ÿ andcheck if a=3
hovver im not quite convinced if thise logical 'hypothesis'
should be cast to arithmetic (maybe yes maybe not i dont know)
if hypothesis not casted it could mean that if would no need oparators
at all maybe just syntax
hypothesis statement
like
a<4 print "ssasa"
0<x<size x ? rand()
fir pisze:
Janis Papanagnou pisze:
Concerning the "Colon equals" '?' I mentioned, I mean, why not just
use ':=' as usual. The Unicode symbol adds nothing and costs a lot!
this one is in fact quite nice, and practically could be used as is imo
char* txt ? "skjnskjns";
char* txt = "skjnskjns";
its maybe even better looking than oryginal = but this probably
depends on font..but from this mentioned it seem the best as for now
a ? b=3ÿ //would mean assign true to a if b=3
a=b?3 //this would mean assign b to 3ÿ andcheck if a=3
hovver im not quite convinced if thise logical 'hypothesis'
should be cast to arithmetic (maybe yes maybe not i dont know)
if hypothesis not casted it could mean that if would no need oparators
at all maybe just syntax
hypothesis statement
like
a<4 print "ssasa"
0<x<size x ? rand()
overally good one
i may announce
AS FOR NOW ? IS A WINNER (applause)
fir pisze:
fir pisze:
Janis Papanagnou pisze:
Concerning the "Colon equals" '?' I mentioned, I mean, why not just
use ':=' as usual. The Unicode symbol adds nothing and costs a lot!
this one is in fact quite nice, and practically could be used as is imo
char* txt ? "skjnskjns";
char* txt = "skjnskjns";
its maybe even better looking than oryginal = but this probably
depends on font..but from this mentioned it seem the best as for now
a ? b=3ÿ //would mean assign true to a if b=3
a=b?3 //this would mean assign b to 3ÿ andcheck if a=3
hovver im not quite convinced if thise logical 'hypothesis'
should be cast to arithmetic (maybe yes maybe not i dont know)
if hypothesis not casted it could mean that if would no need
oparators at all maybe just syntax
hypothesis statement
like
a<4 print "ssasa"
0<x<size x ? rand()
overally good one
i may announce
AS FOR NOW ? IS A WINNER (applause)
as to how to use it on windows there ias a program auto hotkey (3 MB)
some may instal it, make create new autohotkey script on desktop (text
file with .ahk extension)
put this inside this text file
^=::SendText("?")
run it by clicking on it and then this script is run in try area and
each control + = generates ?
??slksklns??sjnskj???sskskjsn
so practically its not so hard to map unicode on keyboard imo
fir pisze:
Janis Papanagnou pisze:
Concerning the "Colon equals" '?' I mentioned, I mean, why not just
use ':=' as usual. The Unicode symbol adds nothing and costs a lot!
this one is in fact quite nice, and practically could be used as is imo
char* txt ? "skjnskjns";
char* txt = "skjnskjns";
its maybe even better looking than oryginal = but this probably
depends on font..but from this mentioned it seem the best as for now
a ? b=3ÿ //would mean assign true to a if b=3
a=b?3 //this would mean assign b to 3ÿ andcheck if a=3
hovver im not quite convinced if thise logical 'hypothesis'
should be cast to arithmetic (maybe yes maybe not i dont know)
if hypothesis not casted it could mean that if would no need oparators
at all maybe just syntax
hypothesis statement
like
a<4 print "ssasa"
0<x<size x ? rand()
overally good one
i may announce
AS FOR NOW ? IS A WINNER (applause)
On 09/09/2026 23:04, fir wrote:
fir pisze:
Janis Papanagnou pisze:
Concerning the "Colon equals" '?' I mentioned, I mean, why not just
use ':=' as usual. The Unicode symbol adds nothing and costs a lot!
this one is in fact quite nice, and practically could be used as is imo
char* txt ? "skjnskjns";
char* txt = "skjnskjns";
its maybe even better looking than oryginal = but this probably
depends on font..but from this mentioned it seem the best as for now
a ? b=3ÿ //would mean assign true to a if b=3
a=b?3 //this would mean assign b to 3ÿ andcheck if a=3
hovver im not quite convinced if thise logical 'hypothesis'
should be cast to arithmetic (maybe yes maybe not i dont know)
if hypothesis not casted it could mean that if would no need
oparators at all maybe just syntax
hypothesis statement
like
a<4 print "ssasa"
0<x<size x ? rand()
overally good one
i may announce
AS FOR NOW ? IS A WINNER (applause)
So, what happens now?
Do you implement this in your enhanced version of C, or in a new
language (hard)?
Or persuade someone else to add it to C or some other mainstream
language (magnitudes harder)?
Personally I find it near impossible to see, and near impossible to
type. Still, I added it to my language (which already uses :=) to see
how it works:
ÿÿÿ a := 10
ÿÿÿ b ? 20
ÿÿÿ c := 30
It does work, but I have to use Notepad to view it, and even there I
don't know how to type it: I pasted it from here.
Visibility is slightly better in Notepad than in Thunderbird, but not by much.
bart pisze:
On 09/09/2026 23:04, fir wrote:(...)
fir pisze:
Janis Papanagnou pisze:
Concerning the "Colon equals" '?' I mentioned, I mean, why not just
use ':=' as usual. The Unicode symbol adds nothing and costs a lot!
this one is in fact quite nice, and practically could be used as is imo >>>>
char* txt ? "skjnskjns";
char* txt = "skjnskjns";
its maybe even better looking than oryginal = but this probably
depends on font..but from this mentioned it seem the best as for now
a ? b=3ÿ //would mean assign true to a if b=3
a=b?3 //this would mean assign b to 3ÿ andcheck if a=3
hovver im not quite convinced if thise logical 'hypothesis'
should be cast to arithmetic (maybe yes maybe not i dont know)
if hypothesis not casted it could mean that if would no need
oparators at all maybe just syntax
hypothesis statement
like
a<4 print "ssasa"
0<x<size x ? rand()
overally good one
i may announce
AS FOR NOW ? IS A WINNER (applause)
So, what happens now?
Do you implement this in your enhanced version of C, or in a new
language (hard)?
Or persuade someone else to add it to C or some other mainstream
language (magnitudes harder)?
Personally I find it near impossible to see, and near impossible to
type. Still, I added it to my language (which already uses :=) to see
how it works:
ÿÿÿÿ a := 10
ÿÿÿÿ b ? 20
ÿÿÿÿ c := 30
as to visibility i think its only dependant on which font you use
for example notepad uses consolas and in this font its look quite good
for me (as i said imo better than oryginal = )
this applaus above i said a bit ironically/distancebecouse its a tinyAS FOR NOW ? IS A WINNER (applause)
fir pisze:>>>>
this applaus above i said a bit ironically/distancebecouse its a tinyAS FOR NOW ? IS A WINNER (applause)
thing, hovever it was long time to
think about this "= ==" problem ;c
imo to get to conclusions you need some steps and for
me some step was noticing equality must be =
(i forgot at the moment sadly by what ocasion i noticed it)
(maybe i will recall later, coz i know there was soem occasion)
if so assigment must be something other byt preferably not much distant
to = maybe just slightly better - this user janis posted this sign and i checked it looks ok so as for now imo its the best set as for the moment
fir pisze:
fir pisze:>>>>
this applaus above i said a bit ironically/distancebecouse its a tinyAS FOR NOW ? IS A WINNER (applause)
thing, hovever it was long time to
think about this "= ==" problem ;c
imo to get to conclusions you need some steps and for
me some step was noticing equality must be =
(i forgot at the moment sadly by what ocasion i noticed it)
(maybe i will recall later, coz i know there was soem occasion)
if so assigment must be something other byt preferably not much
distant to = maybe just slightly better - this user janis posted this
sign and i checked it looks ok so as for now imo its the best set as
for the moment
i dont know if that was the case (probbaly no) when i noticed tah single
& is mucch better than &&
dog & cat has some meaning and dog && cat is so much bad as a==2
may also not e that | as or is also not much fortunate imo
this | look good as some operator for vector elements 1|2|3 or lists
maybe, here looks great x|y = foo a|b|c so meybe it should be used
instead of , in part of cases but not ofr "or"
not sure if for all "," cases but maybe only some for example
if foo takes 3 arguments
foo a b c
thse arguments will not create vector byt maybe more like ad hoc
structure and \ should be maybe reserved for plain vectors
foo x|y - woud mean take a structure-vector of say two ints where
foo x y maybe take int and int as loose arguments
maybe that is good way to think
if so or neds another sign maybe \ is closed for or
a\b\dÿÿ //a or b or c
On 2026-09-09 13:21, David Brown wrote:
On 09/09/2026 10:49, Janis Papanagnou wrote:
[ general or nationally uncommon Unicode characters in IT ]
Yes.
At the very least, they should add something very significant to the
language before using them.ÿ People may want to use letters from their
own language for identifiers, and that is not unreasonable (though it
is a decision that may cause them complications later) since it adds
to their own understanding, and is relatively easy to type on their
own keyboards.
Yes, though I am ambivalent here. - I see three levels of national
language characters support:
ÿ- user data (text entities for general I/O to/from the users)
ÿ- national program identifiers (some languages support that)
ÿ- support for national language keywords (cf. Algol 68, e.g.)
The first one is, I think, a necessity nowadays.
The last one is probably overkill and usually not supported by common programming languages; but I also see a point specifically in cultures
that have their own alphabet where it may be considered very useful
(e.g. Russian, Indian, or Chinese, just to name some cultures/markets).
And the mid point, the "identifiers", well; in international projects
that might be counterproductive. - But as said, I'm ambivalent here.
Mind that it looks somewhat strange, it's peculiar to read, if you
have keywords in English and the entities in between in your national language. Myself I occasionally tried that but often resorted to the
unique use of the English language. Compare the variants
ÿ if is_prime (value) then ...ÿÿÿÿÿÿÿÿ all consistent in English
ÿ if ist_primzahl (wert) then ...ÿÿÿÿÿ peculiar mixed language
ÿ wenn primzahl (wert) dann ...ÿÿÿÿÿÿÿ widely unsupported
In some contexts we also used a mixed approach concerning identifiers. High-level identifiers were written in German to reflect the entities
in the requirements and specification documents - this proved really
helpful! - and technical low-level identifiers were in English. That
may sound strange but it worked pretty well (despite its peculiarity).
(Sometimes people have to switch keyboard layouts to do so.) ÿÿA
Norwegian speaker will see "for", "f?r" and "f“r" as three very
different words, and all are easy to type on a Norwegian layout
keyboard.ÿ So a Norwegian programmer might conceivably choose to use
these Norwegian letters in their code.
So if you were making a language that was heavily oriented towards
vectors and matrices, you /might/ feel it is worth having ú and ? as
special symbols for distinguishing dot product and cross product.
As a specific fixed language built-in that would be problematic for an internationally used language.
Another option, not as strongly connected to the language, would be to
have language support for defining operators (but in a more flexible
way than, say, C++ allows it[*]).
But you would not want them for normal every-day usage in a general-
purpose language.ÿ And you would not, as you say, use a ? when := is
clearer and easier to type.
And of course, easy to type varies by user.ÿ I have immediate access
to ã, ö, ý, ó and many other symbols - people with other OS's or other
keyboard layouts may not be so lucky.
Yes, I can also create some subset of Unicode characters by using the
"Alt Gr" Key. But language definitions should ideally not be relying on national specifics or hardware specifics.
Janis
[*] In Algol 68 I could define "OP XPROD", or "OP *" (depending on the
actual types), or "OP <somesym>" (where <somesym> is a fitting symbol,
maybe just 'X' or so - but there it has to be a "worthy character" and
the Algol 68 Genie interpreter doesn't seem to like Unicode operators,
or other program entities in Unicode. But I/O of such characters is at
least fine).
On Tue, 8 Sep 2026 11:14:04 +0100, bart wrote:
Of course this might all be irrelevant in a couple more years when
everyone uses tools to write code for them.
Those AI tools are inherently incapable of separating code from data.
Any programmer will appreciate how this makes them vulnerable to all
kinds of interesting prompt-injection attacks, which are only getting
more interesting as time goes on.
On 09/09/2026 21:37, Janis Papanagnou wrote:
[...]
ÿÿ- national program identifiers (some languages support that)
I think most modern programming languages support that - including C99.
I don't think they are commonly used in practice, but they are supported.
ÿÿ- support for national language keywords (cf. Algol 68, e.g.)
Algol 68, AIUI, also had a number of special symbols as operators.
[...]
[...]
Usually mixing languages (or writing systems) increases cognitive load,
and that's never a good idea.
But sometimes you only really know the
word or term in one non-English language, or the word may not have a sensible translation to English - using the original term in identifiers
can be easier than trying to invent some word in English.
How often
this occurs will of course depend on the kind of programming you are doing.
In some contexts we also used a mixed approach concerning identifiers.
High-level identifiers were written in German to reflect the entities
in the requirements and specification documents - this proved really
helpful! - and technical low-level identifiers were in English. That
may sound strange but it worked pretty well (despite its peculiarity).
I can understand that.
[...]
There needs to be some kind of "plan B" for people without easy access
to the characters.ÿ Trigraphs have been used, but they are a very messy solution - you are replacing a (presumably) clear symbol with multiple unclear ones.
A <iso646.h> style is better, where someone lacking a ^
key can write "xor" instead.
Another option, not as strongly connected to the language, would be to
have language support for defining operators (but in a more flexible
way than, say, C++ allows it[*]).
Yes.ÿ (C++ lets you make definitions for overloads of existing
operators, but it does not let you make your own operators.ÿ Haskell and Forth are examples of languages that support user-defined operators.)
[...]
The more general the audience, the more you have to target the lowest
common denominator.ÿ[...]
I've yet to hear that anyone actually used trigraphs. - Weren't they,
because of that, even removed from recent "C" (or C++) standards?
A <iso646.h> style is better, where someone lacking a ^ key can
write "xor" instead.
I don't know what the <iso646.h> header actually is. - The "problem"
with "ISO 646" is that there's many (national) variants of it. - If
we're speaking about the ISO 646 IRV (International Reference Version) there's a '^' available at least. (Which doesn't mean it's available
on specific national keyboards, though.)
]<% {
}%: #
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
[...]
I've yet to hear that anyone actually used trigraphs. - Weren't they,
because of that, even removed from recent "C" (or C++) standards?
I've used trigraphs, but only in deliberately obfuscated code. I'm not
aware of any code that uses trigraphs because they're useful.
Part of the point of trigraphs was to enable the use of C on
EBCDIC-based systems that don't have all the characters C requires,
including '{' and '}'. (There are EBCDIC code pages that do have those >characters, but they're outside the "invariant subset".)
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
[...]
I've yet to hear that anyone actually used trigraphs. - Weren't they,
because of that, even removed from recent "C" (or C++) standards?
I've used trigraphs, but only in deliberately obfuscated code. I'm not >>aware of any code that uses trigraphs because they're useful.
Part of the point of trigraphs was to enable the use of C on
EBCDIC-based systems that don't have all the characters C requires, >>including '{' and '}'. (There are EBCDIC code pages that do have those >>characters, but they're outside the "invariant subset".)
The other part may have been for those still using ASR-33 teletypes
which were missing several characters required in C, including
curly braces, vertical bar, backtick and tilde.
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
[...]
It's possible that trigraphs have been used accidentally more often
than they've been used intentionally:
fprintf(stderr, "What the heck just happened??!\n");
Even more fun (though this is deliberately contrived, not accidental)
(??/ expands to \) :
#include <stdio.h>
int main(void) {
// Is this a multi-line comment ??/
if (1) puts("No, it isn't."); else
puts("Yes, it is.");
}
Yes, trigraphs were removed in the C23 standard. (C++ removed them
in C++17.)
A <iso646.h> style is better, where someone lacking a ^ key can
write "xor" instead.
I don't know what the <iso646.h> header actually is. - [...]
<iso646.h> is a standard header, introduced in the 1995 amendment
to the C90 standard. It defines 11 macros, intended for use on
systems that use character sets that *aren't* compatible with ISO
646 (basically 7-bit ASCII), or at least that make it difficult
to use certain ASCII characters. [...]
[...]
<iso646.h> and digraphs operate on the token level. Trigraphs are
(were) replaced in translation phase 1, so they can be used in
character constants, string literals, header names, comments,
and so forth.
[...]
(BTW, in my youth I had specified some detailed semantics (and
connotations) for the textual multiplication of '?' and '!' up
to a length of 3 - it had not been common to express more than
expressible with the single signs. I considered it worthy since
the expressive power of plain '!' and '?' wasn't sufficient for
the finer tones.)
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
[...]
(BTW, in my youth I had specified some detailed semantics (and
connotations) for the textual multiplication of '?' and '!' up
to a length of 3 - it had not been common to express more than
expressible with the single signs. I considered it worthy since
the expressive power of plain '!' and '?' wasn't sufficient for
the finer tones.)
Really??? Tell me more!!!
???Or maybe not???
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
[...]
(BTW, in my youth I had specified some detailed semantics (and
connotations) for the textual multiplication of '?' and '!' up
to a length of 3 - it had not been common to express more than
expressible with the single signs. I considered it worthy since
the expressive power of plain '!' and '?' wasn't sufficient for
the finer tones.)
Really??? Tell me more!!!
???Or maybe not???
scott@slp53.sl.home (Scott Lurndal) writes:
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
[...]
I've yet to hear that anyone actually used trigraphs. - Weren't they,
because of that, even removed from recent "C" (or C++) standards?
I've used trigraphs, but only in deliberately obfuscated code. I'm not
aware of any code that uses trigraphs because they're useful.
Part of the point of trigraphs was to enable the use of C on
EBCDIC-based systems that don't have all the characters C requires,
including '{' and '}'. (There are EBCDIC code pages that do have those
characters, but they're outside the "invariant subset".)
The other part may have been for those still using ASR-33 teletypes
which were missing several characters required in C, including
curly braces, vertical bar, backtick and tilde.
Apparently the ASR-33 generated 7-bit ASCII, but didn't support
lowercase letters.
The stty command had (and still has, at least in some versions)
options to map uppercase characters to lowercase, and to generate
uppercase with a '\' prefix, so Hello would be entered as \HELLO.
I suppose a C programmer would likely be using a line editor like
"ed" to edit code, which would be subject to the current tty
settings, and since C is mostly lowercase the translation would
make it tolerable.
I wonder how many ASR-33s were still in use for C development by
the time <iso646.h> and trigraphs were introduced in 1995.
On 10/09/2026 23:48, Keith Thompson wrote:
scott@slp53.sl.home (Scott Lurndal) writes:
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:The other part may have been for those still using ASR-33 teletypes
[...]
which were missing several characters required in C, including
curly braces, vertical bar, backtick and tilde.
(Where does C require backtick?)
On 10/09/2026 23:48, Keith Thompson wrote:
scott@slp53.sl.home (Scott Lurndal) writes:
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
[...]
I've yet to hear that anyone actually used trigraphs. - Weren't they, >>>>> because of that, even removed from recent "C" (or C++) standards?
I've used trigraphs, but only in deliberately obfuscated code. I'm not >>>> aware of any code that uses trigraphs because they're useful.
Part of the point of trigraphs was to enable the use of C on
EBCDIC-based systems that don't have all the characters C requires,
including '{' and '}'. (There are EBCDIC code pages that do have those >>>> characters, but they're outside the "invariant subset".)
The other part may have been for those still using ASR-33 teletypes
which were missing several characters required in C, including
curly braces, vertical bar, backtick and tilde.
(Where does C require backtick?)
Apparently the ASR-33 generated 7-bit ASCII, but didn't support
lowercase letters.
The stty command had (and still has, at least in some versions)
options to map uppercase characters to lowercase, and to generate
uppercase with a '\' prefix, so Hello would be entered as \HELLO.
I suppose a C programmer would likely be using a line editor like
"ed" to edit code, which would be subject to the current tty
settings, and since C is mostly lowercase the translation would
make it tolerable.
I wonder how many ASR-33s were still in use for C development by
the time <iso646.h> and trigraphs were introduced in 1995.
I used ASR33s and other terminals with various limitations from 1976.
The first computer I /made/ used 6-bit (I think, ASCII codes 32 to 95
offset to be 0 to 63, so upper-case only), in 1981.
How did people even write C on such systems?
It does work, but I have to use Notepad to view it
| Sysop: | Tetrazocine |
|---|---|
| Location: | Melbourne, VIC, Australia |
| Users: | 8 |
| Nodes: | 8 (0 / 8) |
| Uptime: | 14:38:58 |
| Calls: | 220 |
| Files: | 21,513 |
| Messages: | 83,058 |