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-Thread: 103376,c9d5fc258548b22a X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII Path: g2news1.google.com!news3.google.com!feeder1.cambriumusenet.nl!feed.tweaknews.nl!194.109.133.84.MISMATCH!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!feeder.news-service.com!85.214.198.2.MISMATCH!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: "J-P. Rosen" Newsgroups: comp.lang.ada Subject: Re: How do I write directly to a memory address? Date: Tue, 08 Feb 2011 14:12:25 +0100 Organization: Adalog Message-ID: References: <67063a5b-f588-45ea-bf22-ca4ba0196ee6@l11g2000yqb.googlegroups.com> <31c357bd-c8dc-4583-a454-86d9c579e5f4@m13g2000yqb.googlegroups.com> <05a3673e-fb97-449c-94ed-1139eb085c32@x1g2000yqb.googlegroups.com> <8r86vgFc3uU1@mid.individual.net> <19fh1chm74f9.11cws0j5bckze.dlg@40tude.net> <5d9bd120-4953-4fb1-a890-27267245e954@8g2000prt.googlegroups.com> <883b7161-15ee-4874-95bb-2e0273dab51d@y36g2000pra.googlegroups.com> <8r9iboFkfvU1@mid.individual.net> <14246472-9488-488a-8720-77b85b91707c@d23g2000prj.googlegroups.com> <8r9ouqFselU1@mid.individual.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Injection-Date: Tue, 8 Feb 2011 13:12:23 +0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="vslmL83UgSXHD8TS0/yPxA"; logging-data="16189"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+4nUr1t9MfiIWHgtF+pzW3" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 In-Reply-To: Cancel-Lock: sha1:92lYet3Ko57GjdaMsp6dmjXTxaI= Xref: g2news1.google.com comp.lang.ada:16987 Date: 2011-02-08T14:12:25+01:00 List-Id: Le 07/02/2011 22:54, Randy Brukardt a �crit : > Must have been. I remember hearing this story in college. And it supposely > was old then. I've always thought of it as a sort of urban legend. It is not. I was also bitten by this one when I was a student. The key is that FORTRAN IV required all parameter passing to be by reference. In a call like: CALL SP (4) how do you pass "4" by reference? You have to create a variable. The compiler was clever enough to create only one variable for each static value. But inside SP, nothing prevented you from modifying the formal... Fortunately, our machine had memory protection, and the compiler generated those pseudo-variables in read-only memory. So you had a memory access violation, which was easier to debug than when all 4's were changed to 5's -- --------------------------------------------------------- J-P. Rosen (rosen@adalog.fr) Adalog a d�m�nag� / Adalog has moved: 2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00