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: 103376,99a6311c4195e21b X-Google-Attributes: gid103376,public X-Google-Thread: 1094ba,99a6311c4195e21b X-Google-Attributes: gid1094ba,public From: "William B. Clodius" Subject: Re: Matrix Multiplication Date: 1999/12/15 Message-ID: <3857E220.26AE90BB@lanl.gov>#1/1 X-Deja-AN: 561068143 Content-Transfer-Encoding: 7bit References: <385699B5.59C14D03@lmco.com> <838koc$b6d$1@nnrp1.deja.com> X-Accept-Language: en Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@lanl.gov X-Trace: newshost.lanl.gov 945283617 18746 128.165.58.113 (15 Dec 1999 18:46:57 GMT) Organization: Los Alamos National Laboratory Mime-Version: 1.0 NNTP-Posting-Date: 15 Dec 1999 18:46:57 GMT Newsgroups: comp.lang.ada,comp.lang.fortran Date: 1999-12-15T18:46:57+00:00 List-Id: There are a number of aspects of a language design that influence the performance of language implementations. By far the biggest influence is the amount of dynamism the language allows: if the types associated with the expressions of a statement can change during multiple passes over a statement, then I believe that full optimization is equivalent to the halting problem. At least some scripting languages suffer from this problem to an extreme extent, while dynamic dispatch in statically compiled object orientation is a solution that attempts to minimize, but not eliminate, this problem. However this problem that does not generally pertain to the Fortran/Ada numerics question where the types are determined statically and generally map to the equivalent hardware operations. In this case a common performance difference between languages is the extent to which the language can rely on local analyses for its optimizations, which in turn mostly depends on the aliasing properties of entities in the language, which in turn is most strongly influenced by the properties of the arguments to procedures. In this case Ada has relatively loose rules compared to some other languages, e.g., C/C++, but stronger rules than Fortran, so that Ada is in principle harder to optimize than Fortran. However, the difference between Fortran and Ada in this regard is small enough that it might be washed out in the noise of variations in efficiency of compiler implementations. Note that aliasing properties mostly affect the efficiency of "library" routines. A "simple" coding of matmul in a "main" procedure is often amenable to local analysis in any statically compiled language.