Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rutgers!topaz.rutgers.edu!ron From: ron@topaz.rutgers.edu (Ron Natalie) Newsgroups: comp.lang.c Subject: Re: Intel && C (was: Passing (char *) NULL) Message-ID: <14106@topaz.rutgers.edu> Date: Thu, 20-Aug-87 15:27:28 EDT Article-I.D.: topaz.14106 Posted: Thu Aug 20 15:27:28 1987 Date-Received: Sat, 22-Aug-87 11:19:09 EDT References: <166@qetzal.UUCP> <157@hobbes.UUCP> <875@bsu-cs.UUCP> <2163@xanth.UUCP> <220@vianet.UUCP> Organization: Rutgers Univ., New Brunswick, N.J. Lines: 23 Keywords: MSC,NULL segments > > Is it just me, or has anyone else noticed how C is being warped, made > > ugly and complex, because ONE microprocessor manufacturer [Intel] couldn't > > see fit to provide a flat, linear address space? > This argument boils down to "If 'C' was good enough for a PDP-11, it > should be good enough for any machine!" PDP-11's can't provide a flat linear address space either. You are limited to 64K text and data (or 64K each if you have split I/D). Note that this is exactly the same as small model on the 80x86. The best we ever managed in a coherent fashion was text overlays (medium model). Note that the NULL problem is caused by not working is because you are not guaranteed to have a zero at physical location zero. On PDP-11's you had instructions there (remember seeing programs printing p&P6). People who assume NULL's were careless VAX programmers. We're still finding these traps in 4.2 BSD ported to 68000's and other UNIX boxes that are not VAXes. Acheiving portability is done by not designing unimplementable constructs into the language, not by stating that certain machines should not be allowed to exist. -Ron