# eC

> object-oriented programming language, defined as a super-set of the C language

**Wikidata**: [Q22095795](https://www.wikidata.org/wiki/Q22095795)  
**Source**: https://4ort.xyz/entity/ec

## Summary
eC is an object-oriented programming language defined as a super-set of the C language, first released in 2004. It supports multiple programming paradigms, including imperative, procedural, and generic programming, while maintaining static and partial inference typing. The language is influenced by C and C++, and its source code files use the `.ec` extension.

## Key Facts
- eC is an object-oriented programming language that extends the C language.
- It was first released in 2004.
- The language is licensed under BSD licenses.
- eC is classified as a procedural, imperative, multi-paradigm, and object-based programming language.
- It supports static typing, partial inference typing, and nominative typing.
- The official website for eC is [ec-lang.org](http://ec-lang.org/).
- eC is influenced by C and C++.
- The language is copyrighted and has a single Wikipedia page in Czech.
- eC source code files use the `.ec` extension for both readable and writable formats.
- The Google Knowledge Graph ID for eC is `/g/11bxfx80zn`.

## FAQs
**What programming paradigms does eC support?**
eC supports multiple programming paradigms, including imperative, procedural, object-oriented, and generic programming. It is designed as a super-set of the C language, allowing it to retain compatibility with C while extending its capabilities.

**How is eC different from C?**
eC is an object-oriented extension of the C language, meaning it adds object-oriented features while maintaining backward compatibility with C. Unlike pure C, eC supports classes, inheritance, and other object-oriented constructs.

**What is the typing discipline of eC?**
eC uses static typing, partial inference typing, and nominative typing. This means type checking occurs at compile time, with some type information inferred by the compiler, and types are checked based on their names rather than their structure.

**Where can I find more information about eC?**
The official website for eC is [ec-lang.org](http://ec-lang.org/). Additionally, the language has a single Wikipedia page in Czech, which may provide further details.

**What is the file extension for eC source code?**
eC source code files use the `.ec` extension for both readable and writable formats.

## Why It Matters
eC bridges the gap between the C language and object-oriented programming, making it easier for developers familiar with C to adopt object-oriented principles. Its multi-paradigm support allows it to be used in a variety of programming contexts, from systems programming to more abstract applications. By extending C, eC preserves its performance and efficiency while introducing modern programming features. This makes it a valuable tool for developers who need both low-level control and high-level abstractions.

## Notable For
- eC is one of the few programming languages that extends C while adding object-oriented features.
- It supports multiple programming paradigms, including imperative, procedural, and generic programming.
- eC uses static typing, partial inference typing, and nominative typing, providing a balance between type safety and flexibility.
- The language is influenced by both C and C++, reflecting its roots in systems programming.
- eC has a single Wikipedia page in Czech, indicating its regional relevance or adoption.

## Body
### Overview
eC is an object-oriented programming language that extends the C language, first released in 2004. It is designed as a super-set of C, meaning it retains all of C's features while adding object-oriented capabilities. The language is licensed under BSD licenses and is copyrighted. Its official website is [ec-lang.org](http://ec-lang.org/).

### Programming Paradigms
eC supports multiple programming paradigms, including imperative, procedural, object-oriented, and generic programming. This multi-paradigm approach allows developers to use the language in a variety of contexts, from systems programming to more abstract applications. The language also uses static typing, partial inference typing, and nominative typing, providing a balance between type safety and flexibility.

### Typing Discipline
eC employs static typing, partial inference typing, and nominative typing. Static typing ensures type safety at compile time, while partial inference typing allows the compiler to infer some type information. Nominative typing means that types are checked based on their names rather than their structure, which is a key feature of the language.

### Influences
eC is influenced by both C and C++. This influence is reflected in its syntax and design, which aim to provide a familiar yet extended version of C. The language's object-oriented features are inspired by C++, while its low-level capabilities are derived from C.

### File Formats
eC source code files use the `.ec` extension for both readable and writable formats. This consistency in file extensions helps developers easily identify and work with eC code.

### Wikipedia Presence
eC has a single Wikipedia page in Czech, indicating its regional relevance or adoption. This suggests that the language may have a significant following in the Czech Republic or among Czech-speaking developers.

### Google Knowledge Graph
The Google Knowledge Graph ID for eC is `/g/11bxfx80zn`. This ID is used to uniquely identify the language in Google's knowledge graph, which helps in search and information retrieval.

### Related Entities
eC is related to several other programming language classifications, including imperative programming language, multi-paradigm programming language, programming language, object-based language, and procedural programming language. These classifications highlight the language's versatility and its place within the broader programming landscape.

## References

1. [Source](https://en.wikipedia.org/wiki/EC_(programming_language))