Computer Lingo - Today's New Machine Languages
December 1968 Radio-Electronics

December 1968 Radio-Electronics

December 1968 Radio-Electronics Cover - RF Cafe[Table of Contents]

Wax nostalgic about and learn from the history of early electronics. See articles from Radio-Electronics, published 1930-1988. All copyrights hereby acknowledged.

If you were around during the Y2K era, which was from about the middle of the 1990's through the last day of the 20th century, you had to have heard about the looming disaster being caused by outdated computer software, hardware, and firmware that would not be capable of properly handling the rollover of dating years from 19xx to 20xx. The programming languages mentioned in this 1968 "Computer Lingo - Today's New Machine Languages" Radio-Electronics magazine articles were all still present to some degree at the end of the 1900's. One of the biggest problems was that limited size data fields (often 8-bit words) led many - actually most - early mainframe systems to assume the "19" part of a year, so after midnight of December 31st, 1999, the next day would be interpreted as January 1st, 1900 rather than 2000. Any date-dependent function would fail utterly, and possibly cause a catastrophic result. Electric grids, waterworks, industrial processing plants, accounting departments, and other such entities would be in chaos. The problem was not limited to large mainframe computers. Many embedded processors in systems and individual products were destined to fail as well. Even personal computers would suffer date-related failures. Three kind of people were involved in the Y2K era - oblivions who never heard of Y2K or didn't care, end-timers who made money off of scaring people into preparing for the end of the modern world, and technologists who did the heavy lifting involved in mitigating the issue so the other two types could continue living comfortable lives. You have to admit that part of the reason very few major problems occurred at the millennial midnight roll-over was due to the panic caused by the survivalist crowd which motivated politicians and bureaucrats to throw resources at the problem.

Computer Lingo - Today's New Machine Languages

Communicating with the computer via a Video Data Terminal - RF Cafe

Communicating with the computer via a Video Data Terminal, a Dodge claims supervisor in Philadelphia updates 50,000-mile warranty information in Chrysler's Detroit computer. RCA

By Matthew Mandl, Contributing Editor

Digital computers are being use in ever-increasing numbers in business data processing, in industrial control and in scientific laboratories. They are vital to the military as well as for the guidance systems of space explorations. With this sharp upward trend in computer use, the demand for computer programmers is at an all-time high. Estimates state that over 500,000 people are already engaged in some form of computer programing or operation, and another 250,000 will be needed within the next few years. And this is only in the United States.

A programmer tells the computer of the particular problem or data to be processed, indicates the methods to be used and debugs faulty programs. He communicates with the computer by using the "language" the computer understands or a mathematically oriented or business-type "language," which is translated into the computer's basic language.

The Binary Code

Digital computer circuits operate in only two states: the diodes or transistors are either on or off. This assures accuracy and reliability because changes in transistor characteristics or other solid-state devices do not affect the two states unless the component shorts or opens. The two states represent digits 1 and 0 - hence digital computer.

The use of only 0 and 1 requires a binary-type math with a base 2 instead of base 10, as in our ordinary numbering system. This binary code is the basic language of all digital computers. The following table shows binary numbers ranging in value up to 19.

Binary code - RF CafeNote the pattern of the binary sequence. In the right-hand column (first place) the 0's and 1's alternate; in the second column from the right the 0's and 1 's are paired, while in the third column from the right the sequence down the column is four 0's, four 1 's, etc. Subsequent columns follow the same pattern related to the sequence 1, 2, 4, 8, 16, 32, 64, etc. Thus the fifth column from the right would have 16 0's, followed by 16 1 's, etc. Knowing this principle enables you to expand the table easily,

The computer uses this binary code to identify storage locations, to identify instructions from the programmer regarding how to process data and to make computations directly. Programs consist of a sequence of instructions, each accompanied by a storage address or explanatory number. Thus, the binary numbers 000100 and 000101 might mean, "add to the accumulator the number in storage location 5." The first binary number, 000100, is the "add" instruction and the second number the address of the number to be added. Another set, such as 101010 and 001000 may indicate a shift command. Thus, the binary 101010 instructs the computer to shift a number right, while the binary 001000 indicates an 8-place number shift.

Octal Code

Since the early days of digital computers, design engineers have strived to simplify the programing processes. Binary code becomes cumbersome when large numbers are involved, such as 101101 = 45, and 1000110 = 70. Thus, if 70 meant "subtract" we would have to convert it to its binary form. While there are various methods (including conversion tables) to find binary equivalents, much time is wasted. A simpler method is to group the binary digits into sets of three to form what is known as the octal code, as shown in the following examples:

101 101 = octal 55 (true value 45)

001 110 = octal 16 (true value 14)

101 001 011 = octal 513 (true value 331)

Thus, all instructions and storage addresses can be in octal coding to expedite entries. Often the push buttons on the computer console are in groups of three to facilitate punching in numbers. If the computer binary address value of 331 is needed, you would be given octal 513 instead. By entering a binary 5, followed by a 1, and a 3, we have 101 001 011. The computer senses this as 101001011, which has the true value of 331.

Binary and octal codes permit us to enter programs at the computer console and examine numerical binary displays for checking the status of a program or process. It would be much more convenient, however, if we could do without the binary or octal numbers for the programming instructions.

Fig. 1 - Step sequence for translating mnemonic and SPS programs into binary language. initial program is punched on cards or tape, which are read by compiler. The Computer then reads the object deck generated by the compiler.

Mnemonic or SPS Language

We could save programing time if we could use the actual words add, multiply and divide, or abbreviations of them in our instructions to the computer. To do this we must use some sort of translating system to tell the computer that add means binary 100, and shift means binary 101010, etc. This is done by using capitalized abbreviations such as MPY for multiply, DIY for divide, etc. We could also use just A for add, S for subtract, M for multiply or D for divide. Such coding is also known as mnemonic (aid-to-memory) or SPS (symbolic program system). Thus, a simple program for adding of 5 + 3 would be:

LDA 50 (Put the 5 into accumulator)

ADD 51 (Add 3 to accumulator contents)

STP 00 (Stop computation)

In this example, the 5 would have had to be placed into storage location 50 and the 3 into 51. Also, the entire program would have been stored within the computer's memory earlier. Once the data and program are loaded, the program initiating button is depressed and the program run. Thus, the addresses in which the program itself is stored must also be indicated, as shown in the following example, where a print-out instruction is also included:

 

The translating of mnemonic and SPS programs into machine (binary) language is done by assembler programs, which also select storage locations automatically. The program is punched on cards or paper tape and fed into the assembler. Another deck of cards is automatically punched containing the binary-language equivalent, and these cards are read by the computer. The initial stack of cards which contains the mnemonic program is called the source deck, and the resultant cards from the assembler program are called the object deck. These terms are also used for other language procedures, as shown in Fig. 1.

FORTRAN Language

The word FORTRAN is an acronym formed by using the letters from the phrase: FORmula TRANslator. It is a mathematically oriented computer language that permits us to make math statements almost in the same form as the original equation. A special translator (called a compiler) selects appropriate storage locations and converts the FORTRAN into machine language to be processed by the computer.

Though programing math with FORTRAN is easier than with the mnemonic coding method (particularly for complex math equations), a number of rules must be observed. Among them are that all capital letters must be used, and that multiplication is expressed by an asterisk (*). Divide is shown by using the slash (/) and exponents are identified by a double asterisk (**). Thus, if we wanted to indicate the equation (a - b)c2 it would appear as:

(A -B) * C ** 2

Similarly; the FORTRAN expression for the equation y = (a + b)/c would be written as:

Y = (A+B)/C

Such statements are not, however, the complete program - but only the mathematical portion. The computer must be told what values (a, b, etc.) to read, in what manner, and what is to be printed out. The complete program would have the following:

    READ 1, A, B, C

    Y = (A+B)/C

    PRINT 2, Y

    STOP

1 FORMAT (3F10.4)

2 FORMAT (F12.4)

    END

The READ statement tells the computer to read three variables (from cards or tape) designed as A, Band C, in the manner designed by a later FORMAT statement identified by the 1 preceding it. Thus, if we check with the FORMAT statement identified by the "1" we find that three variables are involved (the "3" in 3F104) and that the field width (F) is 10 characters, with four characters pointed off. The PRINT statement indicates the answer (Y) is to be printed out as identified by FORMAT 2. The latter states that 12 total characters are to be allocated, with four decimal places.

A compiler is used to translate, and the program (on the source deck) is translated into machine language on the object deck. As with the assembler, the object deck is fed into a card or tape reader and then into the computer for processing. In the FORTRAN program, STOP tells the computer when to stop computation, and END tells the compiler the program is finished.

Other statements are used in FORTRAN to permit the computer to undertake "decision" type operations, modify the program as required and perform other manipulations. Program errors are sensed by the compiler and clues printed out so that the programmer can locate the errors or note the use of incorrect statements.

COBOL Language

As with FORTRAN, the word COBOL is an acronym made up of the initial letters of the phrase: Common Business Oriented Language. Like FORTRAN. COBOL can be used with any computer if the proper compiler is used for translating it into machine language.

Programs are constantly being developed to solve new problems - RF Cafe

Programs are constantly being developed to solve new problems. IBM

COBOL uses the English language directly and is made up of selected words to express the series of operations which the computer is to execute in business data processing. Hence, COBOL uses letters, numbers and punctuation marks to form descriptive or instructional sentences. However, COBOL must be written by following certain rules, just as our English language uses rules of grammar. Curiously, when a written COBOL program is examined by a nonprogrammer he can understand most of the commands and data descriptions, but could not write such a program without knowing the rules.

Verbs are used for instructional commands, and nouns for denoting the nature of the data to be processed. Capital letters are used, such as READ, WRITE, OPEN, CLOSE, DISPLAY, etc. for verbs. Nouns would include FILE, PAYROLL, INVENTORY, etc. The verbs ADD, SUBTRACT, MULTIPLY and DIVIDE can also be used, or as in FORTRAN, signs such as "+", "-", "*", and "/" are valid.

COBOL programing consists of an identification division which describes the nature of the program - a configuration section, describing computer equipment to be used; a data division which identifies data sources, and a procedure division which spells out to the computer what processes are to be performed. A typical program section for the latter would appear as:

PROCEDURE DIVISION.

START. OPEN OUTPUT PAYROLL-FILE.

READ·IN. READ PAYROLL-FILE RECORD.

COMPUTE WITHHOLDING-TAX.

Hyphens and periods must be used according to COBOL rules and can't be changed arbitrarily.

Program Language

The newer PLII language was introduced early in 1966 by IBM and is intended to be a universal-type computer language. It retains some of the basic features of both FORTRAN and COBOL and can handle either mathematical or data-processing programs. A compiler, suitable for PL/I must, of course, be used for translating this language into machine language.

In PL/I statements are written on a single line as in FORTRAN, and parenthesis are used (not brackets). Thus, Y = a+b/a-b becomes:

Y = (A + B)/(A - B);

Note that a semicolon is used to indicate statement end instead of the period. As with COBOL, verbs and nouns are used to indicate instructions or descriptions. For example:

DECLARE (COST, PRICE, DISCOUNT);

COST = PRICE - DISCOUNT;

These two statements tell the computer that we are "declaring" that the program concerns cost, price and discount rates. Then we tell the computer that it determines cost by subtracting the discount from the price. Actually you could declare any name you wish and the computer will reserve a storage area for it and act accordingly when the same word is used again later in the program. Thus, you could even declare PHILODENDRON or OSHKOSH and the computer will accept them on your say-so and process them as you wish!

Also, in PL/I the programmer may insert any comments he wishes into a program and can specify that such comments are not to be acted on by the computer, but are just for the programmers information. He does this by using the symbols "/*'' before the comment and ending it with "*/". Thus, anything stated within these "/*" and "*/" signs are ignored by the computer.

Other Languages

The most widely used computer programing languages today are FORTRAN and COBOL. PL/I is making some inroads, but is still too new to be universally accepted or used. In certain specialized areas, however, other programing languages are used. ALGOL (algebraic-oriented language) has been popular in Europe and also used to some extent in America. FORTRAN IV, however, incorporates some aspects of ALGOL and is, of course, also a mathematically oriented computer language. Others are MAD (Michigan Algorithm Decoder) and JOVIAL (Jule's Own Version of International Algebraic Language). All have specific rules and the written program must follow them to be valid.

A mathematical programmer does not have to solve an equation (the computer does this) but he should know how to set it up in the algorithm (format) most suitable to computer processing. Similarly, a data-processing programmer doesn't have to know accounting, but a fundamental knowledge of business operations and basic bookkeeping is certainly helpful.

Where can you learn programing? At trade schools (advertised in this magazine); at technical schools, community colleges, business colleges, and many other institutions of learning. Leading computer companies also offer courses and often give aptitude tests in logic to determine your ability and leanings toward this interesting and lucrative profession.

Numerous textbooks are available from various publishers on all aspects of programing. Many such books are of the "programed" type, which are intended for self-instruction. (Actual exposure to the operating principles of a computer is, of course, extremely helpful.) If you like checkers or chess as well as other games of logic, you might be a natural!

See page 89 for a list of schools offering courses in computer technology and programing.

p.89

Here is a partial listing of specialized schools that offer courses in computer technology and programming.

American School

Drexel Ave. at 58th St.

Chicago, Ill. 60637

Automation Training, Inc.

5701 Waterman Ave.

St. Louis, Mo. 63112

Britannica Institute for Executive Development

425 North Michigan Ave.

Chicago, Ill. 60611

Business Electronics

209 W. Jackson Blvd.

Chicago, III. 60606

Canadian Institute of Science & Technology

263 Adelaide St. W.

Toronto, Ont., Canada

Capitol Radio Engineering Institute

3224 16 St., N.W.

Washington, D.C. 20010

Central Technical Institute

1644 Wyandotte St.

Kansas City, Mo. 64108

Cleveland Institute of Electronics

1776 E. 17th St.

Cleveland, Ohio 44114

Commercial Trades Institute

1400 W. Greenleaf Ave.

Chicago, Ill. 60626

Cook's Institute of Electronics Engineering

P.O. Box 10634

Jackson, Miss. 39209

DeVry Institute of Technology

4141 Belmont Ave.

Chicago, Ill. 60641

Elkins Institute

2603 Inwood Rd.

Dallas, Texas 75235

Grantham School of Electronics

1505 N. Western Ave.

Hollywood, Calif. 90027

Hill's Business University

920 N. Robinson Ave.

Oklahoma City, Okla. 73102

International Correspondence Schools

Scranton, Pa. 18515

LaSalle Extension University

417 S. Dearborn St.

Chicago, Ill. 60605

Massey Technical Institute, Inc.

148 East 7th St.

Jacksonville, Fla. 32206

Midwest Automation Training - Kansas City, Inc.

2022 Main St.

Kansas City, Mo. 64108

National Radio Institute

3939 Wisconsin Ave., N.W.

Washington, D.C. 20016

National Technical Schools

4000 S. Figueroa St.

Los Angeles, Calif. 90037

Northrop Institute of Technology

1199 W. Arbor Vitae

Inglewood, Calif.

Philco Technical Institute

219 N. Broad St.

Philadelphia, Pa. 19107

RCA Institutes, Inc.

320 West 31st St.

New York, N.Y. 10001

Sams Technical Institute, Inc.

1720 E. 38th St.

Indianapolis, Ind.. 46218

Technical Training International, Inc.

10447 So. Torrence Ave.

Chicago, Ill. 60617

 

 

Posted December 13, 2022