From the first two observations, it could seem as an impossible task to create a fully automatically parallelizing computing system, that even runs on distributed memory systems.
I believe that it is not so. The compilers that seek to automatically parallelize code, are working with languages that by nature are not parallel. These languages are usually Fortran or C.
Since the TONS system is designed from scratch, it is not at all necessary to base the system on an existing language. A new language was designed, one that lends itself well to parallelism, yet has no way for the user to represent parallelism. This may sound corny, but keep in mind that we want the machines to do the work. If a feature was put in the language, that would allow the user to ``hint'' the system, we would soon end up with something as messy as the existing parallelizing compilers.
Note that this new language is the language which translates directly into the code understood by the virtual machine. It is not the language we intend our end-users to see.
The end-user language, the language referred to as ``TAL'' in Section 1.2, will undoubtedly borrow a lot of ideas from existing languages. In order to make the new computing environment useful to anyone, we must of course have a language that is both intuitive and looks somewhat familiar to our prospected users (the people using C, Fortran and MatLab now). For now we will look at the kind of language that is nice to parallelize, not necessarily nice to look at.