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.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Paul Rubin Newsgroups: comp.lang.ada Subject: Re: How to get Ada to ?cross the chasm?? Date: Fri, 11 May 2018 01:21:20 -0700 Organization: A noiseless patient Spider Message-ID: <8736yy4n7j.fsf@nightsong.com> References: <322f9b26-01de-4753-bb50-6ef2f3d993d8@googlegroups.com> <87a7th9pd1.fsf@nightsong.com> <87h8no1nli.fsf@nightsong.com> <874ljo1hvy.fsf@nightsong.com> <87vac4z2lh.fsf@nightsong.com> <87lgcszjdn.fsf@nightsong.com> <87sh6z1kkg.fsf@nightsong.com> <87k1sb1dt3.fsf@nightsong.com> <87h8nfyu40.fsf@nightsong.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: reader02.eternal-september.org; posting-host="4776ca6b408eab45c2cc0c9a5f8c8c74"; logging-data="28859"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX196MQaIg+qfWRUJN56rz8g8" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) Cancel-Lock: sha1:Va1dblKZcwLlz6PDiLsZMtS4auk= sha1:9+hHfPl0GITiCbPnNgmvxu+sL3w= Xref: reader02.eternal-september.org comp.lang.ada:52254 Date: 2018-05-11T01:21:20-07:00 List-Id: Niklas Holsti writes: > At least on my part, CBSG is only being used as an example or starting > point for discussing when it is practical or impractical to embed a > DSL in Ada, compared to implementing an Ada interpreter for DSL text > read in at Ada run-time. Me too, though the comparison on my part was to using a "code is data" language like Lisp. Another approach would be to have an embeddable extension language in a library, which for the GNU project means Guile, a Scheme interpreter that has gotten quite large and powerful. The rest of the world seems to have settled on Lua or sometimes Python or Javascript for this purpose. Lua has language warts but is a small and clean implementation that's nice for embedding. Python is a nicer language but its main implementation is rather clumsy IMHO. And Javascript is, well, Javascript. I'm partial to the Scheme/Lisp approach myself and I think Guile is an admirable Scheme implementation, but it's become closer to a full featured standalone system, while for embedding purposes I'd prefer something smaller.