[comp.lang.c] C != FORTH; Pointers == Links

christiansen@chewi.che.wisc.EDU (REED CHRISTIANSEN) (03/03/88)

In article <8803021809.aa16276@SMOKE.BRL.ARPA>,
TLIMONCE%DREW.BITNET@CUNYVM.CUNY.EDU (Tom Limoncelli) writes:

>I'm really excited about the idea of a "D" programming language. Let me
>make a suggest or two:
>
>I think that the one thing that really detracts from C is the fact that it
>isn't RPN.  Reverse-polish-notation has a lot of benefits.  First of all,

   Oh, no.  I like RPN on my calculator, because it is fast, but no one
   else has to read my calculator code.  Please don't turn a readable
   language into something like "FORTH"...  Maintenance programmers
   will turn your name into an ugly epithet!

>we'd get the support of all the HP calculator lovers, all the FORTH users,
>and compiler writers would find it easier to write compilers since RPN is
>easier to parse.

   Parsing isn't really a big issue.  Most computer science undergraduates
   learn how to parse normal mathematical notation.  And think of the
   conversion problems from C, Pascal or Fortran...

>
>Another thing that "D" should have... actually not have, is pointers. At
>least 85% of the problems discussed here on Info-C are people who have
>some problem with confusion about pointers.  Removing pointers would solve
>this whole set of problems.

   Remove my pointers?!  The ability to dynamically manage memory and
   manipulate arbitrary data structures is the main reason I will use
   C on an application rather than Fortran.  Of course, for numerical
   algorithms, Fortran is my choice, due to C's inadequate array support.

>Instead of pointers, we should have dynamic links.  These would be just
>like pointers but totally different.  Dynamic links will hold the address
>of what they are pointing to.  With such a simple definition like this,
>nobody will get confused.

   What is a pointer, except for an address of an object, and its
   associated type?  Removing the type specification thwarts prototype
   checking, which is contrary to the spirit of the ANSI standard.

Exasperatedly,                   | Small Song
                                 | ===== ====
Reed L. Christiansen             | The reeds
UW Dept of Chemical Engineering  | give way to the
1415 Johnson Drive               |
Madison, WI  53706               | wind and give
(608)262-7267                    | the wind away  -- A.R.Ammons, 1970

Internet: CHRISTIANSEN@CHEWI.CHE.WISC.EDU
------

kers@otter.hple.hp.com (Christopher Dollin) (03/04/88)

Hey, Reed ...

I think the original poster was jesting.

Oddly enough, Pop11 operates Polish style, but you'd not think it to look at
most of the code, as expressions

    E1 + E2

are translated to

    E1.codefor, E2.codefor, CALL +

"Well, so what?" you may say. "So it uses RPN as an implementation technique.
But if the user can't see, who cares?". Well, the user can see it if da wants
to, and explot it even.

Hm. Probably this ought to have been diverted to comp.lang.misc.... But since
there seems to be quite a lot of "How to 'improve' C to D", should there be
a comp.lang.prefections?

Regards,
Kers.

jfh@killer.UUCP (Working on a tan) (03/06/88)

In article <1670012@otter.hple.hp.com> kers@otter.hple.hp.com (Christopher Dollin) writes:
>Hey, Reed ...
>
>I think the original poster was jesting.
>
>Oddly enough, Pop11 operates Polish style, but you'd not think it to look at
>most of the code, as expressions
>
>    E1 + E2
>
>are translated to
>
>    E1.codefor, E2.codefor, CALL +
>
>"Well, so what?" you may say. "So it uses RPN as an implementation technique.
>But if the user can't see, who cares?". Well, the user can see it if da wants
>to, and explot it even.

[ And yes, I've diverted this to comp.lang.misc, and subscribed ... ]

>Regards,
>Kers.

I _used_ to write Marine Engineering programs on polish machines, which I
would not recommend to anyone.  I prefer not remembering what I have on
the stack.

However, in all fairness, I love to use polish machines, both real and
virtual, to generate code for.  I recently wrote a relational database
report writer using a reverse polish pseudo-machine as the execution
engine.  Compared to writing compilers for normal machines, such as
M68000's or Vaxen, the code generation is far easier since all addressing
modes are implied stack or some simple form of addressing (gross over
simplification here), rather than having to deal with dozens of modes
on a CISC machine.

Am I alone inthis feeling - comments anyone?

- John.
-- 
John F. Haugh II                  SNAIL:  HECI Exploration Co. Inc.
UUCP: ...!ihnp4!killer!jfh                11910 Greenville Ave, Suite 600
"You can't threaten us, we're             Dallas, TX. 75243
  the Oil Company!"                       (214) 231-0993 Ext 260