home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / lang / misc / 4034 < prev    next >
Encoding:
Text File  |  1992-12-15  |  19.1 KB  |  486 lines

  1. Newsgroups: comp.lang.misc
  2. Path: sparky!uunet!spool.mu.edu!yale.edu!ira.uka.de!sol.ctr.columbia.edu!news.cs.columbia.edu!j-lee
  3. From: j-lee@cs.columbia.edu (James Lee)
  4. Subject: Release of MeldC 2.0, A Reflective Object-Oriented Coordination Language.
  5. Message-ID: <BzB55p.3I0@cs.columbia.edu>
  6. Sender: news@cs.columbia.edu (The Daily News)
  7. Organization: Columbia University Department of Computer Science
  8. Date: Tue, 15 Dec 1992 15:46:36 GMT
  9. Lines: 475
  10.  
  11.  
  12.  
  13.                                MeldC 2.0: A Reflective
  14.                   Object-Oriented Coordination Programming Language
  15.  
  16.           We  are  pleased  to  inform  you  that MeldC 2.0 is available to
  17.           interested universities and our industrial sponsors.  Enclosed is
  18.           an information sheet that details the current status of the MeldC
  19.           Project here at Columbia  University,  and  a  selected  list  of
  20.           related publications.
  21.  
  22.           The  release  includes  source  and binary code for Sun4s running
  23.           SunOS version 4.1 and DecStations running Ultrix 4.2.    It  also
  24.           includes  a  user's  manual,  implementor's manuals for the MeldC
  25.           compiler  and  the  MeldC  runtime  system,  and  numerous  MeldC
  26.           examples.
  27.  
  28.           The  release is available free of charge via FTP.  Please arrange
  29.           for an authorized official to sign  and  submit  to  us  two  (2)
  30.           copies  of the attached license agreement.  Once we have received
  31.           the signed license,  we  will  provide  you  with  the  necessary
  32.           password  to obtain the MeldC release.  This will be expedited if
  33.           you include an email address with your license.
  34.  
  35.           If you would prefer a Sun or  DEC  cartridge  tape  and  hardcopy
  36.           manuals rather than FTP, you must include a check for $995.00 (US
  37.           dollars) to cover media, photocopying several  hundred  pages  of
  38.           manuals, shipping and handling.  Checks should be made payable to
  39.           Columbia University, and must be drawn on a US bank.   Sorry,  we
  40.           cannot accept purchase orders or checks drawn on a non-US bank.
  41.  
  42.           Please  use  the  address:  ATTN:  Prof. Gail E. Kaiser, Columbia
  43.           University,  Department  of  Computer  Science,  500  West  120th
  44.           Street,  New  York,  NY  10027, United States.  Any other name or
  45.           address will substantially delay receipt and processing.
  46.  
  47.           We look forward to hearing from you.
  48.  
  49.  
  50.       Programming System Laboratory
  51.       Department of Computer Science
  52.       Columbia University 
  53.       Email : MeldC@cs.columbia.edu
  54.  
  55.  
  56.  
  57.  
  58.                                         Gail E. Kaiser
  59.                                         Associate Professor
  60.  
  61.  
  62. /******************************************************************************/
  63.  
  64.  
  65.                                    MeldC 2.0
  66.               A Reflective Object-Oriented Coordination Language
  67.  
  68.      The  MELD  project  has been one of the major foci of the Programming
  69.      Systems Laboratory at Columbia University since 1987.  Our goal is to
  70.      develop   a  parallel  and  distributed  object-oriented  programming
  71.      language for large-scale applications.  Starting in  1990,  the  MELD
  72.      language  was completely redesigned and reimplemented from scratch to
  73.      produce MELDC, which is closer to C, has fewer but more sophisticated
  74.      ``features'',  and a cleaner architecture with many of the facilities
  75.      implemented in the MELDC language itself.
  76.  
  77.      1. Concepts
  78.      The concept of ``coordination language'' was introduced  by  Carriero
  79.      and  Gelernter  (CACM,  Apr89)  to  designate  a class of programming
  80.      languages suitable for  describing  the  behavior  of  open  systems.
  81.      Ciancarini  (ICCL,  Mar90) suggests the following definition for open
  82.      systems:
  83.  
  84.            An open system is a dynamic set of agents both  cooperating
  85.          and  conflicting for the use of a dynamic set of services and
  86.          resources.  The agents, the services and  the  resources  are
  87.          heterogeneous;   they   operate   both  in  parallel  and  in
  88.          concurrency; they communicate; they  have  some  goals  (what
  89.          they  would  like  to do), some duties (what they should do),
  90.          some rights (what they may do), and  some  constraints  (what
  91.          they must not do).
  92.  
  93.      The  development of open systems in distributed computing is a result
  94.      of using  computer  and  network  technologies  in  real-world  human
  95.      society.    The  complexity of open systems mirrors the complexity of
  96.      human  society.     Coordination   languages   usually   extend   the
  97.      declarations  and  statements of some base computation language, such
  98.      as C and Pascal, with additional facilities  to  support  distributed
  99.      and/or  parallel computation.  Many coordination languages and models
  100.      have been  proposed  for  open  systems  programming.    Among  these
  101.      approaches,   the  most  popular  one  seems  to  be  the  concurrent
  102.      object-oriented  language  approach,  since  it  provides  a  natural
  103.      environment for expressing concurrency and encapsulating distribution
  104.      in objects and messages. Objects are naturally  suited  to  represent
  105.      real-world entities with private memory and predictable behavior, and
  106.      messages are communication media among objects.  Most object-oriented
  107.      coordination languages focus on providing immediate language features
  108.      for building open systems  and  hard-code  these  features  into  the
  109.      language  internals.   One example would be supporting atomic actions
  110.      that guarantee serializability; however, it would then  be  difficult
  111.      to   build   applications   with   correctness  criteria  other  than
  112.      serializability.      Other   object-oriented    languages    support
  113.      persistency,  remoteness,  monitoring, authorization, authentication,
  114.      etc. as immediate language features.
  115.  
  116.      Like other languages, the ultimate goal of the MELDC language  is  to
  117.      support  a  wide range of high-level features for programmers to cope
  118.      with problems in designing  open  systems.    Unlike  other  language
  119.      research,  our  focus is not to study what specific language features
  120.      should be designed for solving certain open system problems,  but  to
  121.      investigate the language architecture with which programmers are able
  122.      to construct --- without modifying the  language  internals  ---  new
  123.      features in a high-level and efficient way.
  124.  
  125.      MELDC  is  a C-based, concurrent, object-oriented language built on a
  126.      reflective  architecture.    The  core  of  the  architecture  is   a
  127.      micro-kernel  (the MELDC kernel), which encapsulates a minimum set of
  128.      entities that cannot be modeled as objects.  All  components  outside
  129.      of  the  kernel  are  implemented  as objects in MELDC itself and are
  130.      modularized in the MELDC libraries.
  131.  
  132.      MELDC is reflective in three  dimensions:  structural,  computational
  133.      and  architectural.  The structural reflection indicates that classes
  134.      and meta-classes are objects,  which  are  written  in  MELDC.    The
  135.      computational  reflection means that object behaviors can be computed
  136.      and extended at runtime.  The architectural reflection indicates that
  137.      new  features/properties  (e.g.,  persistency  and remoteness) can be
  138.      constructed in MELDC.   These  properties  can  be  attached  to  and
  139.      removed  from  objects  at  runtime.    The  reflective  architecture
  140.      provides high flexibility to customize or extend object behaviors  in
  141.      an  elegant  way.   For example, a programmer builds a simple type of
  142.      persistent objects that do not survive catestrophic  system  failures
  143.      and  then  builds  a comprehensive version of persistent objects that
  144.      survive system failures by applying redundancy to  the  simple  ones.
  145.      In  MELDC,  persistency is not a language primitive, but just another
  146.      property that can be constructed  for  objects.    The  semantics  of
  147.      persistency or policies to implement it are defined in MELDC.
  148.  
  149.      Since  micro-kernel  facilities cannot be replaced or modified by the
  150.      MELDC programmer, several common choices are supported by the  kernel
  151.      and can be designated by the programmer using compiler switches.  For
  152.      example,  MELDC  intends  to  support  a  variety  of  parallel   and
  153.      distributed    applications    that    have   different   concurrency
  154.      characteristics.    Some  applications  require  a  small  number  of
  155.      long-lived  threads  while  others need a large number of short-lived
  156.      threads that are created  and  destroyed  dynamically.    Thus  MELDC
  157.      provides   three   different  thread  packages  (interleaving  stack,
  158.      one-stack-per-thread and heap-based), which  can  be  chosen  with  a
  159.      compiler  switch.    Other  compiler options enable the programmer to
  160.      choose  pre-emptive  versus  non-pre-emptive  schedulers  and  either
  161.      merging or overriding behavior for multiple inheritance.
  162.  
  163.      2. Status
  164.      The MELDC 2.0 implementation consists of about 15,000 lines of C, lex
  165.      and yacc for the compiler, 4,300 lines of C and 500 lines of assembly
  166.      code for the kernel, plus 10,000 lines MeldC runtime written in MELDC
  167.      itself.  It runs on Sun4s with SunOS 4.1 and DecStations with  Ultrix
  168.      4.2, although there are several limitations on the DEC version.  This
  169.      is the first external release of MELDC, but version 1.0 has been used
  170.      internally as an educational language for undergraduate courses.  The
  171.      release includes a user manual, compiler and  runtime  implementation
  172.      guides, a MeldC variant of the gdb debugger, and a sample program for
  173.      network monitoring.
  174.  
  175.      References
  176.  
  177.      [1]   Gail E. Kaiser and Wenwey Hseush and Steven S. Popovich and
  178.            Shyhtsun F. Wu.
  179.            "Multiple Concurrency Control Policies in an Object-Oriented
  180.            Programming System".
  181.            In 2nd IEEE Symposium on Parallel and Distributed Processing,
  182.            pages 623-626.  Dallas TX, December, 1990.
  183.  
  184.      [2]   Steven S. Popovich and Shyhtsun F. Wu and Gail E. Kaiser.
  185.            "An Object-Based  Approach  to  Implementing  Distributed 
  186.        Concurrency Control".
  187.            In 11th International Conference on Distributed Computing
  188.            Systems, pages 65-72.  Arlington TX, May, 1991.
  189.  
  190.      [3]   Wenwey Hseush and James C. Lee and Gail E. Kaiser.
  191.            "MeldC Threads: Supporting Large-Scale Dynamic Parallelism". 
  192.            Technical Report CUCS-010-92, Columbia University, March, 1992.
  193.  
  194.      [4]   James Lee and Wenwey Hseush and Erik Hilsdale and Gail E. Kaiser.
  195.            Dynamic Orthogonal Composition in MeldC. 
  196.            In 2nd Workshop on Objects in Large Distributed Applications.
  197.            Vancouver BC, Canada, October, 1992.
  198.  
  199.      [5]   Steven S. Popovich and Gail E. Kaiser.
  200.            "An Architectural Survey of Object Management Systems".
  201.            International Journal of Intelligent & Cooperative Information
  202.            Systems , 1993.  In press.
  203.  
  204.  
  205.  
  206. The following postscript document is the MeldC license agreement.  If you
  207. have any program printing out the license agreement, please feel free  to
  208. contact us at MeldC@cs.columbia.edu. 
  209.  
  210. /******************************cut here****************************************/
  211.  
  212. %!PS-Adobe-2.0
  213. %%Title: license.2.0.mss
  214. %%DocumentFonts: (atend)
  215. %%Creator: Name not found%%EndComments
  216. % PostScript Prelude for Scribe.
  217. /BS {/SV save def 0.0 792.0 translate .01 -.01 scale} bind def
  218. /ES {showpage SV restore} bind def
  219. /SC {setrgbcolor} bind def
  220. /FMTX matrix def
  221. /RDF {WFT SLT 0.0 eq 
  222.   {SSZ 0.0 0.0 SSZ neg 0.0 0.0 FMTX astore}
  223.   {SSZ 0.0 SLT neg sin SLT cos div SSZ mul SSZ neg 0.0 0.0 FMTX astore}
  224.   ifelse makefont setfont} bind def
  225. /SLT 0.0 def
  226. /SI { /SLT exch cvr def RDF} bind def
  227. /WFT /Courier findfont def
  228. /SF { /WFT exch findfont def RDF} bind def
  229. /SSZ 1000.0 def
  230. /SS { /SSZ exch 100.0 mul def RDF} bind def
  231. /AF { /WFT exch findfont def /SSZ exch 100.0 mul def RDF} bind def
  232. /MT /moveto load def
  233. /XM {currentpoint exch pop moveto} bind def
  234. /UL {gsave newpath moveto dup 2.0 div 0.0 exch rmoveto
  235.    setlinewidth 0.0 rlineto stroke grestore} bind def
  236. /LH {gsave newpath moveto setlinewidth
  237.    0.0 rlineto
  238.    gsave stroke grestore} bind def
  239. /LV {gsave newpath moveto setlinewidth
  240.    0.0 exch rlineto
  241.    gsave stroke grestore} bind def
  242. /BX {gsave newpath moveto setlinewidth
  243.    exch
  244.    dup 0.0 rlineto
  245.    exch 0.0 exch neg rlineto
  246.    neg 0.0 rlineto
  247.    closepath
  248.    gsave stroke grestore} bind def
  249. /BX1 {grestore} bind def
  250. /BX2 {setlinewidth 1 setgray stroke grestore} bind def
  251. /PB {/PV save def newpath translate
  252.     100.0 -100.0 scale pop /showpage {} def} bind def
  253. /PE {PV restore} bind def
  254. /GB {/PV save def newpath translate rotate
  255.     div dup scale 100.0 -100.0 scale /showpage {} def} bind def
  256. /GE {PV restore} bind def
  257. /FB {dict dup /FontMapDict exch def begin} bind def
  258. /FM {cvn exch cvn exch def} bind def
  259. /FE {end /original-findfont /findfont load def  /findfont
  260.    {dup FontMapDict exch known{FontMapDict exch get} if
  261.    original-findfont} def} bind def
  262. /BC {gsave moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath clip} bind def
  263. /EC /grestore load def
  264. /SH /show load def
  265. /MX {exch show 0.0 rmoveto} bind def
  266. /W {0 32 4 -1 roll widthshow} bind def
  267. /WX {0 32 5 -1 roll widthshow 0.0 rmoveto} bind def
  268. /RC {100.0 -100.0 scale
  269. 612.0 0.0 translate
  270. -90.0 rotate
  271. .01 -.01 scale} bind def
  272. /URC {100.0 -100.0 scale
  273. 90.0 rotate
  274. -612.0 0.0 translate
  275. .01 -.01 scale} bind def
  276. /RCC {100.0 -100.0 scale
  277. 0.0 -792.0 translate 90.0 rotate
  278. .01 -.01 scale} bind def
  279. /URCC {100.0 -100.0 scale
  280. -90.0 rotate 0.0 792.0 translate
  281. .01 -.01 scale} bind def
  282. %%EndProlog
  283. %%Page: 1 1
  284. BS
  285. 0 SI
  286. 15 /Times-Roman AF
  287. 8550 10080 MT
  288. (Columbia University)SH
  289. 14 SS 
  290. 21527 XM
  291. (in the City of New York)SH
  292. /Times-Italic SF
  293. 39303 XM
  294. (New York, N)SH
  295. 46322 XM
  296. (.)
  297. 100 MX(Y)SH
  298. 47350 XM
  299. (. 10027)200 W
  300. 16 /Symbol AF
  301. 37172 10280 MT
  302. (\352)SH
  303. 8 /Helvetica AF
  304. 8550 12371 MT
  305. (PROGRAMMING SYSTEMS LABORATORY)SH
  306. 39879 XM
  307. (Department of Computer Science)SH
  308. 40542 13325 MT
  309. (450 Computer Science Building)SH
  310. 46280 14279 MT
  311. (\050212\051 939-7000)SH
  312. 8550 15233 MT
  313. (MeldC@cs.columbia.edu)SH
  314. 44502 XM
  315. (Fax: \050212\051 666-0140)SH
  316. 14 /Times-Bold AF
  317. 21750 23978 MT
  318. (MeldC 2.0 Software License)SH
  319. 29256 25656 MT
  320. (for)SH
  321. 20757 27334 MT
  322. (Educational and Research Uses)SH
  323. 11 /Times-Roman AF
  324. 8550 33932 MT
  325. (License agreement between)SH
  326. 8550 36324 MT
  327. (Institution:)SH
  328. 8550 38957 MT
  329. (Address:)SH
  330. 8550 43782 MT
  331. (herein referred to as "You", and Columbia University in the City)
  332. 29 W( of New York, herein referred to)28 W
  333. 8550 44978 MT
  334. (as "Us", or "We", regarding the MeldC 2.0 software and any)
  335. 15 W( future versions of MeldC designated)16 W
  336. 8550 46174 MT
  337. (2.x \0502.1, etc.\051.)
  338. 67 W( This)
  339. 407 W( includes all programs, code and associated documentation you receive from)66 W
  340. 8550 47370 MT
  341. (us and all modified versions or extensions that you may produce.  Herein, this is all referred)
  342. 24 W( to as)25 W
  343. 8550 48566 MT
  344. ("the software and its derivatives":)SH
  345. 8550 50958 MT
  346. (1. You)
  347. 275 W( agree that you will not sell or otherwise distribute the software and its derivatives;)SH
  348. 8550 53350 MT
  349. (2. You)
  350. 617 W( acknowledge the confidential and valuable nature of the software and its derivatives.)171 W
  351. 8550 54546 MT
  352. (You will not divulge or distribute the software)
  353. 74 W( and its derivatives to third parties, nor allow any)75 W
  354. 8550 55742 MT
  355. (part of the software and its derivatives to be so divulged or distributed,)
  356. 139 W( unless express written)138 W
  357. 8550 56938 MT
  358. (permission is given by us.  You will instruct your employees, students or other persons)
  359. 2 W( authorized)3 W
  360. 8550 58134 MT
  361. (to have access to)
  362. 116 W( the software and its derivatives not to divulge or distribute it to third parties,)115 W
  363. 8550 59330 MT
  364. (unless express written permission is given by us;)SH
  365. 8550 61722 MT
  366. (3. The)
  367. 275 W( software and its derivatives will be used only on computers you control;)SH
  368. 8550 64114 MT
  369. (4. You)
  370. 909 W( agree that you will use the software and)
  371. 317 W( its derivatives solely for internal, non-)318 W
  372. 8550 65310 MT
  373. (commercial research or academic purposes.  Nothing in this agreement gives you the right)
  374. 19 W( to sell,)18 W
  375. 8550 66506 MT
  376. (lease, distribute, transfer, sublicense, or otherwise dispose of the software and)
  377. 85 W( its derivatives, in)86 W
  378. 8550 67702 MT
  379. (whole or in part, or to make any commercial use of it whatsoever;)SH
  380. 8550 70094 MT
  381. (5. Title)
  382. 301 W( and copyright of the software and its derivatives will remain with us and shall at no)
  383. 13 W( point)12 W
  384. 8550 71290 MT
  385. (transfer to you.  You)
  386. 183 W( may make copies only for backup purposes, and they shall contain the)184 W
  387. ES
  388. %%Page: 2 2
  389. BS
  390. 0 SI
  391. 11 /Times-Roman AF
  392. 8550 9305 MT
  393. (original copyright notices we inserted;)SH
  394. 8550 11697 MT
  395. (6. Official publications such as manuals, technical reports)
  396. 93 W( and articles in journals or conference)92 W
  397. 8550 12893 MT
  398. (proceedings that are based on the)
  399. 78 W( ideas of the MeldC Project, its software or its derivatives will)79 W
  400. 8550 14089 MT
  401. (give proper recognition to the MeldC Project in the Programming Systems)
  402. 186 W( Laboratory of the)185 W
  403. 8550 15285 MT
  404. (Department of Computer Science at Columbia University and the people who worked on it;)SH
  405. 8550 17677 MT
  406. (7. You)
  407. 399 W( acknowledge)
  408. 62 W( that the software and its derivatives are being supplied "as-is" without any)63 W
  409. 8550 18873 MT
  410. (support services or future updates or releases.  We may)
  411. 175 W( or may not make future updates and)174 W
  412. 8550 20069 MT
  413. (releases designated MeldC)
  414. 74 W( 2.x available to you under this same licensing agreement, but we are)75 W
  415. 8550 21265 MT
  416. (in no way obligated to do so. If you discover any error in the software)
  417. 167 W( or its derivatives, we)166 W
  418. 8550 22461 MT
  419. (encourage you to inform us.)
  420. 44 W( We)
  421. 364 W( will not necessarily acknowledge or repair any such errors thus)45 W
  422. 8550 23657 MT
  423. (reported;)SH
  424. 8550 26049 MT
  425. (8. We)
  426. 521 W( make no warranties or representations of any kind, either express or implied,)
  427. 123 W( as to any)122 W
  428. 8550 27245 MT
  429. (matter whatsoever, including merchantability or)
  430. 153 W( fitness for any particular purpose.  You agree)154 W
  431. 8550 28441 MT
  432. (that we shall not be held to any liability with respect to any claim by you or a third party arising)52 W
  433. 8550 29637 MT
  434. (from or on account of the)
  435. 22 W( use of the software and its derivatives, regardless of the form of action;)23 W
  436. 8550 30833 MT
  437. (whether in contract or tort, including negligence.)
  438. 47 W( In)
  439. 367 W( no event will we be liable for consequential)46 W
  440. 8550 32029 MT
  441. (or incidental damages of any nature whatsoever;)SH
  442. 8550 34421 MT
  443. (9. The)
  444. 118 W( user of the software and its derivatives will make sure that all potential users in his/her)119 W
  445. 8550 35617 MT
  446. (environment are aware)
  447. 126 W( of this agreement and of the terms for using the provided software and)125 W
  448. 8550 36813 MT
  449. (producing derived software.)SH
  450. 8550 42326 MT
  451. (Institution:)SH
  452. 30150 XM
  453. (Columbia University)SH
  454. 8550 44718 MT
  455. (Address:)SH
  456. 30150 XM
  457. (Department of Computer Science)SH
  458. 30150 47110 MT
  459. (500 West 120th Street)SH
  460. 30150 49502 MT
  461. (New York, NY 10027)SH
  462. 8550 51894 MT
  463. (Email:)SH
  464. 30150 XM
  465. (Email:)SH
  466. 8550 54286 MT
  467. (Date:)SH
  468. 30150 XM
  469. (Date:)SH
  470. 8550 56678 MT
  471. (Name:)SH
  472. 30150 XM
  473. (Name:)SH
  474. 8550 59070 MT
  475. (Title:)SH
  476. 30150 XM
  477. (Title:)SH
  478. 8550 61462 MT
  479. (Signature:)SH
  480. 30150 XM
  481. (Signature:)SH
  482. ES
  483. %%Trailer
  484. %%Pages: 2
  485. %%DocumentFonts: Times-Roman Symbol Times-Italic Helvetica Times-Bold
  486.