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 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Georg Bauhaus Newsgroups: comp.lang.ada Subject: Re: Things that OO programming lacks Date: Tue, 18 Nov 2014 11:14:20 +0100 Organization: A noiseless patient Spider Message-ID: References: <10d9w.55626$8w1.22302@fx12.iad> <150er0b62wsh3$.1xabmp81w5kdw.dlg@40tude.net> <1azsoc77wjhmi$.1grmnnlq033tz.dlg@40tude.net> <5yzci4a8snfg.1dfsqjyvneeym$.dlg@40tude.net> <1dqj0bjtbadcq$.150sjuwku2zbk$.dlg@40tude.net> Reply-To: nonlegitur@futureapps.de Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Tue, 18 Nov 2014 10:14:08 +0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="33633a1abe2226e6a86bc3125489a568"; logging-data="2113"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX190hQkVtW6b7dpFoeTE5ceTi5Mi6DL7icA=" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 In-Reply-To: <1dqj0bjtbadcq$.150sjuwku2zbk$.dlg@40tude.net> Cancel-Lock: sha1:I5hXtXNc4FrOJlWHMdWIuk88vcM= Xref: news.eternal-september.org comp.lang.ada:23515 Date: 2014-11-18T11:14:20+01:00 List-Id: On 17.11.14 22:05, Dmitry A. Kazakov wrote: > It means exactly nothing in the problem space [without the program > designer]. It [the source text] means a lot with the program designer present, also to a reader. Which is the text's important use in the programming situations described, which is also the reason source text should be expressive. >> Example: >> >> "Obj_1 exists while Obj_2 exists". > > In Ada *every* object exists when named! Try to write an Ada program where > you could name a non-existing object. Sure. And even unnamed objects can be known to likely co-exist. The statement X := S'(...) + T'(...); has two (Ada-wise) unnamed objects. But just names, somewhere in a program, plus things like calls using the names are not expressive enough for some quick answers that programmers need to give by referring to the source text. Which was the point. Sometimes there are no dedicated designators for things like these properties of the program. (As there are, approximately, for learning about the order in time of some intended effects from textual order of accept statements.) > Relationship between *objects*, if computable, is a Boolean-valued > *operation*: > > xRy -> Boolean Certainly every computation is Boolean valued operations if you reduce it to logic. But since for the reasons you named (when mentioning Post-Turing) we shy way from Boolean valued operations for everything, why not invent something that expresses what programmers need to known in order to make those answers? In particular, I am free to work with the assumption that a relationship is not just a binary relation, since the latter is determined, invisibly, by just the objects. Somehow. Can every relationship be expressed *well* by only producing enough dummy objects to help determine the relationship of other objects? Is this expressive, or does it add unnecessary complexity to program design, and to program analysis?