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: 1108a1,66253344eaef63db X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,66253344eaef63db X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-10-02 16:35:57 PST Path: bga.com!news.sprintlink.net!howland.reston.ans.net!swrinde!ihnp4.ucsd.edu!network.ucsd.edu!mbk From: mbk@inls1.ucsd.edu (Matt Kennel) Newsgroups: comp.lang.ada,comp.object Subject: Re: Mut. Recurs. in Ada9X w/o Breaking Encaps.? (LONG) Followup-To: comp.lang.ada,comp.object Date: 2 Oct 1994 23:33:30 GMT Organization: Institute For Nonlinear Science, UCSD Message-ID: <36ng0a$4bt@network.ucsd.edu> References: <1994Oct2.164105.13127@swlvx2.msd.ray.com> NNTP-Posting-Host: lyapunov.ucsd.edu X-Newsreader: TIN [version 1.1 PL8] Xref: bga.com comp.lang.ada:6382 comp.object:6989 Date: 1994-10-02T23:33:30+00:00 List-Id: John Volan (jgv@swl.msd.ray.com) wrote: : That's my fear as well. That's why I've been trying very hard to find : an Ada9X solution. Eiffel can do decoupled mutual recursion standing on its : head. Smalltalk virtually swims in a sea of decoupled mutual recursion : (trivial in a typeless language). : I agree wholeheartedly with the *goal*, but not with the *means* you suggest. : Goal: Some kind of "forward declaration" that crosses package boundaries. : (Good and worthy goal.) : Means: Some way for package specifications to use access types in other : packages that *haven't been compiled yet*. (Horrible means, terrible : implications, shudder, shudder :-) : Actually, I have a better idea. Let's take a bit of inspiration from a : notion that is already intrinsic to the design of Ada: Although a package is : considered to be a single, self-contained, organic entity -- a *unit* of program : modularity -- nevertheless it is syntactically broken up into two *parts* that : present complementary *views* of that single unit -- two views which can be : *separately compiled*. They are: (1) the package specification, which presents : the *interface* view of the package, and (2) the package body, which presents : the *implementation* view of the package. : All that is really needed is to a break off a third syntactic part that can : offer a view of the package where we can make "forward declarations" -- or : rather, where "incomplete" declarations could be tolerated, because they : will eventually be completed in the package specification. Eeek. Sorry I disagree here. Remember, the road to C++ was paved with good intentions. Instead of adding complexity, subtract it. Declare _ex cathedra_ "recursive definitions are allowed". Let the compiler implement. -- -Matt Kennel mbk@inls1.ucsd.edu -Institute for Nonlinear Science, University of California, San Diego -*** AD: Archive for nonlinear dynamics papers & programs: FTP to -*** lyapunov.ucsd.edu, username "anonymous".