Autoflow

Last updated
Autoflow
Original author(s) Mike Guzik
Developer(s) Applied Data Research
Initial release1964;61 years ago (1964)
Written in assembler language
Platform mainframes
License proprietary

Autoflow was an application program from Applied Data Research (ADR) for mainframe computers that reads assembly language programs and produces a flowchart of that code. It is historically notable as one of the first software applications to be offered for sale independent of the system it ran on, as well as the first to receive a software patent in the United States, [1] and to be licensed to customers rather than sold. [2]

Contents

Autoflow was introduced in 1964 for the RCA 501. Originally intending to have RCA purchase it and give it to their customers, RCA thought its $25,000 price was too high and declined to buy it. ADR then approached 501 owners directly, becoming what is generally accepted to be the first commercial software vendor. The RCA market was small, so ADR ported it to the IBM 1401 and began sales into that much larger market in 1965.

These early versions required the user to indicate the symbol for each chart entry using a numeric code entered as a comment in the code. This was fine for new programs being written, but users had no interest in modifying their existing programs to use it. ADR modified Autoflow to decode the type directly from the instruction codes, allowing it to produce a flowchart by reading the original unmodified program. This version was also ported to the hugely successful System/360, where it saw its most use.

IBM introduced their own program, Flowcharter, but it was a much simpler system where the entire chart had to be specified by hand. Despite the clear advantages of Autoflow, customers felt that IBM would add Autoflow-like features to their program, and give it away for free like other programs in the IBM collection. To stop this from happening, ADR filed for a patent on the concept, which was issued in 1968. By 1970 the company had several thousand customers and by the end of the decade it was one of the top five software companies in the world.

History

Applied Data Research (ADR) was formed in 1959 in Princeton, New Jersey, by seven programmers from Sperry Rand. Their initial concept was to sell programming consulting services. In 1964, RCA approached the company with the idea of a flowcharting application for the RCA 501 computer. Flowcharts were widely used during the design phase of the programming effort at that time, but, as is the case today, the end product rarely followed the original design. By producing a flowchart from the existing code, customers could document their actual programs. When ADR wrote up such a proposal with a $25,000 price tag, RCA expressed little interest, as was the case for some other vendors they approached. [3]

The company had free nighttime use of a 501, so Martin Goetz decided to assign Mike Guzik to write an initial version, which was completed in 4 to 6 months. Once again, RCA declined to take it up. [3] At the time, computer companies generally gave away software they had developed, making their machines more attractive, a policy that continues today as pre-installed software. After spending an estimated 5 to $10,000 on development ($98,240 in 2023), Goetz decided they would market it directly to RCA's customer base of about one hundred 501 users at $2,495. They had two sales. [4]

Goetz then decided to sell into the much larger market for the IBM 1401, which numbered in the thousands. The program was modified so it read IBM's Autocoder programs rather than 501 assembly language in a 10-month effort. Although there was significant interest, there was little uptake. The main problem was that Autoflow required one to mark up the original program with comments containing numeric codes that indicated the type of instruction, processing, branching, etc. The 1401 market already had a large amount of software written for it and prospective customers showed the most interest in using Autoflow to document these programs, but little interest doing any modification of those programs to make that possible. Once again the program was modified to allow it to decide the type based directly on the Autocoder instructions. [2]

By this point, IBM had introduced their own flowcharting program, Flowcharter. In contrast to Autoflow, this program required the user to describe the entire flowchart using a separate input file, it did not read existing code, and was therefore much more labor-intensive to use. But IBM also had a policy of giving away software they had developed, and prospective customers widely believed IBM would add Autoflow-like features at some point and there was no point in licensing Autoflow. At this point Goetz decided to head off this possibility before it happened, and in 1965 he filed for a patent on the concept of reading existing code to produce a flowchart. The patent was issued in 1968, the first software patent issued in the United States. [2] [1] [a]

Goetz was also concerned that customers would simply copy the program and give it to other prospective customers, among the first explicit mentions of the concept now known as software piracy. He consulted with Mort Jacobs, the attorney who prepared the patent filing, and they decided to attack the issue by offering the program under a licensing arrangement, not selling it outright. The agreement signed by customers was thus written in the language of an equipment lease agreement, thereby leaving ADR as the legal owner throughout, and explicitly stating that unauthorized duplication would break the agreement. While this did not make it any harder to make a copy, it gave ADR legal recourse if this happened. [2]

The major success of the System/360 led ADR to port to this system, as well as supporting three languages, 360 assembly, Fortran and COBOL. By 1970, they had over 2000 users. By the early 1970s, the company had opened 30 sales and support offices in the US and Europe. [7] Despite this, they still found significant numbers of prospective customers that used the IBM program because it was free. In 1967, ADR filed a complaint with the US Justice Department (DOJ), and after many meetings, the DOJ opened an investigation and found many other companies who faced the same problem of attempting to compete with free products. In April 1969, ADR sued IBM for monopolizing the market, and in June, IBM announced they were dropping bundled software entirely, starting 1 January 1970. ADR's suit continued and was eventually settled with a $1.4 million payment from IBM. [8]

Example output

ADR's advertising for Autoflow used this example: [9]

                     |                      |                      |                      *  07                    *   *                  *COMPARE*           LOW  *    3 TO   *  EQ       -------*    ACTIVITY    *--       |        *    CODE   *       |          *       *       |            *   *       |              *       |          HIGH|       |              |       |              |       |              |       |              *  08       |            *   *       |          *       *       |   YES  *     IS    *        |------*    ACTIVITY    *       |        *   CODE 6  *       |          *       *       |            *   *       |              *       |            NO|       |              |       |              |       |              |        09       |    ---------------------       |    |  CHANGE ACTIVITY  |       |    |     CODE TO 8     |       |    ---------------------       V              |       ---------(*)---|            T16       |        10            ---------------------            | MOVE ACTIVITY CODE|            |       TO O/P      |            ---------------------                      |                      |                      |

The lines represent the program flow from state to state. At the top are two diamond-shaped comparisons, which are numbered as step 7 and 8. The first comparison has three possible branches, to the left if the value of "activity code" is less than three (LOW), equal to 3 (EQ, on another page not shown here) or greater than 3 (HIGH). If the code was greater than 3 it then performs a second test to see if it is equal to 6. If not, it changes the code to 8 in step 9, if it was less than 3 or equal to 6 it skips that instruction. [10]

Notes

  1. Some sources suggest that the Mark IV report generator had filed for a patent in the US the same year but been refused. [5] Software patents had been granted as early as 1966 in the UK. [6]

Related Research Articles

<span class="mw-page-title-main">Assembly language</span> Low-level programming language

In computer programming, assembly language, often referred to simply as assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence between the instructions in the language and the architecture's machine code instructions. Assembly language usually has one statement per machine instruction (1:1), but constants, comments, assembler directives, symbolic labels of, e.g., memory locations, registers, and macros are generally also supported.

<span class="mw-page-title-main">IBM System/360</span> IBM mainframe computer family (1964–1977)

The IBM System/360 (S/360) is a family of mainframe computer systems announced by IBM on April 7, 1964, and delivered between 1965 and 1978. System/360 was the first family of computers designed to cover both commercial and scientific applications and a complete range of applications from small to large. The design distinguished between architecture and implementation, allowing IBM to release a suite of compatible designs at different prices. All but the only partially compatible Model 44 and the most expensive systems use microcode to implement the instruction set, featuring 8-bit byte addressing and fixed-point binary, fixed-point decimal and hexadecimal floating-point calculations. The System/360 family introduced IBM's Solid Logic Technology (SLT), which packed more transistors onto a circuit card, allowing more powerful but smaller computers.

<span class="mw-page-title-main">History of operating systems</span> Aspect of computing history

Computer operating systems (OSes) provide a set of functions needed and used by most application programs on a computer, and the links needed to control and synchronize computer hardware. On the first computers, with no operating system, every program needed the full hardware specification to run correctly and perform standard tasks, and its own drivers for peripheral devices like printers and punched paper card readers. The growing complexity of hardware and application programs eventually made operating systems a necessity for everyday use.

<span class="mw-page-title-main">IBM 1401</span> 1960s decimal computer

The IBM 1401 is a variable-wordlength decimal computer that was announced by IBM on October 5, 1959. The first member of the highly successful IBM 1400 series, it was aimed at replacing unit record equipment for processing data stored on punched cards and at providing peripheral services for larger computers. The 1401 is considered by IBM to be the Ford Model-T of the computer industry due to its mass appeal. Over 12,000 units were produced and many were leased or resold after they were replaced with newer technology. The 1401 was withdrawn on February 8, 1971.

A patch is data that is intended to be used to modify an existing software resource such as a program or a file, often to fix bugs and security vulnerabilities. A patch may be created to improve functionality, usability, or performance. A patch is typically provided by a vendor for updating the software that they provide. A patch may be created manually, but commonly it is created via a tool that compares two versions of the resource and generates data that can be used to transform one to the other.

<span class="mw-page-title-main">IBM 1400 series</span> Mid-range business decimal computers

The IBM 1400 series are second-generation (transistor) mid-range business decimal computers that IBM marketed in the early 1960s. The computers were offered to replace tabulating machines like the IBM 407. The 1400-series machines stored information in magnetic cores as variable-length character strings separated on the left by a special bit, called a "wordmark," and on the right by a "record mark." Arithmetic was performed digit-by-digit. Input and output support included punched card, magnetic tape, and high-speed line printers. Disk storage was also available.

The Future Systems project (FS) was a research and development project undertaken in IBM in the early 1970s to develop a revolutionary line of computer products, including new software models which would simplify software development by exploiting modern powerful hardware. The new systems were intended to replace the System/370 in the market some time in the late 1970s.

Business software is any software or set of computer programs used by business users to perform various business functions. These business applications are used to increase productivity, measure productivity, and perform other business functions accurately.

KDF8 was an early British computer built by English Electric as a version of the RCA 501. By producing a software-compatible system, the intention was to reduce time and cost to develop software. However, the lengthy process of developing manufacturing capability meant that the system was soon outpaced by systems from other vendors. Only a few systems were sold during its 5 years of production. Due to the consolidation of the British computer industry, English Electric's computer division became one of the components of what would become ICL.

Mark IV is a fourth-generation programming language that was created by Informatics, Inc. in the 1960s. Known at the time as a file management system, in modern terminology it would be known as a report generator. It automated the reading of input files and conversion of the data inside to produce one or more reports and updated output files.

<span class="mw-page-title-main">Applied Data Research</span>

Applied Data Research, Inc. (ADR), was a large software vendor from the 1960s until the mid-1980s. ADR is often described as "the first independent software vendor".

<span class="mw-page-title-main">History of free and open-source software</span>

The history of free and open-source software begins at the advent of computer software in the early half of the 20th century. In the 1950s and 1960s, computer operating software and compilers were delivered as a part of hardware purchases without separate fees. At the time, source code—the human-readable form of software—was generally distributed with the software, providing the ability to fix bugs or add new functions. Universities were early adopters of computing technology. Many of the modifications developed by universities were openly shared, in keeping with the academic principles of sharing knowledge, and organizations sprung up to facilitate sharing.

The history of IBM mainframe operating systems is significant within the history of mainframe operating systems, because of IBM's long-standing position as the world's largest hardware supplier of mainframe computers. IBM mainframes run operating systems supplied by IBM and by third parties.

Datacom/DB is a relational database management system for mainframe computers. It was developed in the early 1970s by Computer Information Management Company and was subsequently owned by Insyte, Applied Data Research, Ameritech, and Computer Associates International, Inc. Datacom was acquired by CA Technologies, which renamed it to CA-Datacom/DB and later to CA Datacom/DB. In 2018, Broadcom acquired CA Technologies which included the CA Datacom product family. In 2021, Broadcom has dropped the CA and now refers to the product family as Datacom or Datacom/DB.

Proprietary software is software that grants its creator, publisher, or other rightsholder or rightsholder partner a legal monopoly by modern copyright and intellectual property law to exclude the recipient from freely sharing the software or modifying it, and—in some cases, as is the case with some patent-encumbered and EULA-bound software—from making use of the software on their own, thereby restricting their freedoms.

Edos is a discontinued operating system based upon IBM's original mainframe DOS. The name stood for extended disk operating system. It was later purchased by the West German computer company Nixdorf, who renamed it to NIDOS.

Martin A. Goetz was an American software engineer and pioneer in the development of the commercial software industry. He held the first software patent, and was product manager of Autoflow from Applied Data Research (ADR), which is generally cited as the first commercial software application.

Input/Output Control System (IOCS) is any of several packages on early IBM entry-level and mainframe computers that provided low level access to records on peripheral equipment. IOCS provides functionality similar to 1960s packages from other vendors, e.g., File Control Processor (FCP) in RCA 3301 Realcom Operating System, GEFRC in GECOS, and to the later Record Management Services (RMS) in DEC VAX/VMS

ICT 1900 was a family of mainframe computers released by International Computers and Tabulators (ICT) and later International Computers Limited (ICL) during the 1960s and 1970s. The 1900 series was notable for being one of the few non-American competitors to the IBM System/360, enjoying significant success in the European and British Commonwealth markets.

The Librarian is a version control system and source code management software product originally developed by Applied Data Research for IBM mainframe computers. It was designed to supplant physical punched card decks as a way of maintaining programs, but kept a card model in terms of its interface. During the 1970s and 1980s it was in use at thousands of IBM mainframe installations and was one of the best-selling software products in the computer industry.

References

Citations

  1. 1 2 Services 1970, p. 10.
  2. 1 2 3 4 Johnson 1998, p. 38.
  3. 1 2 Goetz 1998, p. 1.
  4. Johnson 1998, p. 37.
  5. Campbell-Kelly 2005, p. 213.
  6. Bellido, Jose (2017). Landmark Cases in Intellectual Property Law. Hart Publishing.
  7. Johnson 1998, p. 39.
  8. Cray 1970.
  9. Brochure 1972.
  10. Harley R. Myler (1998). "2.3 Flowcharts". Fundamentals of Engineering Programming with C and Fortran. Cambridge University Press. pp. 32–36. ISBN   978-0-521-62950-8.

Bibliography