# procedural programming language

> type of programming language

**Wikidata**: [Q28922885](https://www.wikidata.org/wiki/Q28922885)  
**Source**: https://4ort.xyz/entity/procedural-programming-language

## Summary
A procedural programming language is a type of language used for communicating instructions to a machine. It is a direct manifestation of the procedural programming paradigm. This class of language is defined as the opposite of a non-procedural programming language.

## Key Facts
- **Classification:** It is a subclass of programming language.
- **Paradigm:** It is a manifestation of the procedural programming paradigm.
- **Alias:** It is also known as a "procedural language".
- **Opposite Concept:** Its direct opposite is a non-procedural programming language.
- **Main Category:** The topic's main category is "Category:Procedural programming languages".
- **Examples:** Specific examples include PL/I (1964), the ALGOL family of languages (1959), and PL/pgSQL (1998).

## FAQs
### Q: What is a procedural programming language?
A: A procedural programming language is a type of language that follows the procedural programming paradigm to communicate instructions to a computer. It is a subclass of programming language.

### Q: What is the opposite of a procedural language?
A: The source material identifies the opposite of a procedural programming language as a non-procedural programming language.

### Q: What are some examples of procedural languages?
A: Examples listed in the source material include PL/I, a procedural and imperative language from 1964; PL/pgSQL, a procedural language for PostgreSQL databases; and the ALGOL family of imperative languages, which originated in 1959.

## Why It Matters
The significance of procedural programming languages lies in their direct implementation of the procedural programming paradigm, a fundamental approach to communicating instructions to a machine. This paradigm structures programs as a sequence of steps or procedures, providing a clear, step-by-step method for controlling a computer's behavior. The concept is foundational and has demonstrated enduring relevance, as shown by the creation of procedural languages over many decades, from early examples like FLOW-MATIC (1955) and ALGOL (1959) to more modern, specialized languages like PL/pgSQL (1998) for databases and Overpass QL for querying OpenStreetMap data. The existence of numerous procedural languages tailored for specific domains, such as database systems and command line interpreters, highlights the paradigm's versatility and importance in solving a wide range of computational problems.

## Notable For
- **Paradigm Implementation:** Its defining characteristic is that it is a direct manifestation of the procedural programming paradigm.
- **Clear Opposition:** The concept is formally defined in opposition to non-procedural programming languages, creating a clear classification dichotomy.
- **Domain-Specific Variants:** The category includes many languages created for specific platforms, most notably several implementations for PostgreSQL database systems, including PL/pgSQL, PL/Lua, and PL/R.
- **Historical Depth:** The category includes historically significant and foundational imperative languages, such as the ALGOL family (inception 1959) and PL/I (inception 1964).

## Body
### ### Definition and Classification
A procedural programming language is formally classified as a type and subclass of programming language. Its core identity is derived from its relationship with the procedural programming paradigm, which it manifests. It is also referred to by the alias "procedural language." The primary relationship defined in the source material is its status as the opposite of a non-procedural programming language.

### ### Examples
The source material lists numerous related languages, several of which are explicitly described as procedural or imperative.

- **PL/I:** A procedural, imperative computer programming language with an inception date of 1964.
- **ALGOL:** A family of imperative computer programming languages that originated in 1959.
- **PL/pgSQL:** A procedural programming language designed specifically for PostgreSQL database systems, created in 1998.
- **PL/M:** A high-level programming language for Intel microprocessors, created in 1973.
- **Overpass QL:** A procedural, imperative language based on C syntax, used for querying OpenStreetMap data via the Overpass API.
- **Overpass XML:** A procedural, imperative XML-based language also used for querying OpenStreetMap data.
- **JOVIAL:** A programming language with an inception date of 1960.

## Schema Markup
```json
{
  "@context": "https://schema.org",
  "@type": "Thing",
  "name": "procedural programming language",
  "description": "A type of programming language that is a manifestation of the procedural programming paradigm.",
  "additionalType": "type of programming language",
  "alternateName": "procedural language"
}