tag:blogger.com,1999:blog-3722233.post3405356847092283651..comments2024-03-27T19:58:17.387-05:00Comments on Computational Complexity: Creating an Email System at CornellLance Fortnowhttp://www.blogger.com/profile/06752030912874378610noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-3722233.post-52673553255317047952011-06-24T17:33:52.639-05:002011-06-24T17:33:52.639-05:00RE: Does anyone code in assembly anymore? How abou...RE: Does anyone code in assembly anymore? How about binaries?<br /><br />The answer is "yes" to both of these questions, but for reasons other than speed. One can safely assume that most people out there cannot write assembly which will produce a binary that is faster than one produced by an optimizing compiler.<br /><br />The real reason one would want to code in assembly (and machine code) would be to achieve access to the underlying hardware that a high-level language compiler would prohibit you from doing, or if you're trying to do something squirrelly (e.g., shell-coding).Ahttps://www.blogger.com/profile/02715495667566510040noreply@blogger.comtag:blogger.com,1999:blog-3722233.post-63562173103788594212011-06-24T15:52:29.415-05:002011-06-24T15:52:29.415-05:00According to a history of e-mail by one of the Mul...According to a <a href="http://www.multicians.org/thvv/mail-history.html" rel="nofollow">history of e-mail by one of the Multics crew</a>, <i>networked</i> e-mail started in 1971 but e-mail between users on the same machine started several years earlier.<br /><br />370 assembler - matched in COBOL and PL/I - had an surprising array of data-types for numbers.<br />I recall that they included the char format EBCDIC (IBM's extended binary-coded decimal standard that predated ASCII which wasn't always the standard it is today), packed decimal, zoned decimal, etc.<br /><br />COBOL had some other oddities (other than verbosity) and self-modifying code (which I don't recall seeing used) that made it painful indeed to debug. In addition to having PERFORM commands for a paragraph of statements, which were used like macros instead of subroutines and whose start was a line label and whose end was a period (used more when GOTOs were deprecated), COBOL had PERFORM THRU commands. A PERFORM THRU command was just as insidious as self-modifying code. It would start execution at some line label and keep executing until another specified line label was reached. This line label could be anywhere, even in the middle of a paragraph. At least with a GOTO statement you knew when you were leaving the current flow of execution. With a PERFORM THRU there is no indication in the <br />terminating line that control will move to an earlier point in the code. I have seen it used in 100,000 line COBOL programs. <br /><br />Y2K as a threat might have been overblown BUT at least it allowed companies to wash away years of COBOL programs. I wonder how many people still have to maintain old COBOL programs.Paul Beamehttp://www.cs.washington.edu/homes/beame/noreply@blogger.comtag:blogger.com,1999:blog-3722233.post-89388930792626783002011-06-24T07:14:09.200-05:002011-06-24T07:14:09.200-05:00Another pretty amazing hacking by Knuth: D. Knuth....Another pretty amazing hacking by Knuth: D. Knuth. Minimizing drum latency time. Journal of the ACM, 8:119–150 (the assembly language of the IBM 650 had instructions of the form<br /> <br />OP operand operand nextinstruction address<br /><br />The memory was a rotating magnetic drum. Knuth wrote a program to optimize the location of the next instruction, so disk latency would have minimal effect.CSProfhttps://www.blogger.com/profile/07212822875614144307noreply@blogger.comtag:blogger.com,1999:blog-3722233.post-79407223833715793582011-06-23T14:57:38.441-05:002011-06-23T14:57:38.441-05:00Lance, I'm impressed.
I did assembly as well,...Lance, I'm impressed.<br /><br />I did assembly as well, but only on lowly microprocessors.<br /><br />Bill, COBOL also has self-modifying features: you can ALTER the destination of a GOTO statement. Sometime you can ask me how I know.David Williamsonhttp://www.davidpwilliamson.net/worknoreply@blogger.comtag:blogger.com,1999:blog-3722233.post-4467231570698483302011-06-23T13:28:27.125-05:002011-06-23T13:28:27.125-05:00SNDMSG was not really e-mail and if you want to sa...SNDMSG was not really e-mail and if you want to say that it was, there had already been e-mail before, it was just single-machine e-mail (even Ray Tomlinson notes that he was making improvements to the existing SNDMSG program when he writes about his work from 1971).The Ubiquitous Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3722233.post-28315869995836496682011-06-23T13:22:26.541-05:002011-06-23T13:22:26.541-05:00Doesn't e-mail pre-date the "Internet&quo...Doesn't e-mail pre-date the "Internet" and have its origins in the 1960s?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3722233.post-75582837193804148222011-06-23T11:39:20.121-05:002011-06-23T11:39:20.121-05:00Nice bit of personal histrory :)
Don Knuth of co...Nice bit of personal histrory :) <br /><br />Don Knuth of course has done some awesome programming (TeX!). And he even proved theorems about algorithms specified in an assembly language.Sashohttps://www.blogger.com/profile/09380390882603977159noreply@blogger.comtag:blogger.com,1999:blog-3722233.post-7789653682714563512011-06-23T11:14:10.853-05:002011-06-23T11:14:10.853-05:00-------
"Several theorists have, at one time ...-------<br />"Several theorists have, at one time or another, done some real programming."<br />-------<br /><br />Three examples are Turing, von Neumann, and Shannon (pretty considerable examples, to be sure).<br /><br />Moreover, Turing was known as a dab hand with a soldering iron, von Neumann was gifted at wiring plugboards, and Shannon's childhood hero was Thomas Edison. <br /><br />Unsurprisingly, all three wrote essays arguing that good mathematics can arise from empirical experience:<br /><br />--------<br />"Some of the best inspirations of modern mathematics (I believe, the best ones) clearly originated in the natural sciences." (von Neumann)<br />--------John Sidleshttps://www.blogger.com/profile/16286860374431298556noreply@blogger.comtag:blogger.com,1999:blog-3722233.post-43196507265410537482011-06-23T10:39:38.009-05:002011-06-23T10:39:38.009-05:00Several theorists have, at one time or another, do...Several theorists have, at one time or another, done some real programming. (I am not one of them.)<br />Does it help them as theorists?<br /><br />Does anyone code in Assembly anymore? How about binaries?<br />My guess would be YES to both but<br />VERY VERY FEW.<br />Why is that? are modern compilers so good that the code you get is fast enough?<br /><br />A concept that terrifies me: self-modifying code. This was used in real assembly code programs to get some speedup.<br /><br />LANCE- your code is gone but your theorems will last forever.GASARCHhttps://www.blogger.com/profile/06134382469361359081noreply@blogger.comtag:blogger.com,1999:blog-3722233.post-82117974857655279592011-06-23T08:59:54.994-05:002011-06-23T08:59:54.994-05:00"we would code directly in IBM 370 assembly l..."we would code directly in IBM 370 assembly language. We would do it all ourselves, user interface, database for storing messages, interactions with SMTP servers, etc to maximize efficiency."<br /><br />I am 22 years old, a CS major and I feel terrified only at hearing this. I have programmed small programs in assembly... I cannot even imagine what would be like writing an e-mail program in it. <br /><br />And after all this, they are saying that theoriticians are not savvy enough...Anonymoushttps://www.blogger.com/profile/09364120444779754928noreply@blogger.com