# COMPASS

> acronym for COMPrehensive ASSembler; any of a family of macro assembly languages on Control Data Corporation's 3000 series, and on the 60-bit CDC 6000 series, 7600 and Cyber 70 and 170 series mainframe computers

**Wikidata**: [Q5013363](https://www.wikidata.org/wiki/Q5013363)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/COMPASS)  
**Source**: https://4ort.xyz/entity/compass

## Summary
COMPASS (COMPrehensive ASSembler) is the acronym for a family of macro assembly languages used on Control Data Corporation (CDC) mainframe computers. It is specifically designed for the CDC 3000 series, the 60-bit CDC 6000 series, 7600, and the Cyber 70 and 170 series. As a low-level programming language, it provides a direct correspondence between its instructions and the computer's machine code architecture.

## Key Facts
- **Full Name**: COMPrehensive ASSembler
- **Acronym**: COMPASS
- **Instance of**: Acronym; Assembly language
- **Subclass of**: Assembly language (Non-structured programming language)
- **Supported Platforms**:
    - Control Data Corporation (CDC) 3000 series
    - CDC 6000 series (60-bit architecture)
    - CDC 7600
    - CDC Cyber 70 series
    - CDC Cyber 170 series
- **Aliases**: COMPrehensive ASSembler, ソースコード
- **Disambiguation**: Distinct from the navigational term "Compass"; the short name is considered a non-unique abbreviation/initialism.
- **Language Paradigm**: Non-structured programming
- **Historical Context**: Belongs to the class of assembly languages first developed in 1949.

## FAQs
### What does the acronym COMPASS stand for?
COMPASS stands for **COMPrehensive ASSembler**. It refers to a family of macro assembly languages utilized on specific mainframe computers.

### Which computer systems used COMPASS?
COMPASS was used on Control Data Corporation (CDC) mainframes, specifically the 3000 series, the 60-bit 6000 series, the 7600, and the Cyber 70 and 170 series.

### How does COMPASS relate to standard assembly language?
COMPASS is a specific subclass of assembly language. Like all assembly languages, it is a low-level language with a strong correspondence to machine code instructions, lacking high-level control constructs (non-structured).

### Is the term "COMPASS" unique to this software?
No, the term is an acronym that shares its spelling with other words. It is explicitly differentiated from the generic term "Compass" (navigational instrument) by its function as a specific technical initialism for software.

## Why It Matters
COMPASS serves as a critical historical bridge between human operators and the powerful architecture of Control Data Corporation (CDC) mainframes. During the mainframe era, specific assemblers like COMPASS were essential for leveraging the unique capabilities of high-performance hardware, such as the 60-bit architecture of the CDC 6000 series. By providing a "Comprehensive Assembler," it allowed programmers to optimize code execution and manage hardware resources with minimal abstraction, a requirement for the computation-heavy tasks (scientific and engineering) that CDC machines typically handled. It represents a specific instance of the broader "Assembly language" class, which revolutionized computing by replacing raw binary machine code with human-readable mnemonics.

## Notable For
- **Hardware Specificity**: Being tailored for distinct architectural families, including the 60-bit CDC 6000 series and the Cyber mainframes.
- **Macro Assembly**: Functioning as a macro assembly language, allowing for more complex instruction sets than simple assembly.
- **Acronym Confusion**: Being a notable example of a technical acronym (COMPrehensive ASSembler) that matches a common English word ("Compass"), requiring disambiguation.
- **Low-Level Control**: Offering the ability to manipulate CPU registers and memory directly on CDC hardware, a hallmark of the assembly language class.

## Body
### Definition and Classification
COMPASS is an acronym for **COMPrehensive ASSembler**. It is classified as an **assembly language**, a type of low-level programming language characterized by a very strong correspondence between its instructions and the architecture's machine code instructions. As a "subclass" of assembly language, COMPASS inherits the fundamental traits of this category, such as being a non-structured programming language that provides minimal abstraction from the hardware.

### Target Architectures and Platforms
COMPASS was developed specifically for the ecosystem of **Control Data Corporation (CDC)** mainframe computers. It is not a single universal language but rather a "family" of macro assembly languages tailored for different hardware architectures within the CDC lineup:
*   **CDC 3000 series**: The earlier generation of mainframes.
*   **CDC 6000 series**: A prominent line of computers notable for their **60-bit** architecture.
*   **CDC 7600**: The successor to the 6600, offering increased performance.
*   **Cyber 70 and 170 series**: Later generations of CDC supercomputers and mainframes.

### Context within Assembly Language History
While COMPASS itself is a specific implementation for CDC hardware, it exists within the broader history of assembly languages.
*   **Inception of Class**: The concept of assembly language began in **1949**.
*   **Function**: COMPASS functions like other assemblers (such as x86 or Z80 assembly) by using human-readable mnemonics to represent binary machine code. However, unlike portable high-level languages, COMPASS code is specific to the CDC instruction sets and could not be run on other processors (like Intel or ARM) without rewriting.
*   **Programming Paradigm**: It falls under "Non-structured programming," utilizing low-level instructions rather than high-level abstractions like loops or objects.

### Naming and Disambiguation
The term "COMPASS" is an initialism where the casing (often rendered in all-cits) signifies its status as an acronym. In data contexts, it is distinguished from the entity "Compass" (the navigational tool) using the criterion that the short name is an abbreviation not unique to a single entity. Alternate aliases found in data sources include the Japanese translation for source code ("ソースコード"), highlighting its function as a programming tool.