# occam

> concurrent programming language

**Wikidata**: [Q838062](https://www.wikidata.org/wiki/Q838062)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Occam_(programming_language))  
**Source**: https://4ort.xyz/entity/occam

## Summary
Occam is a concurrent programming language designed by David May and developed by the semiconductor company Inmos, with inception dated 1983. It is a procedural, process-oriented language influenced by the formal model "communicating sequential processes" and uses the off-side rule for syntax; it is named after William of Ockham.

## Key Facts
- Occam was developed by Inmos and has an inception date of 1983.
- Occam was designed by David May (British computer scientist, born 1951-02-24).
- Occam is a concurrent programming language and its primary programming paradigm is concurrent computing.
- Occam is classified as a procedural programming language, an imperative language, a process-oriented programming language, and an off-side rule language.
- Occam was influenced by the formal model "communicating sequential processes" (CSP).
- Occam is explicitly marked as different_from OCaml.
- Occam is named after William of Ockham.
- Common aliases include: Lenguaje de programación Occam; Lenguaje de programacion Occam; Оккам (язык программирования); Linguagem de programação occam.
- Identifiers: freebase_id /m/05p0d; wikipedia_title "Occam (programming language)"; sitelink_count 20; library_of_congress_authority_id sh86007899; national_library_of_israel_j9u_id 987007532081605171.

## FAQs
### Q: What is occam?
A: Occam is a concurrent programming language, designed for concurrent computing and influenced by communicating sequential processes (CSP). It is procedural and process-oriented and was developed by Inmos in 1983.

### Q: Who designed and developed occam?
A: Occam was designed by David May, a British computer scientist (born 1951-02-24), and developed by the company Inmos.

### Q: What programming paradigms does occam follow?
A: Occam follows concurrent computing as its primary paradigm and is also described as procedural and imperative. It is process-oriented and uses the off-side rule for syntax.

### Q: Is occam the same as OCaml?
A: No. Occam is noted as different_from OCaml.

### Q: Why is it called "occam"?
A: The language is named after William of Ockham.

## Why It Matters
Occam matters because it provides a language explicitly oriented toward concurrent computing and process-oriented design. Influenced by the formal model communicating sequential processes (CSP), occam embodies concepts for structuring and coordinating concurrent processes within a procedural, imperative framework. Its use of the off-side rule places it in a class of languages that rely on indentation-based syntax. Designed by David May and developed by Inmos in 1983, occam represents a practical implementation of concurrency-oriented ideas emerging from formal concurrency theory. The language’s explicit alignment with CSP and process-oriented programming makes it a clear example of how theoretical models of concurrent systems can be expressed in a programming language. For researchers, language designers, and engineers concerned with concurrent system structure, occam is a concrete artifact linking formal concurrency models to a procedural programming style.

## Notable For
- Being a dedicated concurrent programming language designed to support concurrent computing paradigms.
- Implementation and influence from the communicating sequential processes (CSP) model.
- Developed by Inmos with inception in 1983 and designed by David May.
- Use of the off-side rule for syntactic structure.
- Being explicitly named after William of Ockham and classified as different from OCaml.

## Body

### Origins
- Inception: 1983 (developer: Inmos).
- Designed by David May. David May is recorded as a British computer scientist (born 1951-02-24).
- Developer reference is linked to Inmos.

### Design and Paradigm
- Primary programming paradigm: concurrent computing.
- Also described as procedural programming and imperative programming.
- Classified as a process-oriented programming language.
- Influenced by communicating sequential processes (CSP).
- Uses the off-side rule for syntax (off-side rule language).

### Naming and Influence
- Named after William of Ockham.
- Influenced by the formal concurrency model "communicating sequential processes".
- Explicitly distinguished from OCaml (different_from: OCaml).

### Classification and Identifiers
- Instance_of: programming language; procedural programming language; process-oriented programming language; off-side rule language.
- Aliases: Lenguaje de programación Occam; Lenguaje de programacion Occam; Occam; Оккам (язык программирования); Linguagem de programação occam.
- Identifiers and metadata:
  - freebase_id: /m/05p0d
  - wikipedia_title: Occam (programming language)
  - sitelink_count: 20
  - library_of_congress_authority_id: sh86007899
  - national_library_of_israel_j9u_id: 987007532081605171
  - microsoft_academic_id_(discontinued): 78469957
  - yale_lux_id: concept/33540d7d-0eee-4448-a58f-cade8207356d

### Resources and Languages
- Wikipedia language coverage includes: Arabic, Azerbaijani, Bengali, German, English, Spanish, Persian (fa), Finnish, French, Italian.

## References

1. [Source](https://github.com/JohnMarkOckerbloom/ftl/blob/master/data/wikimap)
2. Freebase Data Dumps. 2013
3. National Library of Israel Names and Subjects Authority File
4. [OpenAlex](https://docs.openalex.org/download-snapshot/snapshot-data-format)