Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
A
B
C
D
E
F
G
H
I
JK
L
M
N
O
P
QR
S
T
UV
WXYZ+
Get a full dump of the dictionary:
List of Names
Short Form
Full Form
-
Cecil
- Language type:
- Description:
Cecil is a pure object-oriented programming
language developed at the University of
Washington. Cecil was designed as part
of the larger Vortex project at UW, and
it is intended to provide a framework in
which large, extensible software systems
can be developed more easily. Some
other goals of the project are
orthagonality, efficiency, and ease-of-use.
The Cecil language is based on a simple
object model that supports multiple
inheritance and multi-methods,
dynamic inheritance, and optional static
type checking. Unlike most OOP systems,
Cecil allows subtyping and code inheritance
to be used separately, thus allowing
run-time or external extension of object
classes or instances. Like
Objective-C, all object services in Cecil
are invoked by message passing, and
the language supports run-time class
identification. These features allow
Cecil to support dynamic, exploratory
programming styles. Parameterized types
and methods (generics, polymorphism),
garbage collection, and delegation are
also supported.
Cecil also supports a module mechanism
for isolation of independent libraries
or packages. Cecil does not presently
support threads or any other form of
concurrency.
A standard library for
Cecil is also part of the project, it
includes various collection, utility,
system, I/O, and GUI classes.<
The latest version of the Cecil language
definition is 2.1, dated 3/97. Cecil
currently runs on Unix and Linux systems.
- Origin:
- See Also:
- Remarks:
Cecil has served as a research vehicle
for object-oriented programming techniques
and for compilation techniques for
dynamic object-oriented languages. The
Vortex compilation system handles Cecil,
a subset of Java, C++, and Modula-3. It's
interesting to note that Vortex Version 2
is bootstrapped - the compiler is
written in Cecil.
Cecil/Vortex is a research vehicle, it is
not clear whether the Cecil language will ever be
well-suited for production application
programming.
It is also interesting to note that the
official documentation for Cecil
does not seem to include a single
example program.
- Sample code:
-- Adapted from Cecil Project v2.0 distribution tests
method copy_file_using_streams(name1@:string, name2@:string):void {
let f1:unix_file := open_file(name1, open_for_reading);
let f2:unix_file := open_file(name2, create_for_writing);
(name1 || " is " || if(f1.is_unreadable, {"not "}, {""}) || "readable").
print_line;
(name2 || " is " || if(f2.is_unreadable, {"not "}, {""}) || "readable").
print_line;
while({ f1.before_end }, { f2.next := f1.next; });
close(f1);
close(f2);
}
let var name1 := ask("Name of input file: ");
let var name2 := ask("Name of output file: ");
print("Copying using streams...");
copy_file_using_streams(name1, name2);
print_line(" done.");
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is ziring@home.com
[Ziring MicroWeb Home]
[Dictionary Start]
[Sign Guestbook]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.