Section 11.3: Approaches to Relocation (Frame 3)                     [prev][home][next]

This blurring of data and instructions is not a mistake or a logical failure of computer designers. Rather, it is just the opposite, a brilliant insight that instructions are just a form of data. John von Neumann is credited with inventing the stored program concept, which is what this method of storing instructions as data in memory along with regular data, although there is now controversy that he only contributed to an idea that several people conceived simultaneously. Nevertheless he saw that a program could write a new program if instructions were but data and that perhaps programs could even learn by rewriting themselves while they were running.

Things didn't work out quite this smoothly. Today instructions and pure data are usually segregated in different parts of memory to ensure that an errant program does not jump into the middle of a number table and begin running the "program" there. However, artificial intelligence investigators still work on programs that learn by modifying themselves "on the fly."