Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!tut.cis.ohio-state.edu!pt.cs.cmu.edu!sei!firth From: firth@sei.cmu.edu (Robert Firth) Newsgroups: comp.lang.misc Subject: Re: NOT Educating FORTRAN programmers to use C Message-ID: <5741@bd.sei.cmu.edu> Date: 23 Jan 90 12:59:15 GMT References: <17036@megaron.cs.arizona.edu> <14203@lambda.UUCP> Reply-To: firth@sei.cmu.edu (Robert Firth) Organization: Software Engineering Institute, Pittsburgh, PA Lines: 18 In article <14203@lambda.UUCP> jlg@lambda.UUCP (Jim Giles) writes: >You just made it. In C there is _NO_DIFFERENCE_ between a pointer and >an array. In these other languages, there _IS_ a difference! In a >procedure in C, any two non-local pointers must be assumed _aliased_ >to each other (and to all other non-local objects) because they _might_ >be. That is part of the legitimate functionality of pointers: dynamic >aliasing. Type-safe dynamic aliasing, as provided in Pascal, Modula-2, Ada &c is indeed a most useful and legitimate part of the functionality of pointers. It is also a virtually useless and illegitimate part of the functionality of arrays. For this reason, a language that conflates pointers and arrays is seriously misdesigned. On this one, I vote for Fortran.