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=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 107f24,582dff0b3f065a52 X-Google-Attributes: gid107f24,public X-Google-Thread: 1014db,582dff0b3f065a52 X-Google-Attributes: gid1014db,public X-Google-Thread: 109fba,582dff0b3f065a52 X-Google-Attributes: gid109fba,public X-Google-Thread: 103376,bc1361a952ec75ca X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-08-02 01:37:08 PST Path: archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!news1.optus.net.au!optus!news.mel.connect.com.au!news.unimelb.edu.au!mulga.cs.mu.OZ.AU!not-for-mail From: zs@ender.cs.mu.OZ.AU (Zoltan Somogyi) Newsgroups: comp.lang.ada,comp.lang.c,comp.lang.c++,comp.lang.functional Subject: Re: How Ada could have prevented the Red Code distributed denial of service attack. Date: 2 Aug 2001 18:28:19 +1000 Organization: A poorly-maintained Debian GNU/Linux InterNetNews site Message-ID: <9kb2v3$4qh$1@ender.cs.mu.OZ.AU> References: <3B6555ED.9B0B0420@sneakemail.com> <87n15lxzzv.fsf@deneb.enyo.de> <3B672322.B5EA1B66@home.com> <9ka1e1$b5h$2@bird.wu-wien.ac.at> <3B688D21.810C5706@eton.powernet.co.uk> NNTP-Posting-Host: ender.cs.mu.oz.au X-Trace: mulga.cs.mu.OZ.AU 996740900 20959 128.250.25.9 (2 Aug 2001 08:28:20 GMT) X-Complaints-To: usenet@cs.mu.OZ.AU NNTP-Posting-Date: 2 Aug 2001 08:28:20 GMT Xref: archiver1.google.com comp.lang.ada:11049 comp.lang.c:71568 comp.lang.c++:79286 comp.lang.functional:7160 Date: 2001-08-02T08:28:20+00:00 List-Id: Richard Heathfield writes: >Just a small nit - there's nothing to stop you writing the first >compiler of a new language using an interpreter for that language. I >agree that you can't write the first *implementation* of a language in >itself, though. (Or at least, if you can, you are probably related to >Ken Thompson, Donald Knuth, Alan Turing, and perhaps Douglas Hofstadter >too.) The Melbourne Mercury compiler is the first (and so far only) implementation of the Mercury language, and it is written in Mercury. During the bootstrapping period, we confined ourselves to the intersection of Mercury and Prolog, and used a Prolog implementation to execute the compiler. None of us are related to any of those people as far as I know. :-) This is an exception from your rule, because the first "implementation" of Mercury was in Mercury as well as in Prolog. What counts is not whether the first implementation is in its own language, but whether it is (also) in a language that already has an implementation. The other exception to your rule is that one can write the first compiler for language X in language X itself, and hand-tranlate that to machine code. People don't usually call hand-translation an "implementation", and thus the compiler remains the first "implementation" of language X. Most people wouldn't call this approach feasible, but theoretically its feasibility is limited only by the hand-translator's patience ... :-) Zoltan Somogyi http://www.cs.mu.oz.au/~zs/ Department of Computer Science and Software Engineering, Univ. of Melbourne