# 1. Introduction and History

## 1.1 Overview

Chaprola is a high-level computer language designed for use by individuals who have had little computer experience. Even though it is a small language with few commands, it is more powerful than one would expect, able to handle vast amounts of data quickly and efficiently.

The Chaprola Language and the compilers for this language were designed and implemented by John H. Letcher, Professor of Computer Science of the University of Tulsa and President of Synergistic Consultants Incorporated.

## 1.2 The SCIOS Context

Chaprola exists within the Synergistic Consultants Incorporated Operating System (SCIOS). An SCI computer system consists of a set of from one to many computers intended to share information and access to data files among the SCIOS community. A large number of programs and data files are installed within this hardware. All of these parts, taken together, constitute a computer system that handles quickly and conveniently the tasks which one normally encounters in business, governmental, and scientific data processing applications.

### 1.2.1 Categories of SCIOS Computers

1. **SCIOS clients** -- computers equipped with a web browser (e.g., Netscape 4.7.9, Internet Explorer 5.5). These access SCIOS through a TCP/IP link to an SCIOS server. No SCIOS systems software is installed locally.

2. **SCIOS servers** -- computers upon which SCIOS systems software has been installed. All data files reside here. When configured for remote access, the server may service requests over a local area network (intranet) or across the Internet.

### 1.2.2 Software Categories

- **Procedure software** -- normally generated by the user. The user directs the computer to execute a Procedure program, a set of instructions written in Chaprola.
- **System software** -- supplied by SCI. All operations of the computer are accomplished through this set of programs.

## 1.3 History of Compilation

At the time that the Chaprola Language was defined and implemented (before 1975), the compilation of computer languages produced sets of native instructions for a specific computer. Compiled programs could not be used on another computer with a different internal architecture. Also, computers did not possess enough internal memory to hold very long programs.

A technique was developed: the Chaprola language was broken down into the smallest functional building blocks of instructions. Each building block was given a number. When Chaprola is compiled, the Procedure file is comprised of a sequence of these building block numbers.

A processor is written once (a different one for each different computer architecture). This processor reads the procedure file (.PR) and interprets each of the building block numbers, then executes the sequence of instructions that the numbers represent.

Today, the procedure files are called bytecode files. The Java language and the .NET runtime library use the same methodology (but different bytecode meanings). When Chaprola was first implemented (1974), the other languages did not exist.

## 1.4 SCIOS Versions

SCIOS has been produced to execute on a variety of different computers:

- **Classic SCIOS** -- the original version with proprietary disk access routines
- **MS-DOS SCIOS (XSCIOS.EXE)** -- rewritten file access routines using DOS interrupt 21H, creating ordinary DOS files
- **Windows NT SCIOS (SCIOS32.EXE)** -- Windows version of the local system
- **Internet SCIOS (CGIentry.exe)** -- for networked environments, accessed through web browsers

### 1.4.1 Key Differences from MS-DOS

In SCIOS, a user must explicitly define a file before it is available for use as an output file. This means that to make a mistake in specifying an output file name, one must make the same mistake twice -- once when defining it and once when using it.

In SCIOS, batch files are executed using the `AC` (assign console) command, whereas in MS-DOS, one simply types the batch file name.

## 1.5 Programs That Use Chaprola

Chaprola is active in three main programs in the SCIOS system:

1. **SCIENTRY** -- useful for the input of initial information in a data file through user-generated screen displays. Chaprola procedures are executed when F10 is pressed.
2. **CGIENTRY** -- the Internet equivalent of SCIENTRY, accessed through a web browser.
3. **CHAPRPG** -- useful when large-scale data manipulation is called for. None of the data file information is accessible on screen during use.

## 1.6 Compilation Pipeline

The commands in a Chaprola source file (.CS) are not in a form the computer can understand. The compilation process uses two programs:

1. **CHAPTRAN** -- translates the source file
2. **CHAPCOMP** -- compiles the translated output into computer-readable bytecode

The resulting procedure file (.PR) is used by SCIENTRY, CGIENTRY, or CHAPRPG.

The compilation can also be performed using the CHAPROLA batch file:
```
>>? AC CHAPROLA [fnprefix]
```

---

*Next: [Memory Model](02-memory-model.md)*
