Hot answers tagged

48

FORTRAN was, at the time(*1), lacking almost everything, from string handling to all I/O beside reading numbers from cards or tape. Heck, not even integer size was guaranteed across machines. No real way of structuring or flow control beside GOTO — even subroutines/functions were only integrated a year before with FORTRAN II. For most parts, FORTRAN is a ...


32

The meeting that defined the requirements of the new language took place on May 28–29, 1959. Charles Phillips prepared a memo several months later summarizing the decisions made at that meeting. Its listing of requirements is reprinted on page 201 of the ACM’s History of Programming Languages. a. Majority of group supported maximum use of simple English ...


14

The short answer is that as a random number generator it's very poor algorithm, but on the other hand, the way it is used to generate random numbers with certain properties might be adequate for the task it was needed, so how good it is depends what you use it for. The updated new function called UNR has something to do with generating uniformly distributed ...


8

Here's a different take on the issue (thus a separate answer). There is no such distinction. I ran this program through the KDF9 Whetstone Algol translator: _b_e_g_i_n_i_n_t_e_g_e_rn; n:=1; _e_n_d It compiles just fine(though of course there's always the possibility of artifacts from the modern ASCII translation). My interpretation is as follows: Spaces ...


8

Except for the full set of upper- and lowercase letters, there was. The Soviet character encoding standard GOST 10859-64 included all of the ALGOL-60 special characters, and there were card punchers controlled by electric typewriters (Consul-260) with a standard-compliant character set. Note the lack of distinct Latin letters graphically equivalent to ...


7

Based on a reading of a document titled Operational Characteristics of the processors for the Burroughs B5000, and applying a lot of interpretation, it appears that thunks are compiled in a fairly normal way. The called procedure executes either an "Operand Call" or an "Descriptor Call" operator (B5000-ish for "instruction") in ...


4

Purely from the first principles, given that Burroughs was a tagged architecture, it would be logical to pass arguments by name by setting the corresponding formal parameter to either the address of the actual parameter if it was an l-value (assignable) with one tag, or the address of the thunk computing the actual parameter expression with another tag, and, ...


4

One may call it an issue of taste or linguistics. The point is that there isn't a English word 'goto'. These are two words. In fact, 'goto' would be pronounced different from 'go to'. Hold your breath and take a step back. Try to view it and shed 40+ years of FORTRAN and BASIC indoctrination. Try to pronounce it like someone uninitiated with programming. It ...


3

For scientific and high performance computing Algol was considered, and possibly is still considered by some, to be a more powerful language than Fortran. Was (is) it? It might be great to have some reference to this. For the same algorithm encoded in both languages and using the same data, which of the two languages executed programs the fastest? A ...


3

Theoretically, assuming two equally optimizing compilers, an Algol program may be either faster than a Fortran program implementing the same algorithm, if in Algol all subroutine parameters are declared as value, and accessed from within the subroutine more efficiently that in Fortran (where everything is passed by reference); or slower, if they are not, and ...


3

For clarity, I decided to move the KDF9 part of my question to an answer, since that is what it really is... I have no intention of accepting my own answer. My submission for "most nearly fulfilling the requirements" was Algol 60 on the English Electric KDF9 using paper tape prepared on a Friden Flexowriter. The Flexowriter had two cases of ...


3

The Algol 60 compiler for the Electrologica X8 was such an implementation. One of its authors wrote a report describing the differences between the X8 compiler and an earlier Algol compiler for the Electrologica X1, which did not support numeric labels; section 5.2.6 discusses how labels and designational expressions in general were handled. The X8 compiler ...


3

Partial answer: The only three features I have found in the ISA so far that I think can help with call-by-name are the following: a) As call-by-name can be used both for an assignment ("l-value" in C terms) and in an expression ("r-value"), normally you'd need two thunks for it (one to return the address as l-value, one to return the ...


3

RND computes the inverse of the cumulative Gaussian distribution with mean 0 and standard deviation 1 (see, e.g., here). In other words, given a uniformly distributed random number in (0,1), it return a normally distributed random number. The actual RNG must be elsewhere.


2

I guess that UNR stands for something like “unit normal” distribution, better known as the standard normal distribution. The algorithm gives a pretty decent sampling of that. Note that its range (for V) is restricted to the interval [-4.23, 4.23] but more than 99.998% of all expected values would be in that range for a standard normal variable. As others ...


2

This small example demonstrates a use case for a procedure with unspecified parameters: 1. _BEGIN 2. _INTEGER _ARRAY X[0:10]; 3. _REAL _ARRAY Y[1:20]; 4. _PROCEDURE SUM(A, B, C, D); 5. _BEGIN _INTEGER I; 6. D := 0; 7. _FOR I := B _STEP 1 _UNTIL C _DO D := D + A[I]; 8. _END; 9. _INTEGER I; _REAL R; 10....


2

(Opinion - I doubt there is any answer that is not opinion, unless one of the parties involved shows up here). I think it is just personal taste. Algol Bulletin 38 contains a letter (page 8) signed by the future authors of the Modified Report, and there the separate go to is used. Section 4.3, page 18, bears the heading Go to statements. This apparently ...


Only top voted, non community-wiki answers of a minimum length are eligible