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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,5ea968aeb8c7f10d X-Google-Attributes: gid103376,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: Do I Really Need A Supervisor? Date: 1997/03/13 Message-ID: #1/1 X-Deja-AN: 225327704 References: <3327438E.942@earthlink.net> Organization: New York University Newsgroups: comp.lang.ada Date: 1997-03-13T00:00:00+00:00 List-Id: Sam said <> Bob meant what he said, in Ada 83, a main subprogram (not necessarily called main, of course) is required, but this requirement is eliminated in Ada 95. Seems a silly change to me, but it is a harmless enough one. GNAT supports this, but only with some fiddling (you need a dummy C main program with a call to adafinal and adainit, and then you bind with -gnatn, saying there is no main program). The idea is that you can do all your processing in elaboration code, a perfectly horrible way of structuring a program (which is why I think this is a silly change), but one that makes perfectly good technical sense. Note: I find that many Ada programmers get carried away with elaboration code. They think "hey! isn't this neat, I can do everything at elaboration time", and as usual when people get the "hey! isn't this neat" thought, they are in fact creating obscure junk :-) There is even one Ada compiler with a null main program where each pass is a package that does its work in package elaboration code, and pragma Elaborate is used to make sure that the passes are executed (i.e. elaborated at package elaboration time) in the right order -- hey! isn't that neat? :-)