TELCOMP: A Legacy in Early Interactive Programming Languages
TELCOMP, a pioneering programming language developed by Bolt, Beranek, and Newman (BBN) around 1964, represents a significant chapter in the history of computer science. While its legacy has often been overshadowed by other contemporaneous developments, TELCOMP’s role in the evolution of time-sharing systems and interactive programming cannot be understated. The language, which was in use until at least 1974, offered insights into early efforts at creating accessible, user-friendly interfaces for computing, well ahead of its time. This article explores TELCOMP’s origins, features, implementation on early computer systems, and its lasting influence on later programming languages.
Origins and Development of TELCOMP
TELCOMP was born out of the rapid advancements in computing during the 1960s. At this time, BBN, a company founded in 1948 and renowned for its work on networking technologies (notably ARPANET), was focused on developing time-sharing systems. In particular, BBN sought to provide interactive computing services, enabling multiple users to access a central computer remotely via teletype terminals. This approach was a departure from the conventional batch processing systems that dominated the early computing era, where users had to submit jobs in bulk and wait for their results.
The development of TELCOMP was directly influenced by an earlier language, JOSS (Johns Hopkins University Language for Problem Solving), which was known for its simplicity and interactivity. JOSS was an early high-level language designed for interactive use on mainframes, allowing users to input commands and receive immediate results. TELCOMP was conceived as a more refined and commercially viable derivative of JOSS, specifically tailored for use in time-sharing environments.
The development of TELCOMP was closely linked to the time-sharing systems being built by BBN. These systems allowed users to connect remotely to a central computer, perform computations, and interact with the machine in real-time. As part of this initiative, TELCOMP was implemented on early minicomputers such as the PDP-1, PDP-7, and PDP-10. These machines, developed by Digital Equipment Corporation (DEC), were some of the first to support the concept of time-sharing and served as the foundation for TELCOMP’s widespread use.
TELCOMP and Time-Sharing
Time-sharing systems were a breakthrough in making computing more accessible to the general public. Before time-sharing, access to computers was limited to large institutions and was typically reserved for batch processing tasks. Users would submit a stack of punched cards to the computer operator and then wait hours, sometimes days, for their results. The advent of time-sharing meant that multiple users could access a computer simultaneously, using inexpensive terminals that communicated with the central computer over phone lines.
TELCOMP was one of the first languages designed specifically for this time-sharing model. Its interactive nature was critical in making it suitable for real-time computing. Unlike batch languages, where users would submit code and receive results later, TELCOMP allowed users to enter commands, process data, and get immediate feedback, all in a conversational manner. This made it ideal for the new paradigm of remote computing and real-time problem-solving.
In the United States, TELCOMP was offered by BBN as a commercial service. The first revenue from TELCOMP came in October 1965, a testament to the viability of time-sharing systems. By the early 1970s, TELCOMP had expanded beyond BBN’s original service, with its use spreading to the United Kingdom through a partnership between BBN and Richard Evans, an entrepreneur who founded Time Sharing Ltd.
Technical Features of TELCOMP
TELCOMP was a highly specialized language that was designed with specific features to support time-sharing environments. Some of its most notable technical features include:
-
Interactive Conversational Model: One of TELCOMP’s defining characteristics was its interactive nature. Users communicated with the computer through prompts displayed on a teletype machine. These prompts would guide users in entering their responses, often one line at a time. If a user made an error or wanted to modify a response, they could do so immediately, providing a level of interactivity not present in earlier programming systems.
-
Compact Data Entry: TELCOMP introduced an innovative approach to data entry, allowing users to enter data in a compact form. Instead of waiting for a new prompt to be printed on a separate line, users could enter additional input on the same line by hitting the “Tab” key. This saved paper and made the process of data input faster and more efficient, similar to the more modern concept of full-screen data entry.
-
Use of Teletype Terminals: Data entry and output were carried out through a Teletype Model 33, a popular terminal used in the 1960s for communication with computers. The teletype machine could read input from a paper tape reader or accept direct input from the keyboard. Output was either printed on paper or punched onto a new tape. This setup was typical of early interactive computing systems, where users would interact with the computer via remote terminals.
-
Limited On-Line Storage: Early versions of TELCOMP had no facility for on-line storage of programs or data. Users would typically load their programs and data from paper tapes at the start of their session. This limitation meant that TELCOMP programs were often relatively short-lived, with users needing to reload their programs for each new session.
-
Sequential Prompts and Feedback: TELCOMP’s input method was highly interactive and focused on providing immediate feedback to users. When entering data, users would receive printed prompts. If the user pressed the “Tab” key instead of “Return,” the prompt could be updated with a new calculation or computation, all within the same line. This approach allowed for highly dynamic and real-time interaction, which was revolutionary at the time.
TELCOMP Versions
Over its decade-long lifespan, TELCOMP underwent several versions and improvements, each tailored to different hardware platforms and expanding its capabilities. These versions were as follows:
-
TELCOMP I: The first version, implemented on the PDP-1, was rudimentary by modern standards but laid the groundwork for the language’s core features. The PDP-1, one of the first minicomputers, had limited memory and processing power, which constrained the initial implementation of TELCOMP.
-
TELCOMP II: As BBN upgraded its hardware, TELCOMP II was implemented on the PDP-7. This version was more sophisticated, offering better performance and incorporating new features, including some enhancements to the language’s input/output capabilities.
-
TELCOMP III: The most advanced version, TELCOMP III, was designed to run on the PDP-10, which was a far more powerful machine than its predecessors. It utilized DEC’s TOPS-10 operating system or BBN’s custom TENEX operating system. TELCOMP III allowed for larger, more complex programs and offered more efficient memory management compared to earlier versions.
Legacy and Influence
Although TELCOMP itself never achieved the widespread adoption of other contemporaneous programming languages like FORTRAN, COBOL, or BASIC, it played an important role in the development of interactive programming. One of the most notable aspects of TELCOMP’s legacy is its impact on the development of subsequent programming languages and systems.
-
Development of LOGO: Perhaps one of the most famous programming languages influenced by TELCOMP was LOGO, which is best known for its use in educational settings. LOGO’s development was closely tied to research carried out using TELCOMP. Although the programming model of LOGO evolved significantly from TELCOMP, the early work conducted on TELCOMP contributed to the development of LOGO’s error handling and interactive features.
-
Time-Sharing Systems: TELCOMP’s focus on time-sharing laid the foundation for future advancements in interactive computing. The interactive programming style pioneered by TELCOMP would go on to influence future generations of programming languages that incorporated real-time feedback and error checking.
-
STRINGCOMP and FILECOMP: TELCOMP also gave rise to derivatives like STRINGCOMP and FILECOMP. STRINGCOMP was oriented towards string handling, while FILECOMP was designed for file management tasks. Although FILECOMP was never widely used, its concepts influenced the development of the MUMPS database system, a language known for its use in healthcare and finance.
-
Influence on Early Database Systems: The file handling system developed for TELCOMP, particularly its implicit handling of files and data, had an indirect influence on later database systems. Notably, it played a part in the design of MUMPS, a database programming language used in healthcare systems.
Conclusion
TELCOMP’s significance as one of the early interactive programming languages is often understated, yet its role in the development of time-sharing systems, user interfaces, and interactive computing was profound. By making computing more accessible and providing a more intuitive way to interact with computers, TELCOMP laid the groundwork for many of the developments in modern programming languages and systems. Although it has largely faded from the public consciousness, TELCOMP’s legacy lives on in the systems and languages that followed, highlighting its importance in the evolution of computer science.
For more information, you can refer to the TELCOMP Wikipedia page.