ColdC
From Wikipedia, the free encyclopedia
Paradigm: | Prototype-based |
---|---|
Appeared in: | 1993 |
Designed by: | Greg Hudson |
Developer: | Greg Hudson (and others) |
Typing discipline: | dynamic |
Major implementations: | ColdMUD, Genesis |
Dialects: | ColdMUD, Genesis |
Influenced by: | C, MOO, CoolMUD |
ColdC is a programming language, originally designed for ColdMUD by Greg Hudson in 1993, but with some applications in fields unrelated to MUDs. It is a dynamically typed prototype-based object oriented system, with a syntax derived from the C programming language. It is similar to the MOO programming language in that it operates in a runtime which provides persistence (through an object database) and network access.
ColdC includes many of the attributes that made their debut with the CoolMUD system and programming language, such as:
- Instance variables ("properties" in MOO) are all private and not externally visible. Methods ("verbs" in MOO) must be written to expose them. This is similar to early object-oriented languages such as Smalltalk.
- There are no builtin properties for owner and location like in MOO. This was done partly to simplify the language and partly to permit more versatile applications.
- There are no facilities for ownership of objects or code security, as strong encapsulation permits these facilities to be written in the ColdC language itself.
- Multiple parent relationships, that is multiple objects from which an object can inherit behaviour.
In addition, there are some specific innovations that ColdC added:
- A new datatype for lightweight, immutable objects; whimsically called "frobs".
- An associative array datatype.