Short Code (computer language)

Last updated
Short Code
Developer William F Schmitt, A. B. Tonik, J. R. Logan
First appeared1950 (1950)
Influenced by
ENIAC Short Code
Influenced
Intermediate programming language, OMNIBAC Symbolic Assembler

Short Code was one of the first higher-level languages developed for an electronic computer. [1] Unlike machine code, Short Code statements represented mathematic expressions rather than a machine instruction. Also known as an automatic programming, the source code was not compiled but executed through an interpreter to simplify the programming process; the execution time was much slower though. [2]

Contents

History

Short Code was proposed by John Mauchly in 1949 and originally known as Brief Code. William Schmitt implemented a version of Brief Code in 1949 for the BINAC computer, though it was never debugged and tested. The following year Schmitt implemented a new version of Brief Code for the UNIVAC I, where it was now known as Short Code (also Short Order Code). A revised version of Short Code was developed in 1952 for the Univac II by A. B. Tonik and J. R. Logan. [3]

While Short Code represented expressions, the representation itself was not direct and required a process of manual conversion. Elements of an expression were represented by two-character codes and then divided into 6-code groups in order to conform to the 12-byte words used by BINAC and Univac computers. [4] For example, the expression

a = (b + c) / b * c

was converted to Short Code by a sequence of substitutions and a final regrouping:

X3 =  (  X1 +  Y1 )  /  X1 * Y1   substitute variables X3 03 09 X1 07 Y1 02 04 X1   Y1   substitute operators and parentheses.                                         Note that multiplication is                                        represented by juxtaposition. 07Y10204X1Y1                      group into 12-byte words. 0000X30309X1

Along with basic arithmetic, Short Code allowed for branching and calls to a library of functions. The language was interpreted and ran about 50 times slower than machine code. [5]

See also

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">Fortran</span> General-purpose programming language

Fortran is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.

<span class="mw-page-title-main">Programming language</span> Language for communicating instructions to a machine

A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.

PL/I is a procedural, imperative computer programming language initially developed by IBM. The PL/1 ANSI standard, X3.53-1976, was published in 1976. It is designed for scientific, engineering, business and system programming. It has been in continuous use by academic, commercial and industrial organizations since it was introduced in the 1960s.

<span class="mw-page-title-main">Simula</span> Early object-oriented programming language

Simula is the name of two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. Syntactically, it is an approximate superset of ALGOL 60, and was also influenced by the design of Simscript.

<span class="mw-page-title-main">John Mauchly</span> American physicist and computer scientist (1907–1980)

John William Mauchly was an American physicist who, along with J. Presper Eckert, designed ENIAC, the first general-purpose electronic digital computer, as well as EDVAC, BINAC and UNIVAC I, the first commercial computer made in the United States.

BINAC was an early electronic computer designed for Northrop Aircraft Company by the Eckert–Mauchly Computer Corporation (EMCC) in 1949. Eckert and Mauchly, though they had started the design of EDVAC at the University of Pennsylvania, chose to leave and start EMCC, the first computer company. BINAC was their first product, the first stored-program computer in the United States; BINAC is also sometimes claimed to be the world's first commercial digital computer even though it was limited in scope and never fully functional after delivery.

<span class="mw-page-title-main">UNIVAC</span> Series of mainframe computer models

UNIVAC was a line of electronic digital stored-program computers starting with the products of the Eckert–Mauchly Computer Corporation. Later the name was applied to a division of the Remington Rand company and successor organizations.

<span class="mw-page-title-main">Atari BASIC</span> Dialect of the BASIC programming language

Atari BASIC is an interpreter for the BASIC programming language that shipped with the Atari 8-bit family of 6502-based home computers. Unlike most American BASICs of the home computer era, Atari BASIC is not a derivative of Microsoft BASIC and differs in significant ways. It includes keywords for Atari-specific features and lacks support for string arrays, for example.

<span class="mw-page-title-main">UNIVAC 1100/2200 series</span> Family of mainframe computers

The UNIVAC 1100/2200 series is a series of compatible 36-bit computer systems, beginning with the UNIVAC 1107 in 1962, initially made by Sperry Rand. The series continues to be supported today by Unisys Corporation as the ClearPath Dorado Series. The solid-state 1107 model number was in the same sequence as the earlier vacuum-tube computers, but the early computers were not compatible with the solid-state successors.

MATH-MATIC is the marketing name for the AT-3 compiler, an early programming language for the UNIVAC I and UNIVAC II.

In computer science, a lookup table (LUT) is an array that replaces runtime computation with a simpler array indexing operation, in a process termed as direct addressing. The savings in processing time can be significant, because retrieving a value from memory is often faster than carrying out an "expensive" computation or input/output operation. The tables may be precalculated and stored in static program storage, calculated as part of a program's initialization phase (memoization), or even stored in hardware in application-specific platforms. Lookup tables are also used extensively to validate input values by matching against a list of valid items in an array and, in some programming languages, may include pointer functions to process the matching input. FPGAs also make extensive use of reconfigurable, hardware-implemented, lookup tables to provide programmable hardware functionality. LUTs differ from hash tables in a way that, to retrieve a value with key , a hash table would store the value in the slot where is a hash function i.e. is used to compute the slot, while in the case of LUT, the value is stored in slot , thus directly addressable.

<span class="mw-page-title-main">Ferranti Mark 1</span> First commercial computer

The Ferranti Mark 1, also known as the Manchester Electronic Computer in its sales literature, and thus sometimes called the Manchester Ferranti, was produced by British electrical engineering firm Ferranti Ltd. It was the world's first commercially available electronic general-purpose stored program digital computer.

<span class="mw-page-title-main">History of programming languages</span> Aspect of history

The history of programming languages spans from documentation of early mechanical computers to modern tools for software development. Early programming languages were highly specialized, relying on mathematical notation and similarly obscure syntax. Throughout the 20th century, research in compiler theory led to the creation of high-level programming languages, which use a more accessible syntax to communicate instructions.

<span class="mw-page-title-main">Z4 (computer)</span> German 1940s computer

The Z4 was arguably the world's first commercial digital computer, and is the oldest surviving programmable computer. It was designed, and manufactured by early computer scientist Konrad Zuse's company Zuse Apparatebau, for an order placed by Henschel & Son, in 1942; though only partially assembled in Berlin, then completed in Göttingen, and not delivered before the defeat of Nazi Germany, in 1945. The Z4 was Zuse's final target for the Z3 design. Like the earlier Z2, it comprised a combination of mechanical memory and electromechanical logic, so was not a true electronic computer.

The man or boy test was proposed by computer scientist Donald Knuth as a means of evaluating implementations of the ALGOL 60 programming language. The aim of the test was to distinguish compilers that correctly implemented "recursion and non-local references" from those that did not.

There are quite a few ALGOL60 translators in existence which have been designed to handle recursion and non-local references properly, and I thought perhaps a little test-program may be of value. Hence I have written the following simple routine, which may separate the man-compilers from the boy-compilers.

The Eckert–Mauchly Computer Corporation (EMCC) was founded by J. Presper Eckert and John Mauchly. It was incorporated on December 22, 1947. After building the ENIAC at the University of Pennsylvania, Eckert and Mauchly formed EMCC to build new computer designs for commercial and military applications. The company was initially called the Electronic Control Company, changing its name to Eckert–Mauchly Computer Corporation when it was incorporated. In 1950, the company was sold to Remington Rand, which later merged with Sperry Corporation to become Sperry Rand, and survives today as Unisys.

<span class="mw-page-title-main">EuLisp</span>

EuLisp is a statically and dynamically scoped Lisp dialect developed by a loose formation of industrial and academic Lisp users and developers from around Europe. The standardizers intended to create a new Lisp "less encumbered by the past", and not so minimalist as Scheme. Another objective was to integrate the object-oriented programming paradigm well. It is a third-generation programming language.

<span class="mw-page-title-main">Jean Bartik</span> American ENIAC computer programmer (1924–2011)

Jean Bartik was one of the original six programmers for the ENIAC computer.

The GEC 2050 was an 8-bit minicomputer produced during the 1970s, initially by Marconi Elliott Computer Systems of the UK, before the company renamed itself GEC Computers Limited. The first models were labeled MECS 2050, before being renamed GEC 2050.

References

  1. Sebesta, R. W. Concepts of Programming languages. 2006; M6 14:18 pp. 44. ISBN   0-321-33025-0.
  2. Sebesta, R. W. Concepts of Programming languages. 11E; Chapter 2, pp. 39. ISBN   978-0133943023.
  3. Schmitt, William F. The UNIVAC SHORT CODE. Annals of the History of Computing (1988) 10:pages 7–8.
  4. Schmitt, William F. The UNIVAC SHORT CODE. Annals of the History of Computing (1988) 10:page 15.
  5. Malik, Masud Ahmad. Evolution of the High Level Programming Languages: A Critical Perspective. ACM SIGPLAN Notices (December 1998) 33(12) page 74.