by Wallace Feurzeig

Wallace Feurzeig is a division scientist in information sciences for Bolt Beranek and Newman. His favorite implementation of Logo is still Logo-S for minicomputers.

Logo was created in 1966 at Bolt Beranek and Newman, a Cambridge research firm. Its intellectual roots are in artificial intelligence, mathematical logic and developmental psychology. The first four years of Logo research, development and teaching work was done at BBN.
    During the early 1960s, BBN had become a major center of computer science research and innovative applications. I joined the firm in 1962 to work with its newly available facilities in the Artificial Intelligence Department, one of the earliest AI organizations. My colleagues were actively engaged in some of the pioneering AI work in computer pattern recognition, natural language understanding, theorem proving, LISP language development and robot problem solving. Much of this work was done in collaboration with distinguished researchers at M.I.T. such as Marvin Minsky and John McCarthy, who were regular BBN consultants during the early 1960s. Other groups at BBN were doing original work in cognitive science, instructional research and man-computer communication. Some of the first work on knowledge representation (semantic networks), question-answering, interactive graphics and computer-aided instruction was actively underway. J. C. R. Licklider was the spiritual as well as the scientific leader of much of this work, championing the cause of on-line interaction during an era when almost all computation was being done via batch processing.

Time for Interaction
My initial focus was on expanding the intellectual capabilities of existing teaching systems. This led to the first "intelligent" computer-assisted instruction (CAI) system, MENTOR, which employed production rules to support problem-solving interactions in medical diagnosis and other decision-making domains. In 1965 I organized the BBN Educational Technology Department to further the development of computer methods for improving learning and teaching, and the focus of our work then shifted to the investigation of programming languages as educational environments. This shift was partly due to two recent technological advances: the invention of computer time sharing and the development of the first high-level "conversational" programming language.
    The idea of sharing a computer's cycles among several autonomous users, working on-line simultaneously, had stirred the imagination of programmers in Cambridge in 1963 and 1964. BBN and M.I.T. teams raced to be first in realizing this concept, with BBN winning by days and holding the first successful demonstration of computer time-sharing in 1964. Our initial system, designed by Sheldon Boilen, supported five simultaneous users on a DEC PDP-1, all sharing a single CRT screen for output. Seeing dynamic displays from several distinct programs, simultaneously and asynchronously ("out of time and tune"), was a breathtaking experience.
    Time sharing made feasible the economic use of remote distributed terminals and opened up the possibilities of interactive computer use in schools. We had recently implemented TELCOMP, one of the new breed of high-level interactive programming languages. TELCOMP was a dialect of JOSS, the first "conversational" (i.e., interpretive) language, developed in 1962-63 by Cliff Shaw of the Rand Corporation; its syntax was similar to that of BASIC, which had not yet appeared. Like BASIC, TELCOMP was a FORTRAN-derived language originally designed for numerical computational applications. Shortly after TELCOMP was created, we decided to introduce it to children as a tool for teaching mathematics and in 1965-66, under U.S. Office of Education support, explored its use as an auxiliary resource in eight elementary and secondary schools served by the BBN time-sharing system. Students were introduced to TELCOMP and then worked on standard arithmetic, algebra, and trigonometry problems by writing TELCOMP programs. The project strongly confirmed our expectation that the use of interactive computation with a high-level interpretive language would be highly motivating to students.


    My collaborators in this research were Daniel Bobrow, Richard Grant and Cynthia Solomon from BBN and consultant Seymour Papert, who had recently arrived at M.I.T. from Jean Piaget's Institute in Geneva. The idea of a programming language expressly designed for children arose directly from this project. We realized that most existing languages were designed for doing computation and that they generally lacked facilities for nonnumeric symbolic manipulation. Current languages were inappropriate for education in other respects as well: they often employed extensive type declarations that got in the way of students' expressive impetus; they had serious deficiencies in control structures; their programs lacked procedural constructs; most had no facilities for dynamic definition and execution; few had well-developed and articulate debugging, diagnostic and editing facilities, so essential for educational applications.

graphics using Logo

Educational Expression
The need for a new language designed for and dedicated to education was evident. The basic requirements for the language were:
    1) Third-graders should be able to use it for simple tasks with very little preparation.
    2) Its structure should embody mathematically important concepts with minimal interference from programming conventions.
    3) It should permit the expression of mathematically rich nonnumerical as well as numerical algorithms. Examples of nonnumerical problems include translating English into pig Latin; making and breaking "secret codes"; word games such as testing whether a word is symmetric (a palindrome), finding words within words, writing words backwards; question-answering and guessing games (such as "twenty questions" and "buzz"). Our strategy was to introduce mathematical ideas through experience with these familiar and meaningful problems and projects.
    Incredibly, the best model for the new language (which was to be as simple as possible) turned out to be LISP, the lingua franca of artificial intelligence, often regarded (by non-LISP users) as one of the most difficult and formidable of languages. Of course, the syntax of Logo is much more familiar and accessible than that of LISP Essentially, though, Logo is LISP and is thus both an easy and a powerful language. The power is not evident in most existing microcomputer implementations, mainly because of their small memory and restricted performance.
    The initial design of Logo came about through extensive discussions in 1966 between Seymour Papert, Dan Bobrow and myself. Papert developed the overall functional specifications for the new language, and Bobrow made extensive contributions to the design and did the first implementation. Subsequently, Richard Grant made substantial additions and modifications to the design and implementation, assisted by Cynthia Solomon, Frank Frazier and Paul Wexelblat. I gave Logo its name.
    This first version of Logo was pilot-tested in the summer of 1967 with fifth- and sixth-grade math students at the Hanscom Field School in Lincoln, Massachusetts, under support of the U.S. Office of Naval Research. In 1967-68 we designed a new and greatly extended version, which was implemented on our DEC PDP-1 computer system by Charles R. Morgan. Michael Levin, one of the original implementors of LISP, contributed to the design. From September 1968 through November 1969, the National Science Foundation supported us in the first intensive program of experimental teaching of Logo-based mathematics in elementary and secondary classrooms. The teaching experiments demonstrated in principle that Logo can be used to provide a natural conceptual framework for the teaching of mathematics in an intellectually, psychologically and pedagogically sound way.
    In 1970 Seymour Papert founded the Logo Laboratory at M.I.T. Logo-based turtles, erroneously thought by many to be essential to the Logo teaching enterprise, were introduced around 1971. Several hardware implementations and teaching experiments followed during the decade of 1970s at M.I.T., BBN and elsewhere.
    Then came microcomputers. Their wide availability and affordability catapulted Logo into becoming one of the world's most widely used languages. At this point in its history, future development of exemplary teaching ideas and materials is crucial to support the needs of users. Our work on Logo development is continuing and continues to be compelling. Logo is an idea whose time is now.

Like the sling David used against Goliath, FORTH enables serious amateurs and small groups of professionals to hold their own in a world dominated by corporate giants and large-team projects. Below are some of the factors contributing to the growth and power of this "grass roots" computer language despite the lack of institutional support or academic interest.
    1) FORTH is extensible (you add your own commands to the language). You can create a customized language for any program you want to write and can define whole new families of data structures or commands.
    2) FORTH is interactive (you get results right away). Dozens or hundreds of separate tests can be run during a single session at the computer. If a routine doesn't work, you can test its components and subcomponents immediately from the keyboard without writing separate programming. Such immediate results encourage programmer education as well as software development.
    3) FORTH is multilevel (you can reach down to the lowest level of bits or bytes without using a machine language, or you can stay in the highest realm of special customized words for your own application). All levels are always available and can be mixed or matched at any time.
    Suppose you want to write a program to control a machine, e.g., to move motors, turn lights on and off, make sounds or music, read meters or other indicators. You write your own routines (extensible) to create special commands that set the particular memory bits (multilevel), which act as switches to move motors, etc. Then you can watch the machine react to your typed commands (interactive) and build new routines (extensible) for the machine commands you wrote as well as any previous programs to get more complex behavior. You see the results right away (interactive).
    Since its programs are completely machine-independent, FORTH can run on whatever computers are available at the time. Moreover, while other languages tend to lock you into whatever features were provided by the computer manufacturer or software house, FORTH allows complete control of the machine and encourages you to change any part of the system itself. Not only are its system internals much simpler, but there is no dividing line to separate the system from your own application programs. All the software (operating system, programming language and application program) is one seamless piece, any part of which can be changed at your own command. Everything needed is in the public domain, information is freely exchanged, and software developers can avoid licensing hassles.
    As might be expected, programming in FORTH stimulates the imagination. You create words (commands) of your own design, and each new word becomes an integral part of the system. In most languages, writing a program can be compared to building a house using only those tools provided. In FORTH, you use the given tools to create still new ones until finally one of the tools is the house itself-ready to be lived in, but also ready to be used again to build a whole complex later on.
    FORTH is not for everyone, of course. Managers who consider using it must worry about staff retraining or finding enough programmers or controlling projects with a language that gives each individual considerable freedom. And though we know it works well for small projects, there has been little opportunity to document its effectiveness in larger efforts.
    As for the future, almost no one expects FORTH to catch on so completely that other languages will be made obsolete. Since no one language is best for every purpose, there will still be variety in the computer world. Nevertheless, we can anticipate that FORTH will continue to grow in influence and to offer its users a substantial advantage.

JOHN S. JAMES, originator of the CommuniTree network in Santa Cruz, California

Return to Table of Contents | Previous Article | Next Article