Breaking the complexity barrier again

This paper does not describe an existing programming system. It is intended to bring together a bunch of ideas about what future programming systems might be like, and what it is necessary to do if we want to build them. Most of the stuff in it is based on ideas which come from a variety of sources -in fact from almost any computer system you know of. In particular, a lot of them are embedded in LISP, (INTERLISP and MACLISP in particualr), DDT, MULTICS, LOGO, ITS, PLANNER, CONNIVER, Hewitt 's work on intentions and actors, Goldstein's work on program understanding, and various LISP facilities like LISP LOGO and GRIND, Sussman°s HACKER, Winston's INDEX program, Teitelman's DWIM and CLISP, and many many others. I am aware that many similar facilities exist in a number of other programming environments, but for this paper, I will refer to those with which I am most familiar. The bibliography contains refereces to many of them, mostly at the Artificial Intelligence Lab at MI.T. It is not necessary to understand details of these facilities in order to get the basic thrust of the paper. What is important is the basic ideas they represent. I will not attempt to credit them properly, instead concentrating on putting them together. It is pleasing to think that ideas which are so much "in the air" must be at least headed in the right direction.