Toward A Human Computer Language Alexander B. Cannara IMSSS, Stanford, California Why must (should) computer-programming language be different from human languages? Please trust that this question can be linked intimately to our topic: "computer languages for education". But first, I'll argue that "computer languages" and "for education" redundantly describe that topic: (1) people use computers, thus computer languages, for work or play; (2) anyone engaged in productive enterprise (work or play) now and then learns something new (to him), so programming can be an educational experience; (3) because the computer is a very general tool in the realm of human thought, it is really an educational tool for all people. All designers of programming languages should keep that in mind. We want a computer language to allow us to define objects and their interactions as naturally as possible, so that we can set them off on computational explorations of worlds that we, not the language, constrain. Obviously, people are at the center of the relationship between the computer and humanity. We design computers and define languages for using them, and these programming languages allow us to communicate our thoughts not only to a machine, but to ourselves and to other people as well. Some argue that the latter is the more important function. In any case, any language is for communication and a limited language limits the communication of those who use it. Programming languages (or any other formal languages), are special, in contrast with human languages, because we do not yet understand our own language processing well enough to be able to construct any reasonable facsimile of it within or without Turing-computable limitations. In other words, no one has written a computer program that could pass the "Turing-test" and sensibly communicate with a human in human language over arbitrary scope and time. Research with that kind of goal in mind now aims at building upon success in limited contexts and is often coupled with psychological models of thought, memory, etc. (e.g. T. Winograd, Psychology Today, May 1974; or J. S. Brown, Proceedings of the ACM 1974 Conference). So a partial answer to the opening question is: "computer languages cannot yet be as broad as human languages". Given that programming languages are designed by sometimes frail, sometimes insightful humans who cannot describe what it is they do to communicate, but want to make a machine do it, what limitations of current programming languages should make us unhappy and spur [image] 58