comp.lang.ada
 help / color / mirror / Atom feed
From: ok@goanna.cs.rmit.edu.au (Richard A. O'Keefe)
Subject: Re: What's the best language to start with? [was: Re: Should I learn C or Pascal?]
Date: 1996/08/15
Date: 1996-08-15T00:00:00+00:00	[thread overview]
Message-ID: <4uu97a$gpb@goanna.cs.rmit.edu.au> (raw)
In-Reply-To: 4uo4b8$ug0@excessus.demon.co.uk


mdw@excessus.demon.co.uk (Mark Wooding) writes:
>Are we talking about implementing it the truly stupid way as a single
>function, e.g.,

>	(define (factorial n)
>	  (if (zero? n)
>	    1
>	    (* n (factorial (- n 1)))))

>or properly using another function which tail-recurses, e.g.,

>If the former, then please report for re-education;

Ahem.
(a) We have known at least since Burstall and Darlington's work in the 70s
    how to AUTOMATICALLY turn this kind of recursion into iteration.

    F(x) = if P(x) then T(x) else H(G(x), F(R(x)))

    under certain conditions on G and H.  The only thing that prevents most
    Scheme compilers doing it is that they can't be sure that you won't
    assign something different to * or - at run time; a compiler that
    prevents you changing the primitives or that analyses the whole program
    and finds that you _don't_ change them could quite easily transform
    this function to iterative form.  Doing it when H and G are user-defined
    is harder.

(b) In a Scheme system supporting the full numeric tower; this will spend
    much more time chomping away at bignum arithmetic thanit will on its
    own procedure calls.  To reduce that cost, you need to unroll, which
    can be done every bit as easily with the recursive form as the
    iterative:

    [substitute value of factorial] =>

	(define (factorial n)
	  (if (zero? n)
	    1
	    (* n ((lambda (n)
                    (if (zero? n)
                        1
                        (* n (factorial (- n 1))) ))
		  (- n 1)) )))
                         
    [Substitute actual parameter for formal in inner lambda] =>

	(define (factorial n)
	  (if (zero? n)
	    1
	    (* n (if (zero? (- n 1))
                     1
                     (* (- n 1) (factorial (- (- n 1) 1)) )) )))

    [Simplify arithmetic forms and distribute * over if]

	(define (factorial n)
	  (if (= n 0)
            1                         
            (if (= n 1)
              1	; was (* n 1) but we know n=1
              (* n (* (- n 1)) (factorial (- n 2)) )) ))

    [Reassociate multiplication to get
     (* (* fixnum fixnum) bignum)
     instead of
     (* fixnum (* fixnum bignum)); rewrite if as case for readability] =>

	(define (factorial n)
	  (case n
            ((0 1) 1)
            (else (* (* n (- n 1)) (factorial (- n 2)) )) ))

    Some measurements, using Gambit 2.2.2 on a Manintosh Centris 660AV.
    All times are in seconds to compute 100!

    recursive, naive:		0.21 sec
    recursive, unrolled:	0.11 sec
    iterative, naive:		0.25 sec (yes, SLOWER than the recursive one!)
    iterative, unrolled:	0.14 sec (yes, SLOWER than the recursive one!)

    The iterative versions were not tail recursifve; they used Scheme's
    direct equivalent of a while loop.  For example, the iterative, naive
    version was
	(define (f3 n)
	  (do ((f 1 (* i f))
	       (i n (- i 1)))
	      ((<= i 1) f)))

    We see in this case that anyone who was sent for "re-education" learned
    something false:  in this compiler on this machine, factorial coded as
    naive recursion is FASTER than factorial coded as a while loop.
    (Actually, the real reason is the order in which the multiplications
    are done.  The recursive version does ((((1*2)*3)*4)* ... n) which
    keeps the intermediate values small as long as possible, while the
    iterative version does (1* ... *(n-2 * (n-1 * n))) which overflows
    into bignum arithmetic earlier.)

    We also see something I first noticed when testing some bignum code in
    C a couple of years back:  replacing iteration by recursion or vice
    versa may save or cost you 10--20%, but unrolling the loop HALVES the
    work.  It would be foolish indeed to spend your time turning recursion
    into iteration in order to buy a 10% speedup (or with this compiler on
    this machine, in order to by a 20% slowdown!) when you could have
    spent the same time unrolling to get a 50% reduction in time.

    The point at issue here is that the use of recursion instead of
    iteration is fully consistent with the "loop unrolling" compiler
    optimisation technique, no less so than iteration.

    Another point is that _scheduling the order in which operations
    are performed_ may have a bigger effect than the control framework
    defining that order.  (The matrix product problem is a well known
    example of this; other examples include merging several lists,
    operating on several sets, &c).

    (I cannot perform this measurement in the current top-of-the-line
    Scheme compiler, Stalin, because Stalin doesn't support bignum
    arithmetic.)

(c) What if you haven't got bignum arithmetic?
    Then turning recursion into iteration won't help with the major problem
    with factorial, which is that 

	13! = 6227020800 > 4294967295 == 2**32 - 1
                         > 2147483647 = 2**31 - 1
                         
    so trying to compute factorials in fixnum (C: int, Ada: Integer)
    arithmetic isn't going to get you very far.  You can do exact integer
    addition, subtraction, comparison, and multiplication with IEEE doubles
    up to 2**53 - 1, which sounds like a lot, but

	19! = 121645100408832000 > 9007199254740991 = 2**53 - 1

    so even flonum (C: double, Ada: Long_Float) arithmetic won't get you
    very far with factorials.

    If you seriously want to compute factorials in a language without
    bignum arithmetic, what you _really_ want to compute is the gamma
    function, which requires completely different techniques and skills.

    What has this got to to with recursion -vs- iteration?
    Well, under a minute typing the naive recursive definition,
    followed by
	(let loop ((x (- (expt 2 31) 1)) (i 1))
	  (if (> (factorial i) x) i (loop x (+ i 1))))
    let me find out how far I could compute factorials using C or Ada
    without a bignum package.  Any time spent optimising the function
    for use (as opposed to optimising it for debate, which is what I've
    been doing) would have been wasted, because it doesn't matter _how_
    you compute the function, the results are too big.

    What matters here, then, is how long it takes you to find this out.
    If the recursive definition gets *you* to *understanding* quicker,
    it's a winner.

-- 
Australian citizen since 14 August 1996.  *Now* I can vote the xxxs out!
Richard A. O'Keefe; http://www.cs.rmit.edu.au/~ok; RMIT Comp.Sci.




  parent reply	other threads:[~1996-08-15  0:00 UTC|newest]

Thread overview: 695+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <sperlman-0507961717550001@p121.ezo.net>
     [not found] ` <4rs76l$aqd@ccshst05.uoguelph.ca>
1996-07-15  0:00   ` Should I learn C or Pascal? Ralph Silverman
1996-07-15  0:00     ` Steve Sobol
1996-07-16  0:00     ` Lee Crites
1996-07-17  0:00       ` David Verschoore
1996-07-17  0:00         ` Anthony Kanner
1996-07-17  0:00         ` Mark McKinney
1996-07-19  0:00           ` Philip Brashear
1996-07-23  0:00             ` John A Hughes
1996-07-26  0:00               ` Randy Kaelber
1996-07-29  0:00                 ` Ralph Silverman
1996-08-06  0:00                 ` StHeller
1996-07-20  0:00         ` TRAN PHAN ANH
1996-07-20  0:00           ` Mark Eissler
1996-07-25  0:00             ` Erik Seaberg
1996-07-26  0:00             ` What's the best language to start with? [was: Re: Should I learn C or Pascal?] Tim Behrendsen
1996-07-27  0:00               ` Rick Elbers
1996-07-28  0:00                 ` Mark Eissler
1996-07-28  0:00                 ` J. Christian Blanchette
1996-07-28  0:00                   ` Robert Dewar
1996-07-29  0:00                   ` Tim Behrendsen
1996-07-30  0:00                     ` Arra Avakian
1996-07-31  0:00                       ` Stephen M O'Shaughnessy
1996-07-31  0:00                       ` James Youngman
1996-08-02  0:00                       ` Tim Behrendsen
1996-08-05  0:00                         ` Henrik Wetterstrom
1996-08-05  0:00                         ` Fergus Henderson
1996-08-06  0:00                           ` Tim Behrendsen
1996-08-06  0:00                             ` Dan Pop
1996-08-06  0:00                               ` Tim Behrendsen
1996-08-06  0:00                                 ` Peter Seebach
1996-08-07  0:00                                   ` Tim Behrendsen
1996-08-07  0:00                                     ` James A. Squire
1996-08-07  0:00                                     ` Peter Seebach
1996-08-08  0:00                                       ` Tim Behrendsen
1996-08-08  0:00                                         ` Peter Seebach
1996-08-08  0:00                                     ` David Weller
1996-08-09  0:00                                     ` Bob Gilbert
1996-08-10  0:00                                       ` Tim Behrendsen
1996-08-11  0:00                                         ` Peter Seebach
1996-08-11  0:00                                           ` Tim Behrendsen
1996-08-12  0:00                                             ` Alf P. Steinbach
1996-08-12  0:00                                               ` Tim Behrendsen
1996-08-13  0:00                                             ` Szu-Wen Huang
1996-08-11  0:00                                         ` Craig Franck
1996-08-11  0:00                                           ` Tim Behrendsen
1996-08-07  0:00                                 ` Mark Eissler
     [not found]                               ` <01bb83cc$fb <tequila-0708960947140001@tequila.interlog.com>
1996-08-07  0:00                                 ` Peter Seebach
1996-08-06  0:00                             ` Fergus Henderson
1996-08-07  0:00                               ` Tim Behrendsen
1996-08-08  0:00                                 ` Thomas Hood
1996-08-09  0:00                                   ` Tim Behrendsen
1996-08-17  0:00                                 ` Lawrence Kirby
1996-08-17  0:00                                   ` Tim Behrendsen
1996-08-19  0:00                                     ` Bob Gilbert
1996-08-19  0:00                                       ` Tim Behrendsen
1996-08-19  0:00                                         ` Tim Hollebeek
1996-08-20  0:00                                           ` Tim Behrendsen
1996-08-20  0:00                                         ` Bob Gilbert
1996-08-21  0:00                                           ` Tim Behrendsen
1996-08-22  0:00                                             ` Bob Gilbert
1996-08-22  0:00                                               ` Tim Behrendsen
1996-09-04  0:00                                             ` Lawrence Kirby
1996-09-04  0:00                                               ` Tim Behrendsen
1996-09-06  0:00                                                 ` Bob Gilbert
1996-09-06  0:00                                                   ` Tim Behrendsen
1996-09-09  0:00                                                     ` Bob Gilbert
1996-09-11  0:00                                                       ` Tim Behrendsen
1996-09-10  0:00                                                   ` Richard A. O'Keefe
1996-09-10  0:00                                                     ` Kaz Kylheku
1996-09-11  0:00                                                     ` Bob Gilbert
1996-09-10  0:00                                                   ` Jon S Anthony
1996-09-11  0:00                                                     ` Richard A. O'Keefe
1996-09-11  0:00                                                   ` Jon S Anthony
1996-09-11  0:00                                                   ` Jon S Anthony
1996-09-05  0:00                                               ` Mark Wooding
1996-09-06  0:00                                                 ` Bob Cousins
1996-09-06  0:00                                                   ` Tim Behrendsen
1996-09-07  0:00                                                     ` Craig Franck
1996-09-08  0:00                                                       ` Tim Behrendsen
1996-09-08  0:00                                                         ` Craig Franck
1996-09-09  0:00                                                           ` Tim Behrendsen
1996-09-10  0:00                                                             ` Richard A. O'Keefe
1996-09-10  0:00                                                               ` Tim Behrendsen
1996-09-11  0:00                                                         ` John Burdick
1996-09-13  0:00                                                 ` Bengt Richter
1996-09-14  0:00                                                   ` Craig Franck
1996-09-06  0:00                                         ` Robert I. Eachus
1996-09-06  0:00                                           ` Tim Behrendsen
1996-09-11  0:00                                         ` Richard A. O'Keefe
1996-09-11  0:00                                           ` Tim Behrendsen
1996-09-12  0:00                                             ` Richard A. O'Keefe
1996-09-13  0:00                                               ` Tim Behrendsen
1996-09-13  0:00                                                 ` Richard A. O'Keefe
1996-09-18  0:00                                                   ` Tim Behrendsen
1996-09-19  0:00                                                     ` Richard A. O'Keefe
1996-09-12  0:00                                             ` Peter Seebach
1996-09-18  0:00                                               ` Tim Behrendsen
1996-09-17  0:00                                             ` George
1996-09-19  0:00                                               ` Tim Behrendsen
1996-09-24  0:00                                                 ` Matthew M. Lih
1996-09-25  0:00                                                   ` Richard A. O'Keefe
1996-09-26  0:00                                                     ` Mark Wooding
1996-09-25  0:00                                                   ` Bjarne Stroustrup
1996-09-26  0:00                                                     ` Bengt Richter
1996-09-28  0:00                                                     ` Dan Pop
1996-09-26  0:00                                               ` Jon S Anthony
1996-09-26  0:00                                                 ` Dann Corbit
1996-09-27  0:00                                                 ` Jay Martin
1996-09-27  0:00                                                   ` Tim Behrendsen
1996-09-30  0:00                                                     ` Art Schwarz
1996-09-27  0:00                                                   ` Kent Budge
1996-09-27  0:00                                                     ` George Haddad
1996-09-27  0:00                                                       ` George Haddad
1996-09-27  0:00                                                     ` George Haddad
1996-09-28  0:00                                                       ` Matthew Heaney
1996-09-27  0:00                                                     ` George Haddad
1996-09-27  0:00                                                     ` George Haddad
1996-09-28  0:00                                                     ` Steve Heller
1996-10-01  0:00                                                       ` DJ Kindberg
1996-09-27  0:00                                                 ` Craig Franck
1996-09-27  0:00                                                   ` Bob Cousins
1996-09-28  0:00                                               ` Jon S Anthony
1996-09-11  0:00                                         ` Jon S Anthony
1996-09-11  0:00                                         ` Jon S Anthony
1996-09-11  0:00                                           ` Craig Franck
1996-09-11  0:00                                             ` Tim Behrendsen
1996-09-17  0:00                                           ` George
1996-09-24  0:00                                             ` Joel VanLaven
1996-09-27  0:00                                               ` Dann Corbit
1996-09-27  0:00                                               ` Tom Payne
1996-09-28  0:00                                                 ` Tim Behrendsen
1996-09-18  0:00                                         ` Jon S Anthony
1996-09-26  0:00                                         ` Jon S Anthony
1996-10-01  0:00                                           ` Andrew Gierth
1996-08-22  0:00                                     ` Bengt Richter
1996-08-22  0:00                                       ` Frank Manning
1996-08-31  0:00                                         ` Bengt Richter
1996-08-31  0:00                                           ` Frank Manning
1996-08-31  0:00                                             ` Frank Manning
1996-09-02  0:00                                             ` deafen
1996-09-03  0:00                                               ` Frank Manning
1996-09-03  0:00                                               ` Steve Howard
1996-09-03  0:00                                               ` Bob Kitzberger
1996-09-03  0:00                                               ` Tim Behrendsen
1996-09-03  0:00                                               ` Phil Barnett
1996-08-22  0:00                                       ` Tim Behrendsen
1996-08-23  0:00                                         ` Larry J. Elmore
1996-08-08  0:00                               ` Stephen M O'Shaughnessy
1996-08-09  0:00                               ` Stephen M O'Shaughnessy
1996-08-09  0:00                                 ` Tim Behrendsen
     [not found]                               ` <01bb846d$ <Dvtnon.I49@most.fw.hac.com>
1996-08-09  0:00                                 ` Tim Behrendsen
1996-08-06  0:00                             ` Szu-Wen Huang
1996-08-06  0:00                               ` Tim Behrendsen
1996-08-06  0:00                                 ` Peter Seebach
1996-08-07  0:00                                   ` Tim Behrendsen
1996-08-07  0:00                                     ` Dan Pop
1996-08-08  0:00                                       ` Christopher R Volpe
1996-08-08  0:00                                       ` Tim Behrendsen
1996-08-08  0:00                                         ` Peter Seebach
1996-08-08  0:00                                           ` Randy Kaelber
1996-08-09  0:00                                           ` Chris Sonnack
1996-08-10  0:00                                             ` Tim Behrendsen
1996-08-11  0:00                                               ` Chris Sonnack
1996-08-11  0:00                                               ` Dan Pop
1996-08-12  0:00                                                 ` Tim Behrendsen
1996-08-12  0:00                                                 ` Chris Sonnack
1996-08-15  0:00                                                   ` Bob Hoffmann
1996-08-09  0:00                                           ` J. Blustein
1996-08-11  0:00                                             ` Peter Seebach
1996-08-09  0:00                                         ` Dan Pop
1996-08-11  0:00                                           ` Tim Behrendsen
1996-08-11  0:00                                             ` Dan Pop
1996-08-13  0:00                                               ` Tim Behrendsen
1996-08-13  0:00                                                 ` Giuliano Carlini
1996-08-14  0:00                                                 ` Dan Pop
1996-08-14  0:00                                                   ` Tim Behrendsen
1996-08-16  0:00                                                   ` Dik T. Winter
1996-08-12  0:00                                             ` Peter Seebach
1996-08-13  0:00                                               ` Tim Behrendsen
1996-08-11  0:00                                           ` Mark Wooding
1996-08-19  0:00                                             ` James Youngman
1996-08-18  0:00                                         ` Sam B. Siegel
1996-08-19  0:00                                           ` Dan Pop
1996-08-07  0:00                                     ` Peter Seebach
1996-08-08  0:00                                       ` Tim Behrendsen
1996-08-08  0:00                                         ` telnet user
1996-08-09  0:00                                           ` Ed Hook
1996-08-09  0:00                                           ` Tim Behrendsen
1996-08-08  0:00                                         ` Peter Seebach
1996-08-08  0:00                                           ` Tim Behrendsen
1996-08-08  0:00                                             ` Peter Seebach
1996-08-14  0:00                                             ` Richard A. O'Keefe
1996-08-16  0:00                                               ` Tim Behrendsen
1996-08-20  0:00                                                 ` Richard A. O'Keefe
1996-08-20  0:00                                                   ` Alan Bowler
1996-08-21  0:00                                                   ` Tim Behrendsen
1996-08-22  0:00                                                     ` Bengt Richter
1996-08-22  0:00                                                       ` Tim Behrendsen
1996-08-31  0:00                                                         ` Bengt Richter
1996-09-01  0:00                                                           ` Maurice M. Carey IV
1996-08-26  0:00                                                     ` Richard A. O'Keefe
1996-08-26  0:00                                                       ` madscientist
1996-08-29  0:00                                                         ` Richard A. O'Keefe
1996-08-26  0:00                                                       ` Tim Behrendsen
1996-08-29  0:00                                                         ` Richard A. O'Keefe
1996-08-29  0:00                                                           ` Craig Franck
1996-08-30  0:00                                                           ` system
1996-08-31  0:00                                                             ` Kenneth Mays
     [not found]                                                           ` <01bb95ba$9dfed580$496700cf@ljelmore.montana>
1996-08-30  0:00                                                             ` Steve Heller
1996-08-31  0:00                                                             ` Clayton Weaver
1996-09-01  0:00                                                           ` Tim Behrendsen
1996-08-26  0:00                                                       ` Mark Wooding
1996-08-30  0:00                                                         ` Richard A. O'Keefe
1996-08-30  0:00                                                           ` Peter Seebach
1996-09-03  0:00                                                             ` Lawrence Kirby
1996-09-01  0:00                                                           ` Joe Keane
1996-09-04  0:00                                                             ` Richard A. O'Keefe
1996-09-03  0:00                                                           ` Arkady Belousov
1996-08-30  0:00                                                         ` Kaz Kylheku
1996-08-31  0:00                                                       ` Tanmoy Bhattacharya
1996-09-04  0:00                                                         ` Tom Payne
1996-09-04  0:00                                                       ` Patrick Horgan
1996-09-05  0:00                                                         ` Richard A. O'Keefe
1996-09-05  0:00                                                           ` deafen
1996-08-09  0:00                                           ` Chris Sonnack
1996-08-09  0:00                                         ` Mike Rubenstein
1996-08-09  0:00                                           ` Tim Behrendsen
1996-08-10  0:00                                             ` Mike Rubenstein
1996-08-12  0:00                                               ` Tim Behrendsen
1996-08-12  0:00                                                 ` Bob Kitzberger
1996-08-22  0:00                                                   ` Patrick Horgan
1996-08-23  0:00                                                     ` Steve Heller
1996-08-12  0:00                                                 ` Mike Rubenstein
1996-08-12  0:00                                                   ` Tim Behrendsen
1996-08-13  0:00                                                     ` Mike Rubenstein
1996-08-13  0:00                                                       ` Tim Behrendsen
1996-08-13  0:00                                                         ` Giuliano Carlini
1996-08-14  0:00                                                           ` Tim Behrendsen
1996-08-15  0:00                                                         ` Mike Rubenstein
     [not found]                                                     ` <32 <01bb8923$e1d34280$87ee6fce@timpent.airshields.com>
1996-08-14  0:00                                                       ` Peter Seebach
1996-08-14  0:00                                                         ` Tim Behrendsen
1996-08-14  0:00                                                           ` Peter Seebach
1996-08-12  0:00                                                   ` Mark Wooding
1996-08-13  0:00                                                     ` Mike Rubenstein
1996-08-15  0:00                                                     ` Richard A. O'Keefe [this message]
1996-08-08  0:00                                     ` Teaching sorts [was Re: What's the best language to start with?] Robert I. Eachus
1996-08-09  0:00                                       ` Robert Dewar
1996-08-10  0:00                                       ` Al Aab
1996-08-10  0:00                                       ` Lawrence Kirby
1996-08-12  0:00                                       ` Steve Heller
1996-08-12  0:00                                         ` Robert Dewar
1996-08-16  0:00                                           ` Steve Heller
1996-08-16  0:00                                             ` Szu-Wen Huang
1996-08-17  0:00                                               ` Robert Dewar
1996-08-17  0:00                                               ` Robert Dewar
1996-08-20  0:00                                                 ` Szu-Wen Huang
1996-08-20  0:00                                                   ` Dann Corbit
1996-08-21  0:00                                                     ` Tim Behrendsen
1996-08-21  0:00                                                       ` Dann Corbit
1996-08-22  0:00                                                       ` Richard A. O'Keefe
1996-08-22  0:00                                                         ` Szu-Wen Huang
1996-08-23  0:00                                                           ` Richard A. O'Keefe
1996-08-25  0:00                                                         ` Robert Dewar
1996-08-21  0:00                                                   ` Dik T. Winter
1996-08-21  0:00                                                     ` Tim Behrendsen
1996-08-21  0:00                                                       ` Pete Becker
1996-08-22  0:00                                                         ` Szu-Wen Huang
1996-08-22  0:00                                                           ` Robert Dewar
1996-08-22  0:00                                                           ` Pete Becker
1996-08-21  0:00                                                       ` Matt Austern
1996-08-21  0:00                                                         ` Tim Behrendsen
1996-08-21  0:00                                                       ` Tanmoy Bhattacharya
1996-08-22  0:00                                                         ` Dann Corbit
1996-08-22  0:00                                                         ` Mike Rubenstein
1996-08-22  0:00                                                       ` Robert Dewar
1996-08-24  0:00                                                         ` Joe Keane
1996-08-22  0:00                                                     ` Tanmoy Bhattacharya
1996-08-21  0:00                                                 ` Tanmoy Bhattacharya
1996-08-21  0:00                                                   ` Tim Behrendsen
1996-08-22  0:00                                                     ` Robert Dewar
1996-08-22  0:00                                                     ` Mike Rubenstein
1996-08-21  0:00                                                   ` Adam Beneschan
1996-08-22  0:00                                                     ` Christian Bau
1996-08-22  0:00                                                       ` (topic change on) Teaching sorts Marcus H. Mendenhall
1996-08-27  0:00                                                         ` Ralph Silverman
1996-08-22  0:00                                                       ` Teaching sorts [was Re: What's the best language to start with?] Larry Kilgallen
1996-08-23  0:00                                                         ` Tim Hollebeek
1996-08-24  0:00                                                           ` Robert Dewar
1996-08-24  0:00                                                         ` Robert Dewar
1996-08-23  0:00                                                       ` Andrew Koenig
1996-08-22  0:00                                                     ` Andrew Koenig
1996-08-24  0:00                                                       ` Robert Dewar
1996-08-18  0:00                                               ` Steve Heller
1996-08-21  0:00                                               ` Matt Austern
1996-08-23  0:00                                               ` Tanmoy Bhattacharya
1996-08-23  0:00                                                 ` Adam Beneschan
1996-08-16  0:00                                             ` Adam Beneschan
1996-08-18  0:00                                               ` Steve Heller
1996-08-18  0:00                                                 ` Jeff Dege
1996-08-18  0:00                                                   ` Robert Dewar
1996-08-16  0:00                                             ` Robert Dewar
1996-08-18  0:00                                               ` Steve Heller
1996-08-18  0:00                                                 ` Robert Dewar
1996-08-18  0:00                                                   ` Steve Heller
1996-08-18  0:00                                                     ` Robert Dewar
1996-08-20  0:00                                                       ` Steve Heller
1996-08-14  0:00                                       ` Stephen Baynes
1996-08-14  0:00                                         ` Robert Dewar
1996-08-14  0:00                                         ` Robert Dewar
1996-08-16  0:00                                           ` Dik T. Winter
1996-08-16  0:00                                             ` Joe Foster
1996-08-18  0:00                                           ` Glenn Rhoads
1996-08-19  0:00                                           ` Richard A. O'Keefe
     [not found]                                             ` <dewar.840491732@schonberg>
1996-08-19  0:00                                               ` Robert Dewar
1996-08-22  0:00                                                 ` Stephen Baynes
1996-08-27  0:00                                                 ` Richard A. O'Keefe
1996-08-19  0:00                                           ` Stephen Baynes
1996-08-19  0:00                                             ` Robert Dewar
1996-08-19  0:00                                             ` Robert Dewar
1996-08-13  0:00                                     ` Robert I. Eachus
1996-08-14  0:00                                       ` Robert Dewar
1996-08-15  0:00                                       ` Tom Payne
1996-08-13  0:00                                     ` Robert I. Eachus
1996-08-13  0:00                                       ` Lawrence Kirby
1996-08-14  0:00                                       ` Robert Dewar
1996-08-14  0:00                                     ` Robert I. Eachus
1996-08-15  0:00                                       ` Robert Dewar
1996-08-15  0:00                                     ` Blair Phillips
1996-08-27  0:00                                     ` What's the best language to start with? [was: Re: Should I learn C or Pascal?] Tanmoy Bhattacharya
1996-08-29  0:00                                     ` Robert I. Eachus
1996-08-30  0:00                                       ` Steve Heller
1996-08-30  0:00                                     ` Tanmoy Bhattacharya
1996-08-07  0:00                                 ` What's the best language to start with Ian Ward
1996-08-08  0:00                                   ` Tim Behrendsen
1996-08-09  0:00                                     ` Robert Dewar
1996-08-11  0:00                                 ` What's the best language to start with? [was: Re: Should I learn C or Pascal?] Jerone A. Bowers
1996-08-12  0:00                             ` Robert I. Eachus
1996-08-05  0:00                         ` Chris Sonnack
1996-08-06  0:00                           ` Stephen M O'Shaughnessy
1996-08-13  0:00                       ` Chris Sonnack
1996-08-16  0:00                         ` Steve Heller
1996-08-16  0:00                           ` John Hobson
1996-07-31  0:00                   ` Patrick Horgan
1996-07-31  0:00                   ` AJ Musgrove
1996-08-01  0:00                     ` Tim Hollebeek
1996-08-01  0:00                     ` Ken Pizzini
1996-08-01  0:00                     ` Sam Harris
1996-08-02  0:00                       ` Eric W. Nikitin
1996-08-03  0:00                     ` Raffael Cavallaro
1996-08-05  0:00                       ` Chris Sonnack
1996-08-08  0:00                   ` William Clodius
1996-08-11  0:00                     ` Fergus Henderson
1996-08-11  0:00                     ` Dik T. Winter
1996-08-08  0:00                   ` William Clodius
1996-08-13  0:00                   ` Ole-Hjalmar Kristensen FOU.TD/DELAB
1996-08-14  0:00                   ` Richard A. O'Keefe
1996-08-15  0:00                   ` Teaching sorts [was Re: What's the best language to start with?] Norman H. Cohen
1996-08-16  0:00                     ` Steve Heller
1996-08-19  0:00                   ` Ted Dennison
1996-08-23  0:00                     ` Richard A. O'Keefe
1996-08-23  0:00                       ` Ted Dennison
1996-08-24  0:00                       ` Robert Dewar
1996-08-27  0:00                         ` Richard A. O'Keefe
1996-09-02  0:00                           ` Lawrence Kirby
1996-07-28  0:00               ` What's the best language to start with? [was: Re: Should I learn C or Pascal?] Robert Dewar
1996-07-29  0:00                 ` Tim Behrendsen
1996-07-30  0:00                   ` Paul Campbell
1996-07-30  0:00                     ` Robert Dewar
1996-08-02  0:00                       ` Tim Behrendsen
1996-08-03  0:00                         ` Peter Seebach
1996-08-04  0:00                           ` Alf P. Steinbach
1996-08-04  0:00                             ` Peter Seebach
1996-08-04  0:00                               ` Jerry van Dijk
1996-08-05  0:00                               ` Tim Behrendsen
1996-08-04  0:00                                 ` Peter Seebach
1996-08-05  0:00                                   ` Chris Sonnack
1996-08-05  0:00                                     ` Peter Seebach
1996-08-07  0:00                                       ` Tom Watson
1996-08-05  0:00                                     ` Tim Hollebeek
1996-08-10  0:00                                       ` Mike Rubenstein
1996-08-06  0:00                                   ` Tim Behrendsen
1996-08-03  0:00                     ` Patrick Horgan
1996-08-04  0:00                       ` Kurt E. Huhner
1996-07-30  0:00                   ` What's the best language to start with? [was: Re: Should I learn TRAN PHAN ANH
1996-07-31  0:00                   ` What's the best language to start with? [was: Re: Should I learn C or Pascal?] Arne W. Flones
1996-08-02  0:00                   ` David Wheeler
1996-08-02  0:00                     ` Peter Seebach
1996-08-02  0:00                       ` Gary M. Greenberg
1996-08-03  0:00                       ` Alf P. Steinbach
1996-08-02  0:00                         ` Peter Seebach
1996-08-05  0:00                       ` Chris Sonnack
1996-08-05  0:00                         ` Peter Seebach
1996-08-06  0:00                     ` What's the best language to start with? [was: Re: Should I learn C or Pasca StHeller
1996-08-06  0:00                       ` Robert Dewar
1996-08-06  0:00                 ` What's the best language to start with? [was: Re: Should I learn C or Pascal?] Conrad Herrmann
1996-08-06  0:00                 ` Robert I. Eachus
1996-08-06  0:00                 ` Alf P. Steinbach
1996-07-29  0:00               ` Byron B. Kauffman
1996-07-30  0:00               ` Alan Peake
     [not found]               ` <dewar. <peake.206.002D549F@dstos3.dsto.gov.au>
1996-07-31  0:00                 ` Tim Behrendsen
1996-07-31  0:00                 ` Stephen M O'Shaughnessy
1996-08-02  0:00                   ` Tim Behrendsen
1996-08-05  0:00                     ` Mark McKinney
1996-08-05  0:00                     ` Mark McKinney
1996-08-05  0:00                     ` Mark McKinney
1996-07-31  0:00                 ` P. Cnudde VH14 (8218)
1996-07-31  0:00                   ` Nicolas Devillard
1996-08-02  0:00                   ` Matt Austern
1996-08-15  0:00                     ` Lawrence Kirby
1996-07-20  0:00           ` Should I learn C or Pascal? Robert Dewar
1996-07-22  0:00             ` TRAN PHAN ANH
1996-07-23  0:00             ` Ken Garlington
1996-07-20  0:00           ` Andy Askey
1996-07-20  0:00             ` steidl
1996-07-21  0:00               ` Andy Askey
1996-07-22  0:00           ` Stephen M O'Shaughnessy
1996-07-23  0:00             ` TRAN PHAN ANH
1996-07-18  0:00       ` Patrick Horgan
1996-07-18  0:00         ` Jason Alan Turnage
1996-07-19  0:00           ` Robert Dewar
1996-07-20  0:00             ` steved
1996-07-19  0:00               ` Peter Seebach
1996-07-20  0:00                 ` Jon Bell
1996-07-20  0:00                   ` Andy Askey
1996-07-20  0:00                 ` Robert Dewar
1996-07-22  0:00                   ` steidl
1996-07-22  0:00                     ` Stephen M O'Shaughnessy
1996-07-23  0:00                       ` Richard A. O'Keefe
1996-07-23  0:00                         ` Michael Ickes
1996-07-25  0:00                           ` Andy Askey
1996-07-24  0:00                         ` system
1996-07-23  0:00             ` Ralph Silverman
1996-07-19  0:00           ` Vic Metcalfe
1996-07-18  0:00         ` Robert Dewar
1996-07-19  0:00           ` Billy Chambless
1996-07-19  0:00         ` Reto Koradi
1996-07-23  0:00           ` TRAN PHAN ANH
1996-07-19  0:00         ` Scott McMahan - Softbase Systems
1996-07-20  0:00           ` Tim Behrendsen
1996-07-21  0:00             ` Rich Maggio
1996-07-21  0:00               ` Robert Dewar
1996-07-22  0:00             ` Ralph Silverman
1996-07-23  0:00               ` Tim Behrendsen
1996-07-20  0:00           ` steidl
1996-07-19  0:00         ` Andrew Gierth
1996-07-18  0:00       ` Walter B. Hollman Sr.
1996-07-18  0:00       ` Carlos DeAngulo
1996-07-18  0:00         ` Robert Dewar
1996-07-19  0:00           ` Jon Bell
1996-07-22  0:00             ` Tim Oxler
1996-07-22  0:00               ` Stig Norland
1996-07-22  0:00               ` Janus
1996-07-22  0:00               ` Robert Dewar
1996-07-30  0:00                 ` Tim Behrendsen
1996-07-31  0:00                 ` Patrick Horgan
     [not found]           ` <01bb7588$236982e0$7b91f780@deangulo>
1996-07-19  0:00             ` Robert Dewar
1996-07-20  0:00             ` steidl
     [not found]         ` <01bb7591$83087d60$87ee6fce@timpent.airshields.com>
1996-07-19  0:00           ` johnf
1996-07-19  0:00             ` Jason Alan Turnage
1996-07-19  0:00               ` Robert Dewar
1996-07-20  0:00                 ` Crash
1996-07-20  0:00                   ` Robert Dewar
1996-07-20  0:00                 ` Jon Bell
1996-07-20  0:00                   ` Robert Dewar
1996-07-21  0:00                     ` Alexander Vrenios
1996-07-21  0:00                   ` Steve Tate
1996-07-21  0:00                     ` Robert Dewar
1996-07-21  0:00                     ` Phil Howard
1996-07-21  0:00                       ` Robert Dewar
1996-07-22  0:00                         ` Steve Tate
1996-07-22  0:00                   ` Stephen M O'Shaughnessy
1996-07-25  0:00                   ` ++           robin
1996-07-20  0:00                 ` TRAN PHAN ANH
1996-07-22  0:00                   ` Ralph Silverman
1996-07-23  0:00                 ` Ralph Silverman
1996-07-22  0:00               ` Stephen M O'Shaughnessy
1996-07-22  0:00                 ` Jeremy Nelson
1996-07-22  0:00                   ` Stephen M O'Shaughnessy
1996-07-19  0:00             ` Jeremy Nelson
1996-07-20  0:00             ` Tim Behrendsen
1996-07-22  0:00             ` Ralph Silverman
1996-07-23  0:00               ` Joe Gwinn
1996-07-24  0:00                 ` Theodore E. Dennison
1996-07-24  0:00                 ` John A Hughes
1996-07-23  0:00             ` John A Hughes
1996-07-19  0:00           ` Craig Franck
1996-07-19  0:00         ` Dirk Dickmanns
1996-07-23  0:00     ` Richard A. O'Keefe
1996-07-16  0:00 ` Darin Johnson
1996-07-24  0:00   ` Ralph Silverman
1996-07-17  0:00 ` Aron Felix Gurski
1996-07-19  0:00 ` Andrew Gierth
1996-07-19  0:00 ` Andrew Gierth
1996-07-19  0:00 ` Andrew Gierth
1996-07-21  0:00 ` Laurent Guerby
1996-07-22  0:00   ` Stephen M O'Shaughnessy
1996-07-21  0:00 ` Wayne
1996-07-22  0:00 ` Darin Johnson
1996-07-22  0:00 ` Darin Johnson
1996-07-23  0:00 ` Darin Johnson
1996-07-24  0:00   ` Andrew J Steinbach
1996-07-24  0:00     ` Jon Bell
1996-07-24  0:00     ` John A Hughes
1996-07-24  0:00     ` system
1996-07-24  0:00   ` Ralph Silverman
1996-07-24  0:00     ` TRAN PHAN ANH
1996-07-24  0:00   ` Michael Feldman
1996-07-24  0:00 ` Darin Johnson
1996-07-25  0:00   ` Andy Askey
1996-07-26  0:00     ` Mark Eissler
1996-08-02  0:00   ` Patrick Horgan
1996-08-04  0:00     ` Gary M. Greenberg
     [not found]     ` <4u76ej$7s9@newsbf02.news.aol.com>
1996-08-06  0:00       ` Ralph Silverman
1996-08-12  0:00         ` Patrick Horgan
1996-08-13  0:00           ` Darin Johnson
1996-08-13  0:00             ` What's the best language to learn? [was Re: Should I learn C or Pascal?] Tim Behrendsen
1996-08-14  0:00               ` Gabor Egressy
1996-08-15  0:00                 ` Robert Dewar
1996-08-17  0:00                   ` Lawrence Kirby
1996-08-17  0:00                     ` Robert Dewar
1996-08-20  0:00                       ` Lawrence Kirby
1996-08-16  0:00                 ` Mark Wooding
1996-08-17  0:00                   ` Dan Pop
1996-08-17  0:00                     ` Tim Behrendsen
1996-08-17  0:00                       ` Dan Pop
1996-08-18  0:00                         ` Mark Wooding
1996-08-20  0:00                           ` Peter Seebach
1996-08-21  0:00                           ` Szu-Wen Huang
1996-08-21  0:00                             ` Adam Beneschan
1996-08-21  0:00                             ` Tim Behrendsen
1996-08-17  0:00                       ` Peter Seebach
1996-08-18  0:00                         ` Tim Behrendsen
1996-08-17  0:00                       ` Robert Dewar
1996-08-21  0:00                     ` Tanmoy Bhattacharya
1996-08-30  0:00                       ` Goto considered really harmful Patrick Horgan
1996-09-04  0:00                         ` Dennison
1996-08-14  0:00               ` What's the best language to learn? [was Re: Should I learn C or Pascal?] Peter Seebach
1996-08-14  0:00                 ` Tim Behrendsen
1996-08-14  0:00                   ` Robert Dewar
1996-08-14  0:00                     ` Tim Behrendsen
1996-08-14  0:00                     ` Dan Pop
1996-08-14  0:00                       ` Robert Dewar
1996-08-15  0:00                     ` Joe Foster
1996-08-14  0:00                   ` Peter Seebach
1996-08-14  0:00                     ` Tim Behrendsen
1996-08-14  0:00                       ` Peter Seebach
1996-08-15  0:00                       ` Robert Dewar
1996-08-16  0:00                         ` Joe Foster
1996-08-18  0:00                         ` Tim Behrendsen
1996-08-20  0:00                           ` James Youngman
1996-08-21  0:00                           ` Szu-Wen Huang
1996-08-15  0:00                       ` Bob Gilbert
1996-08-15  0:00                     ` DAVID A MOLNAR
1996-08-15  0:00                     ` Bob Gilbert
1996-08-18  0:00                       ` Tim Behrendsen
1996-08-16  0:00                   ` Dr. Richard Botting
1996-08-18  0:00                     ` Tim Behrendsen
1996-08-21  0:00                       ` Szu-Wen Huang
1996-08-21  0:00                         ` Tim Behrendsen
1996-08-22  0:00                         ` Mark Wooding
1996-08-23  0:00                           ` Bengt Richter
1996-08-23  0:00                         ` Clayton Weaver
1996-08-16  0:00                   ` Bob Gilbert
1996-08-17  0:00                     ` Tim Behrendsen
1996-08-18  0:00                       ` Robert Dewar
1996-08-18  0:00                         ` Tim Behrendsen
1996-08-26  0:00                         ` Patrick Horgan
1996-08-27  0:00                           ` Alan Peake
1996-08-27  0:00                             ` Steve Heller
1996-08-28  0:00                             ` Tom Watson
1996-08-28  0:00                               ` Robert Dewar
1996-08-30  0:00                               ` Alan Peake
1996-08-31  0:00                                 ` Robert Dewar
1996-09-03  0:00                                   ` Alan Peake
1996-09-07  0:00                                     ` Robert Dewar
1996-09-07  0:00                                 ` .
1996-08-28  0:00                             ` Robert Dewar
1996-08-29  0:00                           ` Darin Johnson
1996-08-19  0:00                       ` John Hobson
1996-08-19  0:00                         ` Tim Behrendsen
1996-08-19  0:00                           ` John Hobson
1996-08-20  0:00                             ` Szu-Wen Huang
1996-08-27  0:00                               ` Richard A. O'Keefe
1996-08-23  0:00                           ` Alan Bowler
1996-08-21  0:00               ` What's the best language to learn? [any language except Ada] Bill Mackay
1996-08-22  0:00                 ` Stephen M O'Shaughnessy
1996-08-22  0:00                 ` Robert Dewar
1996-08-23  0:00                   ` Larry J. Elmore
1996-08-24  0:00                 ` Alan Brain
1996-08-15  0:00             ` Should I learn C or Pascal? Richard A. O'Keefe
1996-08-17  0:00               ` Lawrence Kirby
1996-08-18  0:00                 ` Ken Pizzini
1996-08-19  0:00                 ` Richard A. O'Keefe
1996-08-23  0:00                   ` Joe Keane
1996-08-17  0:00               ` Mike Rubenstein
1996-08-17  0:00               ` Alexander J Russell
1996-08-16  0:00             ` Dr E. Buxbaum
1996-08-16  0:00               ` Lawrence Kirby
1996-08-17  0:00                 ` Paul Hsieh
1996-08-17  0:00                   ` Mike Rubenstein
1996-08-19  0:00                     ` Richard A. O'Keefe
1996-08-20  0:00                       ` Mike Rubenstein
1996-08-22  0:00                         ` Richard A. O'Keefe
1996-08-22  0:00                           ` Mike Rubenstein
1996-08-16  0:00               ` Mike Rubenstein
1996-08-20  0:00               ` Paul Schlyter
1996-08-20  0:00                 ` Mike Rubenstein
1996-08-21  0:00                 ` James Youngman
1996-08-22  0:00                   ` TRAN PHAN ANH
1996-08-22  0:00                     ` Dr E. Buxbaum
1996-08-27  0:00             ` Jeffrey C. Dege
1996-08-27  0:00               ` Bob Cousins
1996-08-27  0:00               ` Steve Heller
1996-08-27  0:00               ` Ted Dennison
1996-08-27  0:00               ` Craig Franck
1996-08-27  0:00                 ` Ted Dennison
1996-08-27  0:00                   ` John Hobson
1996-08-28  0:00               ` Robert Dewar
1996-09-01  0:00               ` Patrick Horgan
1996-09-12  0:00                 ` Delete - Don't Bother to Read This Charles H. Sampson
1996-08-13  0:00           ` Should I learn C or Pascal? Ralph Silverman
1996-08-16  0:00           ` What's the best language to learn? [was Re: Should I learn C or Pascal?] Darin Johnson
1996-08-16  0:00             ` system
1996-08-16  0:00             ` Robert Dewar
1996-08-16  0:00           ` Should I learn C or Pascal? Darin Johnson
1996-08-20  0:00           ` Darin Johnson
1996-08-21  0:00           ` What's the best language to learn? [was Re: Should I learn C or Pascal?] Darin Johnson
1996-08-22  0:00           ` What's the best language to learn? [any language except Ada] Jon S Anthony
1996-08-23  0:00           ` Darin Johnson
1996-08-25  0:00             ` Robert Dewar
1996-08-24  0:00           ` Jon S Anthony
1996-08-05  0:00   ` Should I learn C or Pascal? Sherwin Anthony Sequeira
1996-07-24  0:00 ` Jon S Anthony
1996-07-25  0:00 ` ++           robin
1996-07-25  0:00 ` ++           robin
1996-07-30  0:00   ` Robert Barnes
1996-07-30  0:00     ` Rob(t.) Brannan
1996-08-01  0:00       ` Tony Konashenok
1996-08-04  0:00         ` Lawrence Kirby
1996-08-09  0:00         ` Verne Arase
1996-08-01  0:00       ` ++           robin
1996-08-01  0:00         ` Ralph Silverman
1996-08-06  0:00           ` ++           robin
1996-07-25  0:00 ` ++           robin
1996-07-31  0:00 ` What's the best language to start with? [was: Re: Should I learn C or Pascal?] Darin Johnson
1996-08-02  0:00   ` Alan Peake
1996-07-31  0:00 ` Darin Johnson
1996-08-01  0:00   ` Tim Behrendsen
1996-08-01  0:00     ` Stephen M O'Shaughnessy
1996-08-03  0:00       ` Tim Behrendsen
1996-08-06  0:00         ` Stephen M O'Shaughnessy
1996-08-05  0:00     ` Patrick Horgan
1996-08-06  0:00       ` Szu-Wen Huang
1996-08-06  0:00       ` Dan Pop
1996-08-08  0:00         ` steidl
1996-08-01  0:00 ` Stefan 'Stetson' Skoglund
1996-08-05  0:00   ` Stephen M O'Shaughnessy
1996-08-06  0:00     ` Bob Gilbert
1996-08-07  0:00       ` Stephen M O'Shaughnessy
1996-08-09  0:00         ` Bob Gilbert
1996-08-06  0:00   ` Patrick Horgan
1996-08-01  0:00 ` Andy Hardy
1996-08-07  0:00 ` Fergus Henderson
1996-08-07  0:00   ` Tim Behrendsen
1996-08-08  0:00     ` Szu-Wen Huang
1996-08-08  0:00       ` Tim Behrendsen
1996-08-08  0:00         ` Christopher R Volpe
1996-08-08  0:00         ` Peter Seebach
1996-08-08  0:00           ` Tim Behrendsen
1996-08-08  0:00             ` Peter Seebach
1996-08-09  0:00               ` Tim Behrendsen
1996-08-09  0:00                 ` Peter Seebach
1996-08-15  0:00                   ` James_Rogers
1996-08-17  0:00                     ` Tim Behrendsen
1996-08-10  0:00           ` Mike Rubenstein
1996-08-10  0:00             ` Peter Seebach
1996-08-11  0:00             ` Craig Franck
1996-08-08  0:00         ` Szu-Wen Huang
1996-08-08  0:00           ` Tim Behrendsen
1996-08-09  0:00             ` Szu-Wen Huang
1996-08-09  0:00               ` Tim Behrendsen
1996-08-10  0:00                 ` Szu-Wen Huang
1996-08-11  0:00                   ` Tim Behrendsen
1996-08-09  0:00           ` some days weren't there at all
1996-08-10  0:00           ` Mike Rubenstein
1996-08-11  0:00             ` Szu-Wen Huang
1996-08-17  0:00             ` Richard Chiu
1996-09-04  0:00               ` Lawrence Kirby
1996-09-02  0:00 Richard A. O'Keefe
     [not found] <01 <1996Sep24.133312 <JSA.96Sep26124243@alexandria>
1996-09-26  0:00 ` Adam Beneschan
1996-09-29  0:00   ` Spencer M. Simpson, Jr.
1996-09-30  0:00     ` Craig Franck
1996-09-28  0:00 ` Jon S Anthony
1996-09-28  0:00   ` Ilias Kastanas
  -- strict thread matches above, loose matches on Subject: below --
1996-09-28  0:00 Jon S Anthony
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox