ZOPL

Last updated

ZOPL is a programming language created by Geac Computer Corporation in the early 1970s for use on their mainframe computer systems used in libraries and banking institutions. It had similarities to C and Pascal. It also was in many respects similar to (and, perhaps, derived from) BCPL.

Contents

ZOPL stood for "Version Z, Our Programming Language". [1]

Language constructs

ZOPL was a fairly low-level programming language, with some interesting and unusual features. Variable could be declared as DCL or BDCL types. DCL variables started at the top of memory, location 0. BDCL started further down the memory stack. There was no concept of other types, such as integer or character. In effect you were declaring an area of memory with a name. For example, if you declared:

DCL Fred (10)

DCL Alice (20)

then you had declared two lumps of memory, Fred and Alice. Fred starts at memory location 0 and has 10 bytes of memory (each byte of 8 bits). Alice started at position 9 and has 20 bytes of memory. You could put data into Fred by assigning Fred a value. But you could also do so using the address of Fred, using an offset if required. So $Fred+3 would be at address 2 in memory (i.e. the 3rd word in memory). You could put information into Alice in the same way, but also by using Fred with an offset greater than 9 - because Alice starts immediately after Fred. There was nothing to stop you from putting data into Alice by referencing Fred with a suitable offset.

Similarly, variables passed as parameters to functions or subroutines were actually being passed as addresses. You could retrieve data from Fred or Alice by using the contents of an address (|$Fred+3, for example).

It was a very versatile language, though one had to be careful in its use, for obvious reasons.

Later use

ZOPL is still in use at CGI Group (formerly known as RealTime Datapro), who ported it to VAX/VMS and Unix in the 1980s, and to Windows in 1998. by 2010 it had been ported to run on Windows XP/2000/2003 and Red Hat Linux. The RTM (formerly ZUG) language compiler and runtime framework are written in ZOPL.

Outside of CGI, ZOPL has not been in general use since the late 1980s, although there is still one known working system where it is found embedded in programs written in the KARL programming language.

Not to be confused with ...

Psion used their own language called OPL, which was nothing like Geac's OPL. Geac did, however, at a later date use Psion Organiser devices in conjunction with their library management systems, which is where a long-standing confusion may have originated. They used the Psion Organiser hand-held devices because these used the same microprocessor that was used in the Epson device used previously. The Organiser could be used with a barcode reader, used for scanning the barcodes on books and on borrowers' library cards. However, at the time that the Organiser was being evaluated for use in mobile libraries it could not read Codabar - which was the barcode format used by Geac. Geac had developed the machine code for the Epson computer, which was therefore compatible with the Organiser barcode reader, and supplied the code to Psion to use - which resulted in the Psion barcode reader being able to read Codabar, and also Plessey barcodes.

Related Research Articles

<span class="mw-page-title-main">Booting</span> Process of starting a computer

In computing, booting is the process of starting a computer as initiated via hardware such as a button or by a software command. After it is switched on, a computer's central processing unit (CPU) has no software in its main memory, so some process must load software into memory before it can be executed. This may be done by hardware or firmware in the CPU, or by a separate processor in the computer system.

Psion Organiser was the brand name of a range of pocket computers developed by the British company Psion in the 1980s. The Organiser I and Organiser II had a characteristic hard plastic sliding cover protecting a 6×6 keypad instead of a computer keyboard, with letters arranged alphabetically.

<span class="mw-page-title-main">Intel 8051</span> Single chip microcontroller series by Intel

The Intel MCS-51 is a single chip microcontroller (MCU) series developed by Intel in 1980 for use in embedded systems. The architect of the Intel MCS-51 instruction set was John H. Wharton. Intel's original versions were popular in the 1980s and early 1990s, and enhanced binary compatible derivatives remain popular today. It is a complex instruction set computer, but also has some of the features of RISC architectures, such as a large register set and register windows, and has separate memory spaces for program instructions and data.

x86 assembly language is the name for the family of assembly languages which provide some level of backward compatibility with CPUs back to the Intel 8008 microprocessor, which was launched in April 1972. It is used to produce object code for the x86 class of processors.

Commodore BASIC, also known as PET BASIC or CBM-BASIC, is the dialect of the BASIC programming language used in Commodore International's 8-bit home computer line, stretching from the PET (1977) to the Commodore 128 (1985).

<span class="mw-page-title-main">Pointer (computer programming)</span> Object which stores memory addresses in a computer program

In computer science, a pointer is an object in many programming languages that stores a memory address. This can be that of another value located in computer memory, or in some cases, that of memory-mapped computer hardware. A pointer references a location in memory, and obtaining the value stored at that location is known as dereferencing the pointer. As an analogy, a page number in a book's index could be considered a pointer to the corresponding page; dereferencing such a pointer would be done by flipping to the page with the given page number and reading the text found on that page. The actual format and content of a pointer variable is dependent on the underlying computer architecture.

<span class="mw-page-title-main">Memory address</span> Reference to a specific memory location

In computing, a memory address is a reference to a specific memory location used at various levels by software and hardware. Memory addresses are fixed-length sequences of digits conventionally displayed and manipulated as unsigned integers. Such numerical semantic bases itself upon features of CPU, as well upon use of the memory like an array endorsed by various programming languages.

In computing, position-independent code (PIC) or position-independent executable (PIE) is a body of machine code that, being placed somewhere in the primary memory, executes properly regardless of its absolute address. PIC is commonly used for shared libraries, so that the same library code can be loaded at a location in each program's address space where it does not overlap with other memory in use by, for example, other shared libraries. PIC was also used on older computer systems that lacked an MMU, so that the operating system could keep applications away from each other even within the single address space of an MMU-less system.

Open Programming Language (OPL) is a programming language for embedded systems and mobile devices that run the operating systems EPOC and Symbian. It was released by the British company Psion in 1984.

Loop unrolling, also known as loop unwinding, is a loop transformation technique that attempts to optimize a program's execution speed at the expense of its binary size, which is an approach known as space–time tradeoff. The transformation can be undertaken manually by the programmer or by an optimizing compiler. On modern processors, loop unrolling is often counterproductive, as the increased code size can cause more cache misses; cf. Duff's device.

<span class="mw-page-title-main">Psion Series 3</span> Series of personal digital assistants

The Psion Series 3 range of personal digital assistants were made by Psion PLC. The four main variants are the Psion Series 3 (1991), the Psion Series 3a (1993), the Psion Series 3c (1996), and the Psion Series 3mx (1998), all sized 165 by 85 by 22 millimetres. Further, a Psion Series 3a variant with factory installed software for the Russian language was called a Psion Series 3aR, and Acorn Computers sold renamed versions of the Psion Series 3 and 3a marketed as the Acorn Pocket Book and Acorn Pocket Book II.

The Psion Series 7 is a subnotebook computer from Psion that was released in 2000. In size it is fairly original: larger than a palmtop or handheld machine, but smaller than a laptop computer. It was the first and last of the Psion series to have a full color electronic visual display. It has a leather-bound clamshell design, with a touch-sensitive, Video Graphics Array (VGA) resolution liquid-crystal display (LCD) and QWERTY computer keyboard. Internally it has a 132.71 MHz StrongARM SA-1100 processor, 16 megabyte (MB) of random-access memory (RAM) and 16 MB of internal read-only memory (ROM).

Data structure alignment is the way data is arranged and accessed in computer memory. It consists of three separate but related issues: data alignment, data structure padding, and packing.

In computer science, an offset within an array or other data structure object is an integer indicating the distance (displacement) between the beginning of the object and a given element or point, presumably within the same object. The concept of a distance is valid only if all elements of the object are of the same size.

Systems Programming Language, often shortened to SPL but sometimes known as SPL/3000, was a procedurally-oriented programming language written by Hewlett-Packard for the HP 3000 minicomputer line and first introduced in 1972. SPL was used to write the HP 3000's primary operating system, Multi-Programming Executive (MPE). Similar languages on other platforms were generically referred to as system programming languages, confusing matters.

<span class="mw-page-title-main">Epson HX-20</span>

The Epson HX-20 was the first "true" laptop computer. It was invented in July 1980 by Yukio Yokozawa, who worked for Suwa Seikosha, a branch of Japanese company Seiko, receiving a patent for the invention. It was announced in 1981 as the HC-20 in Japan, and was introduced by Epson in North America as the HX-20 at the 1981 COMDEX computer show in Las Vegas, where it drew significant attention for its portability. It had a mass-market release in July 1982, as the HC-20 in Japan and as the Epson HX-20 in North America. The size of an A4 notebook and weighing 1.6 kg, it was hailed by BusinessWeek magazine as the "fourth revolution in personal computing".

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.

Geac Computer Corporation, Ltd was a producer of enterprise resource planning, performance management, and industry specific software based in Markham, Ontario. It was acquired by Golden Gate Capital's Infor unit in March 2006 for US$1 billion.

EPOC is a mobile operating system developed by Psion, a British company founded in 1980. It began as a 16-bit operating system (OS) for Psion's own x86-compatible devices, and was later replaced by a 32-bit system for x86 and ARM. Psion licensed the 32-bit system to other hardware makers, such as Ericsson.

<span class="mw-page-title-main">Psion MC series</span> Series of laptop computers

The Psion MC series is a line of laptop computers made by Psion PLC and launched in 1989.

References

  1. Or... "Our Programming Language, with a Z" http://hopl.info/showlanguage.prx?exp=2641&language=ZOPL