久久丫线这里只精品

    • go to Richard W. Hamming's profile page
    • go to Leslie Lamport's profile page
    • go to Charles P. Thacker's profile page
    • go to Frances Allen's profile page
    • go to Kristen Nygaard 's profile page
    • go to William Kahan's profile page
    • go to Geoffrey E Hinton's profile page
    • go to Donald E. Knuth's profile page
    • go to Judea Pearl's profile page
    • go to Herbert A. Simon's profile page
    • go to Fernando Corbato's profile page
    • go to Yoshua Bengio's profile page
    • go to Amir Pnueli's profile page
    • go to John McCarthy's profile page
    • go to E. Allen Emerson's profile page
    • go to Juris Hartmanis's profile page
    • go to Robert W. Floyd's profile page
    • go to Leonard M. Adleman's profile page
    • go to Joseph Sifakis's profile page
    • go to Edgar F. Codd's profile page
    • go to Adi Shamir's profile page
    • go to Butler W Lampson's profile page
    • go to Andrew C Yao's profile page
    • go to John Cocke 's profile page
    A.M. TURING AWARD WINNERS BY...

    Kenneth E. ("Ken") Iverson DL Author Profile link

    United States – 1979
    Additional Materials

    APL and J as Programming Languages

    A simple analogy by Fred Brooks illustrates the important difference between array languages such as APL and J, and “conventional” languages such as Fortran, BASIC, Pascal, etc. Suppose we have a box of apples from which we wish to select all of the good apples. Not wishing to do the task ourselves, we write a list of instructions to be carried out by a helper. The instructions corresponding to a conventional language might be expressed something like the following:

    Select an apple from the box. If it is good, set it aside in some place reserved for the good apples; if it is not good, discard it. Select a second apple; if it is good put it in the reserved place, and if it is not good discard it. Continue in this manner until all the apples have been examined.

    The instructions corresponding to an array language could be stated simply as follows:

    Select all of the good apples.

    The apples would still have to be examined individually, but the details are left to the helper (the computer) and don’t have to be specified by the programmer. Conventional languages are apple-by-apple languages, while array languages are all-the-apples-at-once languages.

    Here are two simple examples to illustrate programming in APL and J. If X is a list of numbers, the APL statement

    computes the mean of X, and may be read as follows: “The MEAN is the sum over (+/) the items of X divided by the number (ρ) of items in X.” As a second example, if N is a positive integer, then the J statement

    computes the list of primes that are less than or equal to N. Although more formidable than the APL example, it may be read simply as “The list of primes is found by selecting those integers in the list x= 2, 3, …, N which do not appear in the multiplication table for numbers up to N.” For N equal to 0 or 1 the list Primes is empty.

    Further information of on Iverson and APL

    The Computer History Museum has recently managed to recover the "lost" code for an early implementation of APL on an IBM /360. They have created an on-line exhibit examining APL and Ken Iverson. It contains an extensive account of the language and its creation as well as additional information on Iverson himself. There are also links to further resources. It is available here.
     

    久久丫线这里只精品