From: | glen herrmannsfeldt <gah@ugcs.caltech.edu> |
Newsgroups: | comp.compilers |
Date: | Fri, 8 Jun 2012 22:47:43 +0000 (UTC) |
Organization: | Aioe.org NNTP Server |
References: | 12-03-012 12-03-014 12-06-008 12-06-011 12-06-018 |
Keywords: | design, i18n |
Posted-Date: | 09 Jun 2012 09:10:19 EDT |
Robert A Duff <bobduff@shell01.theworld.com> wrote:
(previous snip on English language keywords in programming.)
> And what about predefined libraries? I imagine it's not too
> hard for a non-English speaker to memorize the meaning of
> 50-or-so English keywords, but what about thousands of names
> in the predefined libraries? Or third-party libraries?
But many are only slightly related to any English words.
Well, maybe more now that languages allow for longer names, but many
of the older routines, from the Fortran 66 days, have almost no
mnemonic value at all. You just have to look them up (in any
language). The IMSL routines for example.
Some assemblers are more mnemonic than others. The IBM mainframe
assemblers like short mnemonics, A for add, L for load, so, yes,
the first letter of the English word, but not much more.
Only very rarely do assemblers use whole English words.
(Even more, the S/360 and successor hex opcodes for add, subtract,
multiply, and divide instructions usually end in A, B, C, and D,
respectively, such that add instructions end in A, and divide
end in D. Makes it a little easier to remember the opcodes.)
Even more, the IBM OS/360 and successor assemblers have OPSYN
so you can assign any names you want in place of the normal opcodes.
(And make it harder for readers who don't know your language.)
Well, with many assemblers you could write macros to expand
using other names, but OPSYN is more direct.
(snip)
> I'd solve that by allowing Unicode letters in identifiers, but require
> the programmer to declare up front which ones they want to use (in a
> project-wide configuration file of some sort). Nobody wants to use
> all of Unicode -- they just want to use the letters of one or two
> natural languages, plus maybe a few symbols like a proper <= sign.
I believe that Java allows all unicode letters to start symbolic
names, and unicode letters and digits to continue them.
> In comments, anything goes (allow all Unicode characters).
Be careful with \u000a though.
-- glen
Return to the
comp.compilers page.
Search the
comp.compilers archives again.