home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!noc.near.net!hri.com!spool.mu.edu!news.cs.indiana.edu!noose.ecn.purdue.edu!mentor.cc.purdue.edu!pop.stat.purdue.edu!hrubin
- From: hrubin@pop.stat.purdue.edu (Herman Rubin)
- Newsgroups: comp.lang.misc
- Subject: Use of hardware capabilities. Was: Re: Pointers
- Message-ID: <BxI802.7EL@mentor.cc.purdue.edu>
- Date: 10 Nov 92 14:24:01 GMT
- References: <1992Nov4.093545.15950@rdg.dec.com> <Bx7oAz.7Lp@mentor.cc.purdue.edu> <1992Nov9.121317.3914@syacus.acus.oz.au>
- Sender: news@mentor.cc.purdue.edu (USENET News)
- Organization: Purdue University Statistics Department
- Lines: 51
-
- In article <1992Nov9.121317.3914@syacus.acus.oz.au> ian@syacus.acus.oz.au (Ian Joyner) writes:
- >hrubin@pop.stat.purdue.edu (Herman Rubin) writes:
-
- >>Computer hardware quite properly uses pointers, and any software that
- >>does not is just making life difficult for the users.
-
- >Firstly, computer hardware does not necessarily use pointers.
-
- >Secondly, where different architectures do use pointers, the definition
- >of them can be quite different. As I have already said, Unisys A Series
- >have quite a different kind of pointer to that which C likes. In fact
- >the hardware defines a higher level more problem oriented kind of pointer
- >than C.
-
- >Thirdly, if you want direct access to hardware capabilities, then you may
- >as well use assembler. The disadvantages should be well known. Such languages
- >are solutions or 'how' oriented, not problem and 'what' oriented. This means
- >that you are not implementation independent, which makes portability difficult.
- >This also makes maintainability difficult. This style of programming locks
- >you into certain ways of doing things, instead of giving you the freedom
- >that higher level languages give you.
-
- It is very difficult to be completely implementation independent, but I
- agree it is a good idea to be partially portable and partially implementation
- independent. The current HLLs clearly do not have enough in them to do this;
- a very simple example is the process of packing or unpacking floats, which
- is mainly portable in use, but not in design. The infamous 4.2 BSD frexp(),
- which used portable code to do something weaker, and often took a long time
- to do something simple (it could have even gone on forever), is an example.
-
- In addition, assemblers have atrocious syntax. At least provide the
- programmer with a good macro processor (a totally non-optimizing mini
- compiler, which can use types, storage locations, etc.) to get around
- this. Even in assemblers which appear to have the same syntax, they
- do not; the order of the arguments is not constant for a given instruction.
-
- Portability of certain ends does not mean portability of the means.
-
- >Customers are becoming more sophisticated, and do not like to be locked
- >into closed systems (proprietary systems are not necessarily closed), or
- >into Unix for that matter.
-
- But is not locking into a HLL being locked into a closed system?
-
- Which languages allow the introduction of new operators? Syntax is
- important for both producing code and understanding it.
- --
- Herman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907-1399
- Phone: (317)494-6054
- hrubin@snap.stat.purdue.edu (Internet, bitnet)
- {purdue,pur-ee}!snap.stat!hrubin(UUCP)
-