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-Thread: a07f3367d7,dea2d62ab1462538 X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!feeder.news-service.com!newsfeed1.swip.net!uio.no!news.tele.dk!news.tele.dk!small.news.tele.dk!bnewspeer01.bru.ops.eu.uu.net!bnewspeer00.bru.ops.eu.uu.net!emea.uu.net!newsfeed.arcor.de!newsspool4.arcor-online.net!news.arcor.de.POSTED!not-for-mail From: "Dmitry A. Kazakov" Subject: Re: Writing an Operating System in Ada Newsgroups: comp.lang.ada User-Agent: 40tude_Dialog/2.0.15.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Reply-To: mailbox@dmitry-kazakov.de Organization: cbb software GmbH References: <9oyblld05omh$.1dzhmyoseeb7x$.dlg@40tude.net> <414945fd-8ed5-4f42-a237-0685602332b3@f5g2000yqh.googlegroups.com> <4176d6eb-fefe-4bd7-9378-55a33a12d458@e37g2000yqn.googlegroups.com> <5908c8c1-9a81-4877-a4da-827521b01263@p24g2000yqm.googlegroups.com> <1p8z3tc1d5rw6.jryi563tb4j5.dlg@40tude.net> <75592fbb-f9e8-4e4e-ae23-e63979f8925a@q4g2000yqm.googlegroups.com> <14ipqwq487sr.1gczeyh5apq5a$.dlg@40tude.net> <4b5444ab$0$7615$9b4e6d93@newsspool1.arcor-online.net> <1l74z2ijrog3d$.1af6vpgc2qq8c$.dlg@40tude.net> <4b547c92$0$6565$9b4e6d93@newsspool4.arcor-online.net> <4b5497a1$0$7621$9b4e6d93@newsspool1.arcor-online.net> Date: Mon, 18 Jan 2010 19:08:31 +0100 Message-ID: NNTP-Posting-Date: 18 Jan 2010 19:08:30 CET NNTP-Posting-Host: ed93d86d.newsspool4.arcor-online.net X-Trace: DXC=1hk0;oZnAfPHigV@eW57PQ4IUK On Mon, 18 Jan 2010 18:17:20 +0100, Georg Bauhaus wrote: > Dmitry A. Kazakov schrieb: > >> There is a common ancestor for both types. What you probably had in mind >> was a conversion is between types from independent hierarchies rooted on >> different hosts. That normally should not be needed. > > Well, I learned from the discussion that independent roots of > blobs' types it is a quite common case. No. It is rather like Node A: Numeric_Type <-- A_Integer_Type || Node B: Numeric_Type <-- B_Integer_Type (implementation) B_Integer_Type is an invisible ad-hoc implementation of A_Integer_Type. Node B uses the object from A as Numeric_Type'Class known to both nodes. If some type is unknown to B, there is no way to write a program in terms of this type. If you had a program for some unrelated type, you could not convert any object to this type. It would be a type error. An ability for example to convert Float to Integer is based on their relationship, each can be considered a subtype of another. This relationship is given, known on each node. It is possible to introduce ad-hoc subtypes, but then it is the programmer's responsibility to provide conversions, because there is no way to deduce them. This is the reason why a powerful type system is needed. You will need to describe richer relationships between types than contemporary OOPL can. Without these relationships the system would become unusable or else degrade to the low-level read/write interfaces. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de