The linked article doesn't mention that the SSEC's modifiable-program nature is debated, since it normally read instructions from paper tape. It did have a small (150 word) relay store from which it could also read instructions (so I personally think it counts).<p><a href="http://www.quadibloc.com/comp/cp04.htm#ssec" rel="nofollow">http://www.quadibloc.com/comp/cp04.htm#ssec</a><p><a href="http://www.columbia.edu/cu/computinghistory/ssec.html" rel="nofollow">http://www.columbia.edu/cu/computinghistory/ssec.html</a>
Just in case anyone wants to see the rather delightful cartoon referenced in the article, which is now a dead link[0]:<p>[0] <a href="https://web.archive.org/web/20050305233206/https://www.columbia.edu/acis/history/newyorker-720-lo.jpg" rel="nofollow">https://web.archive.org/web/20050305233206/https://www.colum...</a>
SPICE, the integrated circuit simulation software, used to "compile" at run time an optimal chunk of machine code specific to the matrix to be solved. This was only for CDC machines. There was actually a parameter called LVLCOD that the user could use to specify that custom machine code was generated at runtime or not.
I remember the time when modifying running programs were a big rage. Now seems many OSs are going in the opposite direction with OpenBSD leading the race.