NCEG Array Syntax Evaluation

Tom MacDonald uunet!fig.cray.com!tam
Tue Nov 19 15:09:52 PST 1991


I thought I post the following NCEG document to allow everyone
that is interested a chance to look over the evaluation
criteria that Frank Farance is proposing for the array syntax
subcommittee.  You can either send your opinions to Frank
directly (see below) or to ncegacray.com.
 
Tom MacDonald
 
 
==================================================================
 
       From: Frank Farance
       Date: 1991-11-18
       NCEG Document: 91-057
       Title: Evaluation Criteria for Array Syntax Extensions.
 
 
       As you know, there has been considerable difficulty in  con-
       verging  on  a single scheme for extending the array syntax.
       Even settling  on  two  strategies  is  difficult.   At  the
       1991-09  meeting  at  Apple,  there  was a discussion of the
       "evaluation criteria" we  (the  Array  Syntax  Subcommittee)
       were  using.   Although  there  are some common thoughts I'm
       sure we agree on, there are many more I'm sure we differ  on
       and,  most  importantly,  very few thoughts on the method of
       evaluating the proposals exist in a written form.   Thus,  I
       am proposing a starting point for evaluating new features.
 
       I would like to use Monday, 1992-01-06, the day prior to the
       next  meeting,  for a full day working session to review and
       evaluate the existing  array  syntax  (ASX)  proposals  with
       respect  an evaluation criteria.  I'm suggesting the follow-
       ing agenda:
 
       09:30 - 10:30
 
          - Review agenda.
 
          - Changes to evaluation criteria.
 
       10:30 - 10:45
 
          - Morning break.
 
       10:45 - 12:00
 
          - Evaluate each proposal based upon the criteria.
 
       12:00 - 13:30
 
          - Lunch break.
 
 
 
 
 
 
 
 
 
                                  Page 1
 
 
 
 
 
 
 
 
 
 
 
       13:30 - 15:15
 
          - Evaluate each proposal based upon the criteria.
 
       15:15 - 15:30
 
          - Afternoon break.
 
       15:30 - 17:00
 
          - Determine issues that are to be presented to  the  full
            committee.
 
       I will contact the people present at the  last  subcommittee
       meeting to verify this schedule.  If there are problems with
       this agenda or you'd like to discuss this prior to the meet-
       ing,  please contact me via telephone (+1 212 486 4700), FAX
       (+1  212  759  1605),  or   E-mail   (frankafarance.com   or
       uunet!farance!frank)  with  "NCEG"  at  the beginning of the
       subject line.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                  Page 2
 
 
 
 
 
 
 
 
 
 
 
 
             Evaluation Criteria for Array Syntax Extensions
 
 
 
       The following proposal addresses the main areas  of  evalua-
       tion  for each array syntax extension (ASX) proposal we will
       be evaluating.  The criteria have been organized under  four
       main categories.
 
 
       1.  NCEG COMMITTEE ISSUES
 
       1.1  Within Scope
 
       Does this ASX proposal fall within the  scope  of  work  for
       NCEG?
 
       Does this ASX proposal fall within the  scope  of  work  for
       this subcommittee?
 
       1.2  Co-Existence With Other NCEG Work
 
       Does this ASX proposal overlap with other NCEG  subcommittee
       work (e.g., variable dimension arrays, aliasing)?
 
       If yes, does it conflict with other NCEG subcommittee work?
 
       1.3  Co-Existence With Other Standards Committee Work
 
       Does this ASX proposal overlap with X3H5 work in progress?
 
       Does this ASX proposal overlap with X3J16 work in progress?
 
       Does this ASX proposal conflict with X3J11's work?
 
       Does this ASX proposal conflict with WG14's work?
 
       1.4  Generality
 
       Does this ASX proposal  support  a  wide  range  of  numeric
       applications or is it specific to a few?
 
       Are there features of this ASX proposal that are  orthogonal
       (i.e., can be separated into components)?
 
       Are there features of this ASX proposal that can be combined
       with other ASX proposals?  Which other ones?
 
 
 
 
 
 
                                  Page 3
 
 
 
 
 
 
 
 
 
 
 
       2.  LANGUAGE COMPATIBILITY
 
       2.1  C Compatibility
 
       Will standard C code (C89) run without modification  in  the
       presence of this new ASX feature?
 
       Will there be function call compatibility?  Even if this  is
       not  standardized,  it  must  be  demonstrated  that this is
       feasible.
 
       2.2  C++ Compatibility
 
       If X3J16 chooses to adopt this feature, will it be  incompa-
       tible with their work?
 
       2.3  FORTRAN Compatibility
 
       Is there a function call and/or data type  "bridge"  between
       this ASX proposal and FORTRAN 77 and FORTRAN 90?
 
       How do the  concepts  and  features  compare  to  the  array
       features of FORTRAN 90?
 
       2.4  Backwards Compatibility
 
       Is it possible to write a  preprocessor  (or  similar)  that
       translates new ASX code to standard C code?
 
 
       3.  SYNTAX AND SEMANTICS
 
       3.1  New Syntax Description
 
       What new syntax is added?
 
       Does this ASX proposal make use of pragmas?
 
       All descriptions of new  features  should  be  described  in
       terms  of  standard C concepts.  For example, a hypothetical
       ASX proposal that implicitly allocated memory for  temporary
       values might use a description:
 
 
 
 
 
 
 
 
 
 
 
 
                                  Page 4
 
 
 
 
 
 
 
 
 
 
 
       SYNTAX
 
               c = a MATRIX_MULTIPLY b
 
       PSUEDO-CODE
 
               a1 = dimension 1 of a ;
               a2 = dimension 2 of a ;
               b1 = dimension 1 of b ;
               b2 = dimension 2 of b ;
               if ( a2 != b1 )
                       run_time_error ;
               p = malloc( a1 * b2 * sizeof c[0] ) ;
               ...
 
       In this example, the use of "malloc()" instead of  "allocate
       a  temporary"  would  help  the  reader to visualize the ASX
       feature.  In another example, the description  of  a  vector
       multiply might use a C "for" loop to describe the semantics.
 
       3.2  New Data Types
 
       What new data types have been added?
 
       How are temporary values handled?  What are their type?
 
       How does argument passing work (both caller and callee)?
 
       Are array slices supported?
 
       Is this ASX proposal compatible with the  current  "complex"
       data type?
 
       3.3  Other
 
       What library (or other) functions have been added?
 
       What are the semantics of the 3-way operator?
 
       What are the semantics of the logical operators?
 
       How is control flow (e.g., "if", "while", etc.) affected?
 
       Are there new control flow mechanisms?
 
       Are the  semantics  of  increment  and  decrement  operators
       affected?
 
       How are function calls handled?
 
 
 
 
 
                                  Page 5
 
 
 
 
 
 
 
 
 
 
 
       What are the order of  operations  (rows  first  or  columns
       first)?  Can order of operations be specified?
 
       What are the aliasing issues?
 
 
       4.  USABILITY
 
       4.1  Easy to Program
 
       Is the ASX proposal intuitive?
 
       Does the ASX proposal match the programmer conceptual  model
       for the problem he/she is trying to solve?
 
       The ASX proposal should include existing C code and  FORTRAN
       code converted to the proposed ASX syntax and the advantages
       and disadvantages (read: sales pitch) of porting code to the
       proposed syntax.
 
       Sample code should be provided for the following algorithms:
 
          - Vector multiplication.
 
          - Matrix multiplication.
 
          - Quicksort.
 
          - Split radix sort.
 
          - Line of sight.
 
          - **** Please add to this list.
 
       4.2  Supported Architectures
 
       Can the proposed ASX syntax be translated to efficient  code
       on a wide range of machine architectures?
 
       Does the ASX proposal "favor" (or discourage)  a  particular
       machine architecture?
 
       4.3  Other
 
       Is it in the "Spirit of C" (:-)?
 
 
 
 
 
 
 
 
 
                                  Page 6



More information about the Numeric-interest mailing list