Live data from Hacker News

Letters between Backus and Dijkstra (1979)

medium.com

111–120 of 128 posts

Re: Letters between Backus and Dijkstra (1979)

#111

Earlier quoted context omitted.

The paper is about, among other things, the history of the array data structure. It's far too early to advertise, but you can see a very early version on my GitHub account. :) I was surprised to discover recently that the word 'array' prior to 1950 was used exclusively to describe two dimensional tables of numbers that one might find in a matrix or determinant. But by the advent of FORTRAN I in 1957 and ALGOL 58, 'ar…

Priority is tricky to nail down e.g. the EDSAC was operational a year before the Mark 1 (which actually was not operational until 1949). Because of the "B" Williams Tube which held the two index registers of the Mark 1, many other manufacturers -- e.g. Burroughs -- later called their index registers "B registers". (Also, I think the Univac I and II were successful commercially, and earlier than the 704.) I started pr…

Thanks for the input!

Yes, there are at least two separate stages of historical development here. The first is when people realized it was useful to repeat the same operation on different data in memory and viewed the collection of data as a variable in its own right. The earliest term I can find for this concept is "subscripted variable" (many examples prior to 1954, e.g. Rutishauser, 1952 in the "for" loop paper; Laning and Zierler, 1954)

but the idea appears to go all the way back to Burk, Goldstine and Von Neumann in 1946. Quoting p. 9, paras. 3.3-4:

"In transferring information from the arithmetic organ back into the memory there are two types we must distinguish: Transfers of numbers as such and transfers of numbers which are parts of orders. The first case is quite obvious and needs no further explication. The second case is more subtle and serves to illustrate the generality and simplicity of the system. Consider, by way of illustration, the problem of interpolation in the system. Let us suppose that we have formulated the necessary instructions for performing an interpolation of order n in a sequence of data. The exact location in the memory of the (n + 1) quantities that bracket the desired functional value is, of course, a function of the argument. This argument probably is found as the result of a computation in the machine. We thus need an order which can substitute a number into a given order-in the case of interpolation the location of the argument or the group of arguments that is nearest in our table to the desired value. By means of such an order the results of a computation can be introduced into the instructions governing that or a different computation. This makes it possible for a sequence of instructions to be used with different sets of numbers located in different parts of the memory.

"To summarize, transfers into the memory will be of two sorts:

"Total substitutions, whereby the quantity previously stored is cleared out and replaced by a new number. Partial substitutions in which that part of an order containing a _memory location-number_-we assume the various positions in the memory are enumerated serially by memory location-numbers-is replaced by a new _memory location-number_.

"3.4. It is clear that one must be able to get numbers from any part of the memory at any time. The treatment in the case of orders can, however, b more methodical since one can at least partially arrange the control instructions in a linear sequence. Consequently the control will be so constructed that it will normally proceed from place n in the memory to place (n + 1) for its next instruction."

https://library.ias.edu/files/Prelim_Disc_Logical_Design.pdf

The language is of course archaic, but the idea described clearly is that of indexing in 3.3 and arrays in 3.4. They use the word "sequence" but arguably this usage is in its ordinary mathematical sense.

The written historical evidence, at least, would confirm your strong guess that the idea of arrays itself is older than index registers. There's a missing etymological link though: when did a sequence of data stored consecutively in memory become associated with the word "array"? Still, the earliest written reference I can find for this second stage of historical development is the 1954 preliminary report on FORTRAN.

Maybe the word "array" is somehow derived from the advent of RAM, which even in its earliest form in Williams tubes had memory locations arranged physically in two dimensions. So right from the start we have two dimensions physically, but only one dimension logically, since the earliest computer instructions only dealt with (one-dimensional) offsets, if at all. Furthermore, popular science accounts of magnetic core memory describe them in terms of arrays. To give one example, the June 1955 issue of the Scientific American (no 192, pp 92–100) writes about "magnetic core arrays".

http://www.nature.com/scientificamerican/journal/v192/n6/pdf...

Re: Letters between Backus and Dijkstra (1979)

#112
post #87
post #55

Earlier quoted context omitted.

I could never find a reliable source for this oft-quoted remark about Object-Oriented Programming. As far as I know, Dijkstra never said this, not in this exact phrasing anyway.

Also, why would he say that when he knew, very well, that OOP was invented in Norway? http://coldcomfortgames.com/blog/object-oriented-programming... https://www.quora.com/Why-did-Dijkstra-say-that-%E2%80%9CObj... It seems no one is able to find the source of the quote, it's in fact much more likely he did not say anything like that, and that the quote is a fabrication.

What he did say : « I don’t think object-oriented programming is a structuring paradigm that meets my standards of elegance » (https://www.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/E...)

I guess some decided that Dijkstra didn't have enough inflammatory quotes attached to his name and fabricated the other one.

Re: Letters between Backus and Dijkstra (1979)

#113
post #68

Earlier quoted context omitted.

Well, the one reviewer said it was only a start toward a method for practical software with practical part maxing out at a sorting algorithm. Is that true or do you have examples of realistic stuff covered by book?

Backhouse's more playful book, focuses primarily on teaching one how to write and use proofs in the "calculational style" of Dijkstra/Hoare/Lamport/others. Backhouse's less playful book covers the same topic, but has some more programming examples: * cyclic code error correction * simple sorting algorithms * real number to integer conversion is used to introduce Galois connections Again, this isn't a lot in terms of…

Anyone that knows about all these resources should really scour them to put together a list of their application to real-world problems. Any researchers that like the stuff should apply them to real-world problems. The reason is that we don't know if such methods are a waste of time or useful until that happens. So, I'm interested in anything you have on that.

EDIT: Your recommendation was good as it clearly has practical advice. I can tell just looking at table of contents. And, as a gift, I found the whole book for free plus other things in link below. :)

http://research.microsoft.com/en-us/um/people/lamport/tla/bo...

Re: Letters between Backus and Dijkstra (1979)

#115

Earlier quoted context omitted.

Emotional harm is still violence. it is not a strictly physical phenomenon.

I was molested by the universe, ever since i was evicted from the save space of the womb. ;) I would feel so ashamed, for soiling myself with self-pity in public and to perceive the distance others take from me as a success of my output.

Seriously? Where the fuck does this even come from?

Emotional harm is violence. Like all violence it exists on a spectrum.

There's unintended harm, accidental insults and the like. These are easily brushed over for healthy people but for others can become one straw too much.

Sometimes it's intentional and "for their good". Honestly, honesty can be this sometimes. An honest answer may hurt someone but may be exactly what they need. Other times it's just taking it too far and being careless/heartless.

And then there's the truly heinous deliberate form. Ask abused women and children. Did theirs users always hit them? Burn them? Starve them? No. Sometimes, oftentimes, they verbally and emotionally abused them. Keeping them from those who care about them. Creating a bubble around them to keep them despairing. Telling them they're worthless over and over until they believe it.

I don't see where there's any self-pity in my post to be ashamed of. I'm just stating the fact that emotional harm is violence.

Re: Letters between Backus and Dijkstra (1979)

#116

Earlier quoted context omitted.

Emotional harm is still violence. it is not a strictly physical phenomenon.

Was there a meeting where someone took the explicit decision to have followers repeat this lie until other people believed it, or do people like you take it upon yourselves to repeat this lie out of the basic evil in your heart?

What lie? What evil in my heart? Do you know me?

Re: Letters between Backus and Dijkstra (1979)

#117
post #33
post #19

Earlier quoted context omitted.

Full disclosure: a) Dijkstra is a bit of a personal "hero" of mine (hero in quotation marks, because I don't like to think of myself as a hero worshipper), because it was due to him I learned of textbooks written by guys like Eric Hehner and Roland Backhouse, which ended up changing my life significantly. b) I do not really grasp the technical issues being discussed in the correspondences between Dijkstra and Backus…

I personally found Backus to be way more of a dick in these letters, though I did gloss over some parts. It's strange how different people can get very different things from these letters. Maybe they just didn't have personalities that meshed well. I don't think it's cultural: I'm American and I find Dijkstra's demeanor to be perfectly acceptable, if a little a colorful. Although, in the same vein, people often don't…

Dijkstra was very rude

Re: Letters between Backus and Dijkstra (1979)

#118
post #56

Earlier quoted context omitted.

While I would agree with that in principle, I think the word "violence" is being stretched a bit. Being unforgiving, stubborn, demanding, hard-hearted, or anything adherence to logic might be claimed to imbue are not acts of violence, even if they are emotionally hurtful to others.

Emotional harm is still violence. it is not a strictly physical phenomenon.

Emotional harm can be violent if it is forcibly inflicted on someone. If they volunteer themselves to be emotionally harmed of their own volition, this is hardly violence.

Rational thought is not violent, no matter how much it pains you to hear what it concludes. Disagreeing with someone is not violence, even if they can't bear to suffer it.

Re: Letters between Backus and Dijkstra (1979)

#119
post #118

Earlier quoted context omitted.

Emotional harm is still violence. it is not a strictly physical phenomenon.

Emotional harm can be violent if it is forcibly inflicted on someone. If they volunteer themselves to be emotionally harmed of their own volition, this is hardly violence. Rational thought is not violent, no matter how much it pains you to hear what it concludes. Disagreeing with someone is not violence, even if they can't bear to suffer it.

And no violence occurs if I ask you to punch me and you do.

Re: Letters between Backus and Dijkstra (1979)

#120
post #93
post #86

Earlier quoted context omitted.

Thanks for the clarification. Now your first comment makes a lot more sense to me. It was not clear to me that you were asking for something. I thought you were trying to explain something.

I wasn't asking you for anything.

You were asking me to follow the guidelines. Which is perfectly fine. I wasn't aware that I violated them, I'm thankful for the hint, and I'm more than willing to respect and follow them.

I just didn't get that from your very short initial comment, because I misunderstood it.

Post reply on HN