Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #108463
| Subject | Re: Variable naming issue |
|---|---|
| Newsgroups | comp.lang.c |
| References | <daaca66f-c8ff-41f3-99b2-d4c457b96959@googlegroups.com> <YswLA.477560$UY3.417968@fx11.am4> <odmu6j$mg$1@dont-email.me> <OPELA.457019$5u1.273856@fx03.am4> <odnaf4$6gg$1@dont-email.me> |
| From | bartc <bc@freeuk.com> |
| Message-ID | <HdHLA.398274$2K7.326696@fx18.am4> (permalink) |
| Organization | virginmedia.com |
| Date | 2017-04-25 13:24 +0100 |
On 25/04/2017 12:07, David Brown wrote:
> On 25/04/17 11:40, bartc wrote:
>> In the rare case of a compiler working with an existing assembler that
>> doesn't support '$' (or any other character, eg. Unicode),
>
> What is it that you think is rare? That compilers work with existing
> assemblers? Most compilers generate assembly outputs, and most make use
> of existing assemblers.
>
> Or do you think that it is rare for an assembler to use a dollar sign in
> some special way that is incompatible (or at least inconvenient) with
> using dollars in identifiers?
>
> I know of assemblers that use $ to indicate local variables, assemblers
> that use it for hex literals (rather than C's 0x), assemblers that use
> it for register names, assemblers that use it for "current position" -
> and assemblers that simply reject it as a letter.
So you're saying they're all different? In which case, the answer is to
cripple the language to work to the lowest common denominator? If one
assembler only works in upper case, the language should only allow upper
case too.
There are sometimes external influences, for example linkers limiting
the lengths of global names. But even there it is possible to around the
restrictions (as MSDOS did with allowing longer, free-format filenames
within the 8.3 filename format).
Anyway these are all very easy to fix. How long does it take to write an
assembler? It must be a lot easier than writing a compiler!
> There are /many/ assemblers out there. Your experience is with a couple
> of x86 tools and maybe a brief look at something for ARM - your
> extrapolations of your narrow (albeit in-depth) experiences as though
> they were general rules, makes you look silly.
In the 70s I used assemblers for 6800, some 16-bit machine, and for
PDP10. I just checked the manual for the latter's assembler ('macro10'),
and it allows dollars in symbol names.
In the 80s, I wrote assemblers for 8051, Z80 and 80186. In the 90s, I
wrote inline assemblers for 80386. For a while I wrote my own linkers.
Very narrow? Maybe. But we're talking about allowing a $ as part of
name; it's rocket science.
> Yes, an escape mechanism of some sort /could/ be used - but there are no
> forms of reserved identifiers that could sensibly be used, so there is
> nothing to stop conflict with other valid identifiers. You would have
> to have a silly long escape sequence - and that could conflict with
> length restrictions on assembly identifiers, and it would certainly look
> strange to anyone examining listing files, linker map files, etc., or
> using a debugger. And of course everything would fail if you tried to
> link these symbols with code generated with other tools.
Again, these should not be a consideration when designing a language (if
it's successful, the tools will follow), otherwise nothing would ever
progress.
(BTW have you checked whether those tools do in fact support $? The fact
that gcc does so, suggests that they do.)
> And thus today's situation - that some compilers reject $ altogether,
> and that others accept it if the backend assembler is happy, is the best
> that can be done.
In that case why bother at all?
I'm in the annoying situation where I like to use $ rather than _ for
special 'decoration', but one or two out of the six C compilers I test
with don't support $. Even though they support the same targets.
The odd one out is Tiny C, which is too useful a compiler to decide not
to support. There is also lccwin, which supports $ but not at the start
of a name.
> This is for practical and sensible reasons - not
> because compiler writers are lazy, stupid, stuck in the 70's, or did not
> think of adding an extra "case" line to their software.
In the case of Tiny C, I think everything is done internally. So what's
the excuse, saving a few bytes of code? It can't be that desperate to be
stay tiny!
--
bartc
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Variable naming issue maximus fl <ajones2600@gmail.com> - 2017-04-24 16:17 -0700
Re: Variable naming issue David Kleinecke <dkleinecke@gmail.com> - 2017-04-24 16:28 -0700
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-04-25 01:09 +0100
Re: Variable naming issue Noob <root@127.0.0.1> - 2017-04-25 09:37 +0200
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-04-25 10:40 +0100
Re: Variable naming issue David Brown <david.brown@hesbynett.no> - 2017-04-25 13:07 +0200
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-04-25 13:24 +0100
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-04-25 13:27 +0100
Re: Variable naming issue Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-04-25 13:59 +0100
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-04-25 14:20 +0100
Re: Variable naming issue Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-04-25 14:27 +0100
Re: Variable naming issue Keith Thompson <kst-u@mib.org> - 2017-04-25 11:52 -0700
Re: Variable naming issue Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-04-25 13:40 -0700
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-04-25 22:14 +0100
Re: Variable naming issue David Brown <david.brown@hesbynett.no> - 2017-04-26 00:16 +0200
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-04-26 00:13 +0100
Re: Variable naming issue David Brown <david.brown@hesbynett.no> - 2017-04-26 10:10 +0200
Re: Variable naming issue supercat@casperkitty.com - 2017-04-25 14:33 -0700
Re: Variable naming issue Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-04-25 06:39 -0700
Re: Variable naming issue Robert Wessel <robertwessel2@yahoo.com> - 2017-04-25 09:35 -0500
Re: Variable naming issue Gareth Owen <gwowen@gmail.com> - 2017-04-25 18:39 +0100
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-04-25 18:49 +0100
Re: Variable naming issue David Kleinecke <dkleinecke@gmail.com> - 2017-04-25 11:19 -0700
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-04-25 19:31 +0100
Re: Variable naming issue Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-04-25 23:36 +0100
Re: Variable naming issue David Kleinecke <dkleinecke@gmail.com> - 2017-04-25 17:04 -0700
Re: Variable naming issue Robert Wessel <robertwessel2@yahoo.com> - 2017-04-26 00:32 -0500
Re: Variable naming issue David Brown <david.brown@hesbynett.no> - 2017-04-25 16:02 +0200
Re: Variable naming issue Tim Rentsch <txr@alumni.caltech.edu> - 2017-05-02 05:25 -0700
Re: Variable naming issue supercat@casperkitty.com - 2017-05-02 10:04 -0700
Re: Variable naming issue Tim Rentsch <txr@alumni.caltech.edu> - 2017-05-05 03:06 -0700
Re: Variable naming issue supercat@casperkitty.com - 2017-04-25 07:12 -0700
Re: Variable naming issue Robert Wessel <robertwessel2@yahoo.com> - 2017-04-25 09:48 -0500
Re: Variable naming issue Robert Wessel <robertwessel2@yahoo.com> - 2017-04-25 09:52 -0500
Re: Variable naming issue Noob <root@127.0.0.1> - 2017-04-26 08:46 +0200
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-04-26 11:46 +0100
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-04-26 12:00 +0100
Re: Variable naming issue gordonb.o1c18@burditt.org (Gordon Burditt) - 2017-05-07 22:25 -0500
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-05-08 10:35 +0100
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-05-08 10:53 +0100
Re: Variable naming issue David Kleinecke <dkleinecke@gmail.com> - 2017-05-08 11:47 -0700
Re: Variable naming issue bartc <bc@freeuk.com> - 2017-05-08 19:59 +0100
Re: Variable naming issue gazelle@shell.xmission.com (Kenny McCormack) - 2017-04-25 10:43 +0000
Re: Variable naming issue Robert Wessel <robertwessel2@yahoo.com> - 2017-04-25 09:33 -0500
Re: Variable naming issue Keith Thompson <kst-u@mib.org> - 2017-04-24 17:26 -0700
Re: Variable naming issue maximus fl <ajones2600@gmail.com> - 2017-04-24 18:18 -0700
Re: Variable naming issue scott@slp53.sl.home (Scott Lurndal) - 2017-04-25 14:48 +0000
csiph-web