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.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,bc1361a952ec75ca X-Google-Attributes: gid103376,public X-Google-Thread: 109fba,582dff0b3f065a52 X-Google-Attributes: gid109fba,public X-Google-ArrivalTime: 2001-08-16 19:27:41 PST Path: archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!canoe.uoregon.edu!arclight.uoregon.edu!enews.sgi.com!newshub2.rdc1.sfba.home.com!news.home.com!news1.rdc1.bc.home.com.POSTED!not-for-mail From: kaz@ashi.footprints.net (Kaz Kylheku) Newsgroups: comp.lang.ada,comp.lang.c++ Subject: Re: How Ada could have prevented the Red Code distributed denial of service attack. References: <3b690498.1111845720@news.worldonline.nl> <9kbu15$9bj@augusta.math.psu.edu> <9kbvsr$a02@augusta.math.psu.edu> <3B69DB35.4412459E@home.com> <9kp9n7$ivm$1@nh.pace.co.uk> <3B73337F.862F8D93@home.com> <9lb7hu$72h$1@norfair.nerim.net> <3B7C6977.3648F061@home.com> <3B7C79FA.89E62321@globetrotter.qc.ca> Organization: Psycho-Neurotic Institute for the Very, Very Nervous Reply-To: kaz@ashi.footprints.net User-Agent: slrn/0.9.6.3 (Linux) Message-ID: Date: Fri, 17 Aug 2001 02:27:41 GMT NNTP-Posting-Host: 24.68.85.82 X-Complaints-To: abuse@home.net X-Trace: news1.rdc1.bc.home.com 998015261 24.68.85.82 (Thu, 16 Aug 2001 19:27:41 PDT) NNTP-Posting-Date: Thu, 16 Aug 2001 19:27:41 PDT Xref: archiver1.google.com comp.lang.ada:12028 comp.lang.c++:83305 Date: 2001-08-17T02:27:41+00:00 List-Id: In article <3B7C79FA.89E62321@globetrotter.qc.ca>, Chris Wolfe wrote: >> But if you insist on calling sheep as goats, and goats as sheep, >> then I give up. You win. > >On the basis of that tirade Natural, Positive, String and virtually >every other useful object provided by Ada is not the Ada language. If >it's required by the standard, it's part of the language. In fact, when you write your own procedures or functions, you are extending the language to create a new dialect specific to your program. When I write a C program that has a function int foo(void), then I have a new dialect which includes standard things like getchar(), plus the name foo, which is understood to have a certain meaning within the small ``community'' of my program's modules. The distinction between library and ``language core'' may be somewhat easy to make in some languages, but there are others which defy it. For example, in a language like Lisp, it's not possible to pin down what the core is and what is built up using that core. It depends greatly on the implementor. To an extent this is true of languages like C. Some implementations of C treat certain functions like abs() or memcpy() effectively as built-in operators, rather than as external function calls to a library that is linked to the program. And the opposite can be true: the use of a built-in language feature like, say, a division operator can be translated into a call to a ``run-time support'' library. So ultimately, the division between ``library'' and ``core'' is simply a pragmatic one that is of interest primarily to implementors, who must decide how the language implementation is going to be organized. Bot are simply implementation artifacts which support the interpretation of programs written in a language.