From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,335e9f05eb0dcfa0 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-11-24 03:22:52 PST Path: nntp.gmd.de!newsserver.jvnc.net!news.cac.psu.edu!news.pop.psu.edu!psuvax1!uwm.edu!news.moneng.mei.com!hookup!olivea!news.hal.COM!decwrl!enews.sgi.com!fido.asd.sgi.com!lovelace!quiggle From: quiggle@lovelace.wpd.sgi.com (Tom Quiggle) Newsgroups: comp.lang.ada Subject: Re: SGI inheriting C++ classes ... Date: 23 Nov 1994 17:42:47 GMT Organization: Silicon Graphics, Inc. Mountain View, CA Message-ID: <3avuun$lb8@fido.asd.sgi.com> References: <2ECBCF25@SMTPGATE2.STRATCOM.AF.MIL> <3ak8gs$uh@gnat.cs.nyu.edu> <3asuuv$blb@gnat.cs.nyu.edu> NNTP-Posting-Host: lovelace.wpd.sgi.com Date: 1994-11-23T17:42:47+00:00 List-Id: In article <3asuuv$blb@gnat.cs.nyu.edu>, dewar@cs.nyu.edu writes: > Bill, regarding your "no more than 200 calls". You have a very peculiar > idea of what is going on. The bindings are not just a bunch of procedure > calls that are independent and may or may not be used. > > For each C++ class that is duplicated exactly on the Ada side, there is > a large body of C++, and hence Ada 9X binding, code that describes the > structure of the class. When you use such a class in Ada 9X, you may not > explicitly be calling all the member functions, but they all have to be > properly declared and understood by the 9X binding, so that the data > structures, including dispatching tables, are layed out right. > > Thus a single call, or declaration of an object, in the 9X code, can > very well involve hundreds of lines of interface code, which must be > exactly right for the single call to work right. Robert is exactly correct. For example, the single 'Player' class that implements each of the two players in the game is defined in terms of 18 other classes, and '#include's 20 header files (each of which includes several other header files). In order to use the Player class, we need to correctly represent it in Ada. When you look at the transitive closure of all the dependent declarations, you wind up with a large number of Ada specifications. ------ Tom Quiggle quiggle@sgi.com Silicon Graphics (415) 390 - 2884