From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 1014db,dab7d920e4340f12 X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,dab7d920e4340f12 X-Google-Attributes: gid103376,public From: tsw@3do.com (Tom Watson) Subject: Re: Ada is 'better' than C because... Date: 1996/08/13 Message-ID: #1/1 X-Deja-AN: 174038190 distribution: world references: <01bb7bf9$b89a1740$96ee6fcf@timhome2> <4un7j3$m9g@ursa.smsu.edu> organization: The 3DO Corporation newsgroups: comp.lang.ada,comp.lang.c Date: 1996-08-13T00:00:00+00:00 List-Id: In article <4un7j3$m9g@ursa.smsu.edu>, aho450s@nic.smsu.edu (OBryan Anthony H) wrote: > William Clodius (clodius@hotspec.lanl.gov) wrote: > > : Not quite. First when passed as an argument to a user defined function > : a C array looses a lot of its distinction from a pointer, a problem > : that many other languages do not have. Second, while (almost?) all > > I have a hard time seeing this as a problem. It's one of the fantastic > advantages of the C language. An array of any given type can be passed > to a user function and treated as an array of any other integral type, > converted, processed, etc. in any manner the programmer desires. > > : additional capabilities that C arrays lack, the ability to specify > : array shape in arguments (Fortran I), and various forms of whole array Please review your history, original Fortran didn't have subroutines!! > : operations, APL, PL/I, Algol 68, and Fortran 90. > > What do you mean by array shape? C is fully capable of performing whole > array operations. The capability is not embedded in the language, as C > is designed to provide only the bare necessicities for program > development with all else being provided in function extensions, but the > language itself allows for anything a machine is capable of doing. What he would like to do (and this is not presently supported at all, and is invalid syntax) is: void routine (int n1, int n2, double a[n1][n2]) { ... } Or some such wonderful syntax. It makes writing complex math things much easier. If you are living cleanly, and the compiler is verbose enough, it might even check array bounds as well. That is a "quality of implementation" issue though. -- Tom Watson tsw@3do.com (Home: tsw@johana.com)