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: fac41,2c6139ce13be9980 X-Google-Attributes: gidfac41,public X-Google-Thread: f43e6,2c6139ce13be9980 X-Google-Attributes: gidf43e6,public X-Google-Thread: 103376,3d3f20d31be1c33a X-Google-Attributes: gid103376,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: Interface/Implementation (was Re: Design by Contract) Date: 1997/09/11 Message-ID: #1/1 X-Deja-AN: 271743950 References: Organization: New York University Newsgroups: comp.software-eng,comp.lang.ada,comp.lang.eiffel Date: 1997-09-11T00:00:00+00:00 List-Id: Tuck said << The AdaMagic front end is a "nearly" one-pass Ada 95 front end. It "quick-parses" ahead only as necessary to find things like labels and the name of a generic unit, and it does static analysis for all declarations between bodies before emitting elaboration code for the declarations (because rep-clauses can follow the declarations, but not follow an intervening body). But other than that, it can generate IL (intermediate language) as it goes.>> Sure, but this is not exactly a compiler, since you are moving to an interpretive environment. An end to end system will then feed the JVM into a JIT compiler, which counts as at *least* one more pass. Remember my original statement was that it was impossible to generate efficient code in a single pass. It certainly is true however, that even generating code at this level in a single pass is not possible in languages which do not pay attention to the single pass design principle.