Emerald is a general-purpose language with aspects of traditional object-oriented languages, such as Smalltalk, and abstract data type languages, such as Modula-2 and Ada. It is stronglytyped with a non-traditional object model and type system that emphasize abstract types, allow separation of typing and implementation, and provide the flexibility of polymorphism and subtyping with compile-time checking. This paper describes the Emerald language and its programming methodology. We give examples that demonstrate Emerald's features, and compare and contrast the Emerald approach to programming with the approaches used in other similar languages. keywords: Programming languages, Programming methodology, Object-oriented programming, Abstract data types, Inheritance, Object-based concurrency
|
1268
|
The C++ Programming Language
– Stroustrup
- 1997
|
|
1127
|
SmallTalk 80: The Language and its Implementation
– Goldberg, Robson
- 1983
|
|
801
|
A theory of type polymorphism in programming
– Milner
- 1978
|
|
762
|
On understanding types, data abstraction, and polymorphism
– Cardelli, Wegner
- 1985
|
|
483
|
Fine-grained mobility in the Emerald system
– Jul, Levy, et al.
- 1988
|
|
483
|
Self: the power of simplicity, in
– Ungar, Smith
- 1987
|
|
384
|
Monitors: an operating system structuring concept
– Hoare
- 1974
|
|
236
|
Cooperating Sequential Processes
– DIJKSTRA
- 1968
|
|
180
|
Distribution and Abstract Types in Emerald
– Black, Hutchinson, et al.
- 1987
|
|
179
|
On Understanding Types
– Cardelli, Wegner
- 1985
|
|
163
|
Typefull programming
– Cardelli
- 1989
|
|
146
|
Object structure in the emerald system
– Black, Hutchinson, et al.
- 1986
|
|
125
|
Niklaus: Programming in Modula-2
– Wirth
- 1982
|
|
111
|
An introduction to trellis/owl
– Schaffert, Coope, et al.
- 1986
|
|
105
|
A proposal for making eiffel type-safe
– Cook
- 1989
|
|
92
|
Data abstraction and hierarchy
– Liskov
- 1988
|
|
81
|
The Programming Language Concurrent Pascal
– Hansen, P
- 1975
|
|
63
|
Extending Modula-2 to build large, integrated systems
– ROVNER
- 1986
|
|
58
|
Inheritance and the development of encapsulated software components
– Snyder
- 1987
|
|
57
|
Classes Versus Prototypes in Object-Oriented Languages
– Borning
- 1986
|
|
54
|
Concurrent Programming Using Actors
– Agha, Hewitt
|
|
53
|
Type theories and object-oriented programming
– Danforth, Tomlinson
- 1988
|
|
49
|
The beta programming language
– Kristensen, Madsen, et al.
- 1987
|
|
39
|
Emerald: An Object-Based Language for Distributed Programming
– Hutchinson
- 1987
|
|
36
|
Object Mobility in a Distributed Object-Oriented System
– Jul
- 1988
|
|
29
|
A compositional model for software reuse
– Raj, Levy
- 1989
|
|
24
|
Data types are values
– Donahue, Demers
- 1985
|
|
15
|
DeltaTalk: An Empirically and Aesthetically Motivated Simplification of the Smalltalk-80™ Language. Unpublished manuscript
– Borning, O’Shea
- 1986
|
|
13
|
The Emerald Programming Language
– Hutchinson, Raj, et al.
- 1987
|
|
10
|
Block structure and object-oriented languages
– Madsen
- 1987
|
|
9
|
Concurrent Euclid, the Unix System, and Tunis
– Holt
- 1983
|
|
7
|
Static typing for Eiffel
– Meyer
- 1990
|
|
6
|
Modules, objects and distributed programming: Issues in RPC and remote object invocation. Software Practice and Experience
– Levy, Tempero
- 1991
|
|
6
|
On the criteria to be used in decomposition systems into modules
– Parnas
- 1972
|
|
3
|
Is block structure necessary? Software Practice and Experience 11
– Hanson
- 1981
|
|
3
|
Two Examples of Block Structure
– Tennent
- 1982
|
|
1
|
Static typing for Eiffel, part 2 (rationale for the Eiffel rules)’, Article on Usenet Newsgroup comp.language.eiffel (message-id: 177@eiffel.UUCP
– Meyer
- 1989
|
|
1
|
Data abstraction and hierarchy’, 00PSLA ’87, Addendum to the Proceedings
– Liskov
- 1987
|
|
1
|
Composition and reuse in object-oriented languages
– Raj
- 1990
|
|
1
|
Concurrent Programming
– Object-Oriented
- 1987
|
|
1
|
Is block structure necessary?’, Software—Practice and Experience
– Hanson
- 1981
|
|
1
|
Classes Versus Prototypes
– Borning
- 1986
|