[fpc-pascal] Re: Illogical automatic dereferencing

Guillermo Martínez Jiménez gmartinez at burdjia.com
Tue Oct 13 09:42:11 CEST 2009


Hello everybody.

My message is for both "Why use pointers to arrays?" and "Illogical
automatic deferencing".

I really don't understand why Pascal "should" include C-style stuff.
PASCAL IS DIFFERENT LANGUAGE THAN C. STOP. Actually I hate that
"C-lovers" that think all languages must use C-style stuff inside any
other languages. I'm using C right now, as well as Pascal, and I
really think that C is a great language for some tasks (i.e.
low-level) but it isn't the panacea ("the solution for everything").
You'll never add C-style stuff inside SQL, do you? So, why do you want
C-style stuff in Pascal?

As I've said, C language is useful sometimes, but it's ugly and prone
to runtime errors. A lot of that runtime errors are compilation-time
errors on Pascal, so they're easer to find and to fix for me (just the
opposite that somebody said in this discussion). That's why I love to
use Pascal. It's less frustrating. A lot.

If you have "p: PINTEGER" then you're assuming you're accessing to ONE
integer. If you need to access to an array of integer then use a
pointer to an array. What's the problem with "p^[3]"? I think it is
better because you see you're accessing to a pointer to an array, and
in most cases it's important to don't forget it.

When I use C, I try to do not use pointers as arrays. I write something as:

/* Useless example function. */
  char Fn (int Ndx)
  {
    char AnArray[500];
    char *Pointer;

    Pointer = &(AnArray[0]);
    return *(Pointer + Ndx);  /* instead of "return Pointer[Ndx];" */
  }

This is more readable, because "*(Pointer + Ndx)" remembers me that
it's a pointer, not an array, so may be it wasn't assigned and may be
it needs some test before to use it (i.e. "if ( ! Pointer) return
EXIT_FAILURE;" or something).

As conclusion: I think that Pascal is good as it is. Of course it can
evolve to be better, but I think it doesn't need that C-style stuff
(i.e. Object Pascal has it's own approach to OOP keeping the original
"Pascal-style" and I like it much more than C++ and C# [can't say the
same about Objective C ;) ]).

Greetings,
Guillermo "Ñuño" Martínez



More information about the fpc-pascal mailing list