home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.misc
- Path: sparky!uunet!spool.mu.edu!yale.edu!ira.uka.de!sol.ctr.columbia.edu!news.cs.columbia.edu!j-lee
- From: j-lee@cs.columbia.edu (James Lee)
- Subject: Release of MeldC 2.0, A Reflective Object-Oriented Coordination Language.
- Message-ID: <BzB55p.3I0@cs.columbia.edu>
- Sender: news@cs.columbia.edu (The Daily News)
- Organization: Columbia University Department of Computer Science
- Date: Tue, 15 Dec 1992 15:46:36 GMT
- Lines: 475
-
-
-
- MeldC 2.0: A Reflective
- Object-Oriented Coordination Programming Language
-
- We are pleased to inform you that MeldC 2.0 is available to
- interested universities and our industrial sponsors. Enclosed is
- an information sheet that details the current status of the MeldC
- Project here at Columbia University, and a selected list of
- related publications.
-
- The release includes source and binary code for Sun4s running
- SunOS version 4.1 and DecStations running Ultrix 4.2. It also
- includes a user's manual, implementor's manuals for the MeldC
- compiler and the MeldC runtime system, and numerous MeldC
- examples.
-
- The release is available free of charge via FTP. Please arrange
- for an authorized official to sign and submit to us two (2)
- copies of the attached license agreement. Once we have received
- the signed license, we will provide you with the necessary
- password to obtain the MeldC release. This will be expedited if
- you include an email address with your license.
-
- If you would prefer a Sun or DEC cartridge tape and hardcopy
- manuals rather than FTP, you must include a check for $995.00 (US
- dollars) to cover media, photocopying several hundred pages of
- manuals, shipping and handling. Checks should be made payable to
- Columbia University, and must be drawn on a US bank. Sorry, we
- cannot accept purchase orders or checks drawn on a non-US bank.
-
- Please use the address: ATTN: Prof. Gail E. Kaiser, Columbia
- University, Department of Computer Science, 500 West 120th
- Street, New York, NY 10027, United States. Any other name or
- address will substantially delay receipt and processing.
-
- We look forward to hearing from you.
-
-
- Programming System Laboratory
- Department of Computer Science
- Columbia University
- Email : MeldC@cs.columbia.edu
-
-
-
-
- Gail E. Kaiser
- Associate Professor
-
-
- /******************************************************************************/
-
-
- MeldC 2.0
- A Reflective Object-Oriented Coordination Language
-
- The MELD project has been one of the major foci of the Programming
- Systems Laboratory at Columbia University since 1987. Our goal is to
- develop a parallel and distributed object-oriented programming
- language for large-scale applications. Starting in 1990, the MELD
- language was completely redesigned and reimplemented from scratch to
- produce MELDC, which is closer to C, has fewer but more sophisticated
- ``features'', and a cleaner architecture with many of the facilities
- implemented in the MELDC language itself.
-
- 1. Concepts
- The concept of ``coordination language'' was introduced by Carriero
- and Gelernter (CACM, Apr89) to designate a class of programming
- languages suitable for describing the behavior of open systems.
- Ciancarini (ICCL, Mar90) suggests the following definition for open
- systems:
-
- An open system is a dynamic set of agents both cooperating
- and conflicting for the use of a dynamic set of services and
- resources. The agents, the services and the resources are
- heterogeneous; they operate both in parallel and in
- concurrency; they communicate; they have some goals (what
- they would like to do), some duties (what they should do),
- some rights (what they may do), and some constraints (what
- they must not do).
-
- The development of open systems in distributed computing is a result
- of using computer and network technologies in real-world human
- society. The complexity of open systems mirrors the complexity of
- human society. Coordination languages usually extend the
- declarations and statements of some base computation language, such
- as C and Pascal, with additional facilities to support distributed
- and/or parallel computation. Many coordination languages and models
- have been proposed for open systems programming. Among these
- approaches, the most popular one seems to be the concurrent
- object-oriented language approach, since it provides a natural
- environment for expressing concurrency and encapsulating distribution
- in objects and messages. Objects are naturally suited to represent
- real-world entities with private memory and predictable behavior, and
- messages are communication media among objects. Most object-oriented
- coordination languages focus on providing immediate language features
- for building open systems and hard-code these features into the
- language internals. One example would be supporting atomic actions
- that guarantee serializability; however, it would then be difficult
- to build applications with correctness criteria other than
- serializability. Other object-oriented languages support
- persistency, remoteness, monitoring, authorization, authentication,
- etc. as immediate language features.
-
- Like other languages, the ultimate goal of the MELDC language is to
- support a wide range of high-level features for programmers to cope
- with problems in designing open systems. Unlike other language
- research, our focus is not to study what specific language features
- should be designed for solving certain open system problems, but to
- investigate the language architecture with which programmers are able
- to construct --- without modifying the language internals --- new
- features in a high-level and efficient way.
-
- MELDC is a C-based, concurrent, object-oriented language built on a
- reflective architecture. The core of the architecture is a
- micro-kernel (the MELDC kernel), which encapsulates a minimum set of
- entities that cannot be modeled as objects. All components outside
- of the kernel are implemented as objects in MELDC itself and are
- modularized in the MELDC libraries.
-
- MELDC is reflective in three dimensions: structural, computational
- and architectural. The structural reflection indicates that classes
- and meta-classes are objects, which are written in MELDC. The
- computational reflection means that object behaviors can be computed
- and extended at runtime. The architectural reflection indicates that
- new features/properties (e.g., persistency and remoteness) can be
- constructed in MELDC. These properties can be attached to and
- removed from objects at runtime. The reflective architecture
- provides high flexibility to customize or extend object behaviors in
- an elegant way. For example, a programmer builds a simple type of
- persistent objects that do not survive catestrophic system failures
- and then builds a comprehensive version of persistent objects that
- survive system failures by applying redundancy to the simple ones.
- In MELDC, persistency is not a language primitive, but just another
- property that can be constructed for objects. The semantics of
- persistency or policies to implement it are defined in MELDC.
-
- Since micro-kernel facilities cannot be replaced or modified by the
- MELDC programmer, several common choices are supported by the kernel
- and can be designated by the programmer using compiler switches. For
- example, MELDC intends to support a variety of parallel and
- distributed applications that have different concurrency
- characteristics. Some applications require a small number of
- long-lived threads while others need a large number of short-lived
- threads that are created and destroyed dynamically. Thus MELDC
- provides three different thread packages (interleaving stack,
- one-stack-per-thread and heap-based), which can be chosen with a
- compiler switch. Other compiler options enable the programmer to
- choose pre-emptive versus non-pre-emptive schedulers and either
- merging or overriding behavior for multiple inheritance.
-
- 2. Status
- The MELDC 2.0 implementation consists of about 15,000 lines of C, lex
- and yacc for the compiler, 4,300 lines of C and 500 lines of assembly
- code for the kernel, plus 10,000 lines MeldC runtime written in MELDC
- itself. It runs on Sun4s with SunOS 4.1 and DecStations with Ultrix
- 4.2, although there are several limitations on the DEC version. This
- is the first external release of MELDC, but version 1.0 has been used
- internally as an educational language for undergraduate courses. The
- release includes a user manual, compiler and runtime implementation
- guides, a MeldC variant of the gdb debugger, and a sample program for
- network monitoring.
-
- References
-
- [1] Gail E. Kaiser and Wenwey Hseush and Steven S. Popovich and
- Shyhtsun F. Wu.
- "Multiple Concurrency Control Policies in an Object-Oriented
- Programming System".
- In 2nd IEEE Symposium on Parallel and Distributed Processing,
- pages 623-626. Dallas TX, December, 1990.
-
- [2] Steven S. Popovich and Shyhtsun F. Wu and Gail E. Kaiser.
- "An Object-Based Approach to Implementing Distributed
- Concurrency Control".
- In 11th International Conference on Distributed Computing
- Systems, pages 65-72. Arlington TX, May, 1991.
-
- [3] Wenwey Hseush and James C. Lee and Gail E. Kaiser.
- "MeldC Threads: Supporting Large-Scale Dynamic Parallelism".
- Technical Report CUCS-010-92, Columbia University, March, 1992.
-
- [4] James Lee and Wenwey Hseush and Erik Hilsdale and Gail E. Kaiser.
- Dynamic Orthogonal Composition in MeldC.
- In 2nd Workshop on Objects in Large Distributed Applications.
- Vancouver BC, Canada, October, 1992.
-
- [5] Steven S. Popovich and Gail E. Kaiser.
- "An Architectural Survey of Object Management Systems".
- International Journal of Intelligent & Cooperative Information
- Systems , 1993. In press.
-
-
-
- The following postscript document is the MeldC license agreement. If you
- have any program printing out the license agreement, please feel free to
- contact us at MeldC@cs.columbia.edu.
-
- /******************************cut here****************************************/
-
- %!PS-Adobe-2.0
- %%Title: license.2.0.mss
- %%DocumentFonts: (atend)
- %%Creator: Name not found%%EndComments
- % PostScript Prelude for Scribe.
- /BS {/SV save def 0.0 792.0 translate .01 -.01 scale} bind def
- /ES {showpage SV restore} bind def
- /SC {setrgbcolor} bind def
- /FMTX matrix def
- /RDF {WFT SLT 0.0 eq
- {SSZ 0.0 0.0 SSZ neg 0.0 0.0 FMTX astore}
- {SSZ 0.0 SLT neg sin SLT cos div SSZ mul SSZ neg 0.0 0.0 FMTX astore}
- ifelse makefont setfont} bind def
- /SLT 0.0 def
- /SI { /SLT exch cvr def RDF} bind def
- /WFT /Courier findfont def
- /SF { /WFT exch findfont def RDF} bind def
- /SSZ 1000.0 def
- /SS { /SSZ exch 100.0 mul def RDF} bind def
- /AF { /WFT exch findfont def /SSZ exch 100.0 mul def RDF} bind def
- /MT /moveto load def
- /XM {currentpoint exch pop moveto} bind def
- /UL {gsave newpath moveto dup 2.0 div 0.0 exch rmoveto
- setlinewidth 0.0 rlineto stroke grestore} bind def
- /LH {gsave newpath moveto setlinewidth
- 0.0 rlineto
- gsave stroke grestore} bind def
- /LV {gsave newpath moveto setlinewidth
- 0.0 exch rlineto
- gsave stroke grestore} bind def
- /BX {gsave newpath moveto setlinewidth
- exch
- dup 0.0 rlineto
- exch 0.0 exch neg rlineto
- neg 0.0 rlineto
- closepath
- gsave stroke grestore} bind def
- /BX1 {grestore} bind def
- /BX2 {setlinewidth 1 setgray stroke grestore} bind def
- /PB {/PV save def newpath translate
- 100.0 -100.0 scale pop /showpage {} def} bind def
- /PE {PV restore} bind def
- /GB {/PV save def newpath translate rotate
- div dup scale 100.0 -100.0 scale /showpage {} def} bind def
- /GE {PV restore} bind def
- /FB {dict dup /FontMapDict exch def begin} bind def
- /FM {cvn exch cvn exch def} bind def
- /FE {end /original-findfont /findfont load def /findfont
- {dup FontMapDict exch known{FontMapDict exch get} if
- original-findfont} def} bind def
- /BC {gsave moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath clip} bind def
- /EC /grestore load def
- /SH /show load def
- /MX {exch show 0.0 rmoveto} bind def
- /W {0 32 4 -1 roll widthshow} bind def
- /WX {0 32 5 -1 roll widthshow 0.0 rmoveto} bind def
- /RC {100.0 -100.0 scale
- 612.0 0.0 translate
- -90.0 rotate
- .01 -.01 scale} bind def
- /URC {100.0 -100.0 scale
- 90.0 rotate
- -612.0 0.0 translate
- .01 -.01 scale} bind def
- /RCC {100.0 -100.0 scale
- 0.0 -792.0 translate 90.0 rotate
- .01 -.01 scale} bind def
- /URCC {100.0 -100.0 scale
- -90.0 rotate 0.0 792.0 translate
- .01 -.01 scale} bind def
- %%EndProlog
- %%Page: 1 1
- BS
- 0 SI
- 15 /Times-Roman AF
- 8550 10080 MT
- (Columbia University)SH
- 14 SS
- 21527 XM
- (in the City of New York)SH
- /Times-Italic SF
- 39303 XM
- (New York, N)SH
- 46322 XM
- (.)
- 100 MX(Y)SH
- 47350 XM
- (. 10027)200 W
- 16 /Symbol AF
- 37172 10280 MT
- (\352)SH
- 8 /Helvetica AF
- 8550 12371 MT
- (PROGRAMMING SYSTEMS LABORATORY)SH
- 39879 XM
- (Department of Computer Science)SH
- 40542 13325 MT
- (450 Computer Science Building)SH
- 46280 14279 MT
- (\050212\051 939-7000)SH
- 8550 15233 MT
- (MeldC@cs.columbia.edu)SH
- 44502 XM
- (Fax: \050212\051 666-0140)SH
- 14 /Times-Bold AF
- 21750 23978 MT
- (MeldC 2.0 Software License)SH
- 29256 25656 MT
- (for)SH
- 20757 27334 MT
- (Educational and Research Uses)SH
- 11 /Times-Roman AF
- 8550 33932 MT
- (License agreement between)SH
- 8550 36324 MT
- (Institution:)SH
- 8550 38957 MT
- (Address:)SH
- 8550 43782 MT
- (herein referred to as "You", and Columbia University in the City)
- 29 W( of New York, herein referred to)28 W
- 8550 44978 MT
- (as "Us", or "We", regarding the MeldC 2.0 software and any)
- 15 W( future versions of MeldC designated)16 W
- 8550 46174 MT
- (2.x \0502.1, etc.\051.)
- 67 W( This)
- 407 W( includes all programs, code and associated documentation you receive from)66 W
- 8550 47370 MT
- (us and all modified versions or extensions that you may produce. Herein, this is all referred)
- 24 W( to as)25 W
- 8550 48566 MT
- ("the software and its derivatives":)SH
- 8550 50958 MT
- (1. You)
- 275 W( agree that you will not sell or otherwise distribute the software and its derivatives;)SH
- 8550 53350 MT
- (2. You)
- 617 W( acknowledge the confidential and valuable nature of the software and its derivatives.)171 W
- 8550 54546 MT
- (You will not divulge or distribute the software)
- 74 W( and its derivatives to third parties, nor allow any)75 W
- 8550 55742 MT
- (part of the software and its derivatives to be so divulged or distributed,)
- 139 W( unless express written)138 W
- 8550 56938 MT
- (permission is given by us. You will instruct your employees, students or other persons)
- 2 W( authorized)3 W
- 8550 58134 MT
- (to have access to)
- 116 W( the software and its derivatives not to divulge or distribute it to third parties,)115 W
- 8550 59330 MT
- (unless express written permission is given by us;)SH
- 8550 61722 MT
- (3. The)
- 275 W( software and its derivatives will be used only on computers you control;)SH
- 8550 64114 MT
- (4. You)
- 909 W( agree that you will use the software and)
- 317 W( its derivatives solely for internal, non-)318 W
- 8550 65310 MT
- (commercial research or academic purposes. Nothing in this agreement gives you the right)
- 19 W( to sell,)18 W
- 8550 66506 MT
- (lease, distribute, transfer, sublicense, or otherwise dispose of the software and)
- 85 W( its derivatives, in)86 W
- 8550 67702 MT
- (whole or in part, or to make any commercial use of it whatsoever;)SH
- 8550 70094 MT
- (5. Title)
- 301 W( and copyright of the software and its derivatives will remain with us and shall at no)
- 13 W( point)12 W
- 8550 71290 MT
- (transfer to you. You)
- 183 W( may make copies only for backup purposes, and they shall contain the)184 W
- ES
- %%Page: 2 2
- BS
- 0 SI
- 11 /Times-Roman AF
- 8550 9305 MT
- (original copyright notices we inserted;)SH
- 8550 11697 MT
- (6. Official publications such as manuals, technical reports)
- 93 W( and articles in journals or conference)92 W
- 8550 12893 MT
- (proceedings that are based on the)
- 78 W( ideas of the MeldC Project, its software or its derivatives will)79 W
- 8550 14089 MT
- (give proper recognition to the MeldC Project in the Programming Systems)
- 186 W( Laboratory of the)185 W
- 8550 15285 MT
- (Department of Computer Science at Columbia University and the people who worked on it;)SH
- 8550 17677 MT
- (7. You)
- 399 W( acknowledge)
- 62 W( that the software and its derivatives are being supplied "as-is" without any)63 W
- 8550 18873 MT
- (support services or future updates or releases. We may)
- 175 W( or may not make future updates and)174 W
- 8550 20069 MT
- (releases designated MeldC)
- 74 W( 2.x available to you under this same licensing agreement, but we are)75 W
- 8550 21265 MT
- (in no way obligated to do so. If you discover any error in the software)
- 167 W( or its derivatives, we)166 W
- 8550 22461 MT
- (encourage you to inform us.)
- 44 W( We)
- 364 W( will not necessarily acknowledge or repair any such errors thus)45 W
- 8550 23657 MT
- (reported;)SH
- 8550 26049 MT
- (8. We)
- 521 W( make no warranties or representations of any kind, either express or implied,)
- 123 W( as to any)122 W
- 8550 27245 MT
- (matter whatsoever, including merchantability or)
- 153 W( fitness for any particular purpose. You agree)154 W
- 8550 28441 MT
- (that we shall not be held to any liability with respect to any claim by you or a third party arising)52 W
- 8550 29637 MT
- (from or on account of the)
- 22 W( use of the software and its derivatives, regardless of the form of action;)23 W
- 8550 30833 MT
- (whether in contract or tort, including negligence.)
- 47 W( In)
- 367 W( no event will we be liable for consequential)46 W
- 8550 32029 MT
- (or incidental damages of any nature whatsoever;)SH
- 8550 34421 MT
- (9. The)
- 118 W( user of the software and its derivatives will make sure that all potential users in his/her)119 W
- 8550 35617 MT
- (environment are aware)
- 126 W( of this agreement and of the terms for using the provided software and)125 W
- 8550 36813 MT
- (producing derived software.)SH
- 8550 42326 MT
- (Institution:)SH
- 30150 XM
- (Columbia University)SH
- 8550 44718 MT
- (Address:)SH
- 30150 XM
- (Department of Computer Science)SH
- 30150 47110 MT
- (500 West 120th Street)SH
- 30150 49502 MT
- (New York, NY 10027)SH
- 8550 51894 MT
- (Email:)SH
- 30150 XM
- (Email:)SH
- 8550 54286 MT
- (Date:)SH
- 30150 XM
- (Date:)SH
- 8550 56678 MT
- (Name:)SH
- 30150 XM
- (Name:)SH
- 8550 59070 MT
- (Title:)SH
- 30150 XM
- (Title:)SH
- 8550 61462 MT
- (Signature:)SH
- 30150 XM
- (Signature:)SH
- ES
- %%Trailer
- %%Pages: 2
- %%DocumentFonts: Times-Roman Symbol Times-Italic Helvetica Times-Bold
-