# Cecil (programming language)

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Cecil_(programming_language)
> Markdown URL: https://mediated.wiki/source/Cecil_(programming_language).md
> Source: https://en.wikipedia.org/wiki/Cecil_(programming_language)
> Source revision: 1327473967
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Object-oriented programming language

Not to be confused with [CESIL](/source/CESIL).

Cecil Paradigm object-oriented Designed by Craig Chambers First appeared 1992; 34 years ago (1992) Typing discipline dynamic (optionally static) Influenced Diesel

**Cecil** is a pure [object-oriented](/source/Object-oriented_programming) [programming language](/source/Programming_language) that was developed by [Craig Chambers](/source/Craig_Chambers) at the [University of Washington](/source/University_of_Washington) in 1992 to be part of the Vortex project there. Cecil has many similarities to other object-oriented languages, most notably [Objective-C](/source/Objective-C), [Modula-3](/source/Modula-3), and [Self](/source/Self_(programming_language)).[1][2] The main goals of the project were [extensibility](/source/Extensibility), orthogonality, efficiency, and ease-of-use.

The language supports [multiple dispatch](/source/Multiple_dispatch) and multimethods, dynamic [inheritance](/source/Inheritance_(object-oriented_programming)), and optional [static type checking](/source/Static_type_checking). Unlike most other OOP systems, Cecil allows subtyping and code inheritance to be used separately, allowing run-time or external extension of object classes or instances. Like Objective-C, all object services in Cecil are invoked by [message passing](/source/Message_passing), and the language supports run-time class identification. These features allow Cecil to support dynamic, [exploratory programming](/source/Exploratory_programming) styles. Parameterized types and methods ([generics](/source/Generic_programming), [polymorphism](/source/Type_polymorphism)), [garbage collection](/source/Garbage_collection_(computer_science)), and [delegation](/source/Delegation_(programming)) are also supported. Cecil also supports a module mechanism for isolating independent libraries or packages. Cecil does not presently support threads or any other form of concurrency. A standard library for Cecil is also available and includes various collection, utility, system, I/O, and GUI classes.

The [Diesel](https://en.wikipedia.org/w/index.php?title=Diesel_(programming_language)&action=edit&redlink=1) language was the successor of Cecil.[3]

## References

1. **[^](#cite_ref-DeanDeFouw1996_1-0)** Dean, Jeffrey; DeFouw, Greg; Grove, David; Litvinov, Vassily; Chambers, Craig (1996). "Vortex: an optimizing compiler for object-oriented languages". *Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications*. [OOPSLA](/source/OOPSLA)'96. pp. 83–100. [doi](/source/Doi_(identifier)):[10.1145/236338.236344](https://doi.org/10.1145%2F236338.236344). [ISBN](/source/ISBN_(identifier)) [0-89791-788-X](https://en.wikipedia.org/wiki/Special:BookSources/0-89791-788-X).

1. **[^](#cite_ref-Chambers1992_2-0)** Chambers, Craig (1992). "Object-oriented multi-methods in Cecil". *ECOOP ’92 European Conference on Object-Oriented Programming*. ECOOP'92. [LNCS](/source/Lecture_Notes_in_Computer_Science). Vol. 615. pp. 33–56. [doi](/source/Doi_(identifier)):[10.1007/BFb0053029](https://doi.org/10.1007%2FBFb0053029). [ISBN](/source/ISBN_(identifier)) [3-540-55668-0](https://en.wikipedia.org/wiki/Special:BookSources/3-540-55668-0). [ISSN](/source/ISSN_(identifier)) [0302-9743](https://search.worldcat.org/issn/0302-9743).

1. **[^](#cite_ref-3)** ["Diesel"](http://wasp.cs.washington.edu/wasp_diesel.html). [University of Washington](/source/University_of_Washington).

## External links

- [UW Cecil Group: Home](http://www.cs.washington.edu/research/projects/cecil/) Official webpage

- [Cecil language features](http://www.cs.washington.edu/research/projects/cecil/www/cecil.html)

This programming-language-related article is a stub. You can help Wikipedia by adding missing information.

- [v](https://en.wikipedia.org/wiki/Template:Prog-lang-stub)
- [t](/source/Template_talk%3AProg-lang-stub)
- [e](https://en.wikipedia.org/wiki/Special:EditPage/Template:Prog-lang-stub)

---
Adapted from the Wikipedia article [Cecil (programming language)](https://en.wikipedia.org/wiki/Cecil_(programming_language)) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Cecil_(programming_language)?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
