home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!wupost!sdd.hp.com!caen!destroyer!ncar!noao!amethyst!organpipe.uug.arizona.edu!news
- From: dave@cs.arizona.edu (Dave Schaumann)
- Newsgroups: comp.programming
- Subject: Linking & type safety (was Re: ANSI C, was Re: Teaching the basics)
- Message-ID: <1992Aug23.200121.20219@organpipe.uug.arizona.edu>
- Date: 23 Aug 92 20:01:21 GMT
- References: <1992Aug21.154839.2664@organpipe.uug.arizona.edu> <1992Aug21.232022.28931@prl.dec.com> <1992Aug22.034214.19539@linus.mitre.org> <PRENER.92Aug23032830@prener.watson.ibm.com>
- Sender: news@organpipe.uug.arizona.edu
- Reply-To: dave@cs.arizona.edu (Dave Schaumann)
- Organization: University of Arizona
- Lines: 40
- In-Reply-To: prener@watson.ibm.com (Dan Prener)
-
- >>Now, a type checking loader would be a fine thing.
- >>So just what is the problem here? Why can't I buy one?
-
- >You can. It's called a VAX.
-
- Somebody's making a linker called `VAX'? Just wait'll DEC hears about it...
-
- >However, in Unix, ld (the linker) has lost all
- >type information by the time the link occurs.
-
- That's funny. When I use g++ on this Unix box, it remembers type information
- just fine.
-
- The trouble is not "VAX" vs "UNIX" (how could it be? A VAX is a machine;
- UNIX is an OS...). The trouble is that linker technology remains mired in
- the 60's, while computer language has continued to evolve. So while we
- have ANSI giving us prototypes &c for C a few years ago, it also gives us
- the "unique in the first 6 characters" rule for external identifiers, and
- says nothing at all about type checking at link time.
-
- The trouble is that there are too many people out there with a vested interest
- in seeing that C doesn't change too much, so that they can still compile their
- old applications; too many people who are unwilling or unable to afford hiring
- a programmer to write a modern linker for their pet platform.
-
- The popularity of C is one of its biggest assets when it comes to portability
- issues; but it's also its biggest problem when it comes to encorperating new
- language technology. Of course, C has changed and no doubt will continue to
- change in the future. But you have to accept that you'll never be able to
- introduce a radical new change again. Every change will always be incremental,
- with all the old obsolete technology held over for an iteration or so to give
- the stragglers a chance to catch up.
-
- If you really want to help C, write a system implementation that incorperates
- your wonderful new innovation, and then when it comes time to redefine the
- standard, you can point to your system and tell ANSI, "See? Prior art! Prior
- art!".
-
- --
- Dave Schaumann dave@cs.arizona.edu
-