Timeline for Why do programming languages use the asterisk * for multiplication?
Current License: CC BY-SA 4.0
18 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Sep 27, 2023 at 19:48 | history | bounty ended | Hashim Aziz | ||
Sep 26, 2023 at 17:54 | comment | added | kaya3 | Amazing quote from the linked paper by Backus and Henrick, forecasting much higher-level languages: "In fact a programmer might not be considered too unreasonable if he were willing only to produce the formulas for the numerical solution of his problem [...] and then demand that the machine produce the results for his problem. No doubt if he were too insistent next week about this sort of thing he would be subject to psychiatric observation. However, next year he might be taken more seriously." | |
Sep 26, 2023 at 15:37 | comment | added | supercat | @FedericoPoloni: I think "@" might be viewed as part of a three-operand "ratio" operator, which multiplies one thing by a second and divides by a third. On many architectures, this could be a useful construct, and one for which IIRC Niklaus Wirth (but maybe it was Donald Knuth, or maybe both) advocated, since multiplication can often produce a double-width product, and division can often accept a double-width dividend, and the same register may be used for both. | |
Sep 23, 2023 at 10:56 | comment | added | kaya3 | @FedericoPoloni I'd argue that the word "at" in that context has a meaning which is in one way more general than multiplication, and in another way more specific. It does imply multiplication in this context, but more generally it implies a unit conversion, and more specifically here it is multiplication by a conversion rate (in this case, a rate of "dollars per widget"). Compare with "2 hours at 50km/h", where the second number is a rate for converting time into distance, but you can also say "100km at 50km/h" and then the word "at" implies division, not multiplication. | |
Sep 22, 2023 at 17:00 | comment | added | Federico Poloni | @el.pescado Early computers didn't have custom-made keyboards, but they typically reused electric typewriter and teleprinter hardware for input. en.wikipedia.org/wiki/Computer_keyboard#History And those were not made for number crunching. | |
Sep 22, 2023 at 16:55 | comment | added | Federico Poloni | @elzell Isn't "12 pieces at 1.50 each" a multiplication, ultimately? | |
Sep 22, 2023 at 9:13 | comment | added | elzell | @user71659 I'd rather understand the @ sign here as literal 'at', like '12 [pieces] at 1.50 [each]', not as a multiplication as in '12 times 1.50', but I'm not a native speaker, so I might be wrong. | |
Sep 22, 2023 at 7:15 | history | edited | Michael Homer♦ | CC BY-SA 4.0 |
added 575 characters in body
|
Sep 22, 2023 at 7:10 | history | edited | Michael Homer♦ | CC BY-SA 4.0 |
added 575 characters in body
|
Sep 22, 2023 at 7:03 | history | edited | Michael Homer♦ | CC BY-SA 4.0 |
added 575 characters in body
|
Sep 21, 2023 at 22:10 | comment | added | user71659 |
@el.pescado-нетвойне They did have multiplication. Not only was it on IBM's first computers (IBM 701 BCD), it dates to the 1950's punch cards. Being business machines, the multiplication character was the commercial at, @ . On an invoice, you'd write WIDGETS 12 @ 1.50 18.00 .
|
|
Sep 21, 2023 at 21:28 | comment | added | hobbs | @el.pescado-нетвойне character sets were designed for data — initially, just numbers, then alphanumerics, then some punctuation that might be useful for printing in tables. The idea that code could be a kind of data that the computer manipulated came along later. | |
Sep 21, 2023 at 20:01 | comment | added | dan04 |
Early computers had no need for a character set that included mathematical operators because you didn't write mathematical expressions on the computer. You either had to hand-compile your code into machine language, or used an assembly language (or Speedcoding) with alphabetic mnemonics. FORTRAN was the first mainstream programming language to use the math-like syntax with +-*/() etc. that's popular today.
|
|
Sep 21, 2023 at 8:40 | comment | added | Michael Homer♦ | I think the short answer is that the original BCD encoding mapping was made for printing commercial text (e.g. on cheques or reports) and there wasn't an encoding made specifically for these computers until several years later when it had been proved to be useful. On the cards themselves it's a bit arbitrary and to see the actual symbols translated took a printer. Retrocomputing will probably give you a more comprehensive or more correct answer! | |
Sep 21, 2023 at 8:32 | comment | added | Matthieu M. | @el.pescado-нетвойне: I suggest asking on the retro-computing stackexchange site, there's quite a few experts there, and someone may actually have a good answer :) | |
Sep 21, 2023 at 8:14 | comment | added | el.pescado - нет войне | This begs a follow-up question: why weren't any multiplication symbols included in character sets of early computers back the when computers were primarily a number crunching machines, not cat-pictures-watching-devices like today. | |
Sep 20, 2023 at 23:07 | history | edited | Michael Homer♦ | CC BY-SA 4.0 |
added 603 characters in body
|
Sep 20, 2023 at 22:57 | history | answered | Michael Homer♦ | CC BY-SA 4.0 |