RE: Procedure types

From: Campbell, Robert D (UK Edinburgh) <"Campbell,>
Date: Mon, 22 Nov 2004 08:53:20 +0000

----boundary-LibPST-iamunique-760913949_-_-
Content-type: text/plain


Fyodor

Let me summarise the advantages of objects over procedure
variables you have pointed out (my words, not yours):

Advantage 1. "If someone unloads some of your modules while
you are still using them the o-o approach can terminate
(crash?) more gracefully. This doesn't actually work, but it
could work in theory if someone rewrote the compiler and
linker."

Advantage 2. "The documentation tools are just as convenient.
They aren't actually, but in theory they could be rewritten
to be as convenient."


Somehow I suspect that the average working engineer or
physicist would not be impressed.


Actually I don't believe advantage 2. I gave the example of
TextModels.dir.New. Since we know that dir is NOT (directly)
of type TextModels.Directory (since that is ABSTRACT) it is
often IMPOSSIBLE to find the correct Docu file for New other
than at run time. I guess that M.Cube could be a final type.
But this means that the user of the variable M.cube needs to
check the exact declaration of the type M.Cube just to
ascertain if the documentation search tool has a chance of
finding the correct Docu/Source/Interface for the procedure
M.Cube.Eval (I include interface because an extension may
have narrowed the return type).

There are no such subtleties to worry about with the function
R.Cube.

All this discussion convinces me even more that if a problem
is simple enough to be implemented with a function then a
function is the simple way to implement it.


So why is there a movement to ban procedure types at all?
I think it is down to history. Oberon used them to simulate
type bound procedures and allow polymorphism to be implemented.
When type bound procedures (methods) were introduced in
Oberon-2 it made THIS USE of procedure variables obsolete.
But don't ban all uses; that would be to throw out the baby
with the bathwater.


A comment on the argument that "Procedure types are redundant
and so should be eliminated". Where does this stop - when we
are all using Turing machines?


Regards
Robert
 


********************************************************************
This email and any attachments are confidential to the intended
recipient and may also be privileged. If you are not the intended
recipient please delete it from your system and notify the sender.
You should not copy it or use it for any purpose nor disclose or
distribute its contents to any other person.
********************************************************************
--------------------------------------------

To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xy

To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.

Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy

Current posting policy:

a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.

b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.


----boundary-LibPST-iamunique-760913949_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIFxwYXINCkZ5b2RvclxwYXINClxwYXINCkxldCBt
ZSBzdW1tYXJpc2UgdGhlIGFkdmFudGFnZXMgb2Ygb2JqZWN0cyBvdmVyIHByb2NlZHVyZVxwYXIN
CnZhcmlhYmxlcyB5b3UgaGF2ZSBwb2ludGVkIG91dCAobXkgd29yZHMsIG5vdCB5b3Vycyk6XHBh
cg0KXHBhcg0KQWR2YW50YWdlIDEuICJJZiBzb21lb25lIHVubG9hZHMgc29tZSBvZiB5b3VyIG1v
ZHVsZXMgd2hpbGVccGFyDQp5b3UgYXJlIHN0aWxsIHVzaW5nIHRoZW0gdGhlIG8tbyBhcHByb2Fj
aCBjYW4gdGVybWluYXRlXHBhcg0KKGNyYXNoPykgbW9yZSBncmFjZWZ1bGx5LiBUaGlzIGRvZXNu
J3QgYWN0dWFsbHkgd29yaywgYnV0IGl0XHBhcg0KY291bGQgd29yayBpbiB0aGVvcnkgaWYgc29t
ZW9uZSByZXdyb3RlIHRoZSBjb21waWxlciBhbmRccGFyDQpsaW5rZXIuIlxwYXINClxwYXINCkFk
dmFudGFnZSAyLiAiVGhlIGRvY3VtZW50YXRpb24gdG9vbHMgYXJlIGp1c3QgYXMgY29udmVuaWVu
dC5ccGFyDQpUaGV5IGFyZW4ndCBhY3R1YWxseSwgYnV0IGluIHRoZW9yeSB0aGV5IGNvdWxkIGJl
IHJld3JpdHRlblxwYXINCnRvIGJlIGFzIGNvbnZlbmllbnQuIlxwYXINClxwYXINClxwYXINClNv
bWVob3cgSSBzdXNwZWN0IHRoYXQgdGhlIGF2ZXJhZ2Ugd29ya2luZyBlbmdpbmVlciBvclxwYXIN
CnBoeXNpY2lzdCB3b3VsZCBub3QgYmUgaW1wcmVzc2VkLlxwYXINClxwYXINClxwYXINCkFjdHVh
bGx5IEkgZG9uJ3QgYmVsaWV2ZSBhZHZhbnRhZ2UgMi4gSSBnYXZlIHRoZSBleGFtcGxlIG9mXHBh
cg0KVGV4dE1vZGVscy5kaXIuTmV3LiBTaW5jZSB3ZSBrbm93IHRoYXQgZGlyIGlzIE5PVCAoZGly
ZWN0bHkpXHBhcg0Kb2YgdHlwZSBUZXh0TW9kZWxzLkRpcmVjdG9yeSAoc2luY2UgdGhhdCBpcyBB
QlNUUkFDVCkgaXQgaXNccGFyDQpvZnRlbiBJTVBPU1NJQkxFIHRvIGZpbmQgdGhlIGNvcnJlY3Qg
RG9jdSBmaWxlIGZvciBOZXcgb3RoZXJccGFyDQp0aGFuIGF0IHJ1biB0aW1lLiBJIGd1ZXNzIHRo
YXQgTS5DdWJlIGNvdWxkIGJlIGEgZmluYWwgdHlwZS5ccGFyDQpCdXQgdGhpcyBtZWFucyB0aGF0
IHRoZSB1c2VyIG9mIHRoZSB2YXJpYWJsZSBNLmN1YmUgbmVlZHMgdG9ccGFyDQpjaGVjayB0aGUg
ZXhhY3QgZGVjbGFyYXRpb24gb2YgdGhlIHR5cGUgTS5DdWJlIGp1c3QgdG9ccGFyDQphc2NlcnRh
aW4gaWYgdGhlIGRvY3VtZW50YXRpb24gc2VhcmNoIHRvb2wgaGFzIGEgY2hhbmNlIG9mXHBhcg0K
ZmluZGluZyB0aGUgY29ycmVjdCBEb2N1L1NvdXJjZS9JbnRlcmZhY2UgZm9yIHRoZSBwcm9jZWR1
cmVccGFyDQpNLkN1YmUuRXZhbCAoSSBpbmNsdWRlIGludGVyZmFjZSBiZWNhdXNlIGFuIGV4dGVu
c2lvbiBtYXlccGFyDQpoYXZlIG5hcnJvd2VkIHRoZSByZXR1cm4gdHlwZSkuXHBhcg0KXHBhcg0K
VGhlcmUgYXJlIG5vIHN1Y2ggc3VidGxldGllcyB0byB3b3JyeSBhYm91dCB3aXRoIHRoZSBmdW5j
dGlvblxwYXINClIuQ3ViZS5ccGFyDQpccGFyDQpBbGwgdGhpcyBkaXNjdXNzaW9uIGNvbnZpbmNl
cyBtZSBldmVuIG1vcmUgdGhhdCBpZiBhIHByb2JsZW1ccGFyDQppcyBzaW1wbGUgZW5vdWdoIHRv
IGJlIGltcGxlbWVudGVkIHdpdGggYSBmdW5jdGlvbiB0aGVuIGFccGFyDQpmdW5jdGlvbiBpcyB0
aGUgc2ltcGxlIHdheSB0byBpbXBsZW1lbnQgaXQuXHBhcg0KXHBhcg0KXHBhcg0KU28gd2h5IGlz
IHRoZXJlIGEgbW92ZW1lbnQgdG8gYmFuIHByb2NlZHVyZSB0eXBlcyBhdCBhbGw/XHBhcg0KSSB0
aGluayBpdCBpcyBkb3duIHRvIGhpc3RvcnkuIE9iZXJvbiB1c2VkIHRoZW0gdG8gc2ltdWxhdGVc
cGFyDQp0eXBlIGJvdW5kIHByb2NlZHVyZXMgYW5kIGFsbG93IHBvbHltb3JwaGlzbSB0byBiZSBp
bXBsZW1lbnRlZC5ccGFyDQpXaGVuIHR5cGUgYm91bmQgcHJvY2VkdXJlcyAobWV0aG9kcykgd2Vy
ZSBpbnRyb2R1Y2VkIGluXHBhcg0KT2Jlcm9uLTIgaXQgbWFkZSBUSElTIFVTRSBvZiBwcm9jZWR1
cmUgdmFyaWFibGVzIG9ic29sZXRlLlxwYXINCkJ1dCBkb24ndCBiYW4gYWxsIHVzZXM7IHRoYXQg
d291bGQgYmUgdG8gdGhyb3cgb3V0IHRoZSBiYWJ5XHBhcg0Kd2l0aCB0aGUgYmF0aHdhdGVyLlxw
YXINClxwYXINClxwYXINCkEgY29tbWVudCBvbiB0aGUgYXJndW1lbnQgdGhhdCAiUHJvY2VkdXJl
IHR5cGVzIGFyZSByZWR1bmRhbnRccGFyDQphbmQgc28gc2hvdWxkIGJlIGVsaW1pbmF0ZWQiLiBX
aGVyZSBkb2VzIHRoaXMgc3RvcCAtIHdoZW4gd2VccGFyDQphcmUgYWxsIHVzaW5nIFR1cmluZyBt
YWNoaW5lcz9ccGFyDQpccGFyDQpccGFyDQpSZWdhcmRzXHBhcg0KUm9iZXJ0XHBhcg0KIFxwYXIN
ClxwYXINClxwYXINCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqXHBhcg0KVGhpcyBlbWFpbCBhbmQgYW55IGF0dGFjaG1l
bnRzIGFyZSBjb25maWRlbnRpYWwgdG8gdGhlIGludGVuZGVkXHBhcg0KcmVjaXBpZW50IGFuZCBt
YXkgYWxzbyBiZSBwcml2aWxlZ2VkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWRccGFyDQpy
ZWNpcGllbnQgcGxlYXNlIGRlbGV0ZSBpdCBmcm9tIHlvdXIgc3lzdGVtIGFuZCBub3RpZnkgdGhl
IHNlbmRlci5ccGFyDQpZb3Ugc2hvdWxkIG5vdCBjb3B5IGl0IG9yIHVzZSBpdCBmb3IgYW55IHB1
cnBvc2Ugbm9yIGRpc2Nsb3NlIG9yXHBhcg0KZGlzdHJpYnV0ZSBpdHMgY29udGVudHMgdG8gYW55
IG90aGVyIHBlcnNvbi5ccGFyDQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxwYXINCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KXHBhcg0KVG8gdW5zdWJzY3JpYmUgZnJvbSB0
aGlzIG1haWxpbmcgbGlzdCwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZCAidW5z
dWJzY3JpYmUiIHRvOlxwYXINCiAgIGJsYWNrYm94LXJlcXVlc3RAb2Jlcm9uLmNoXHBhcg0KXHBh
cg0KVG8gZ2V0IGEgbGlzdCBvZiB2YWxpZCBlLW1haWwgY29tbWFuZHMgYW5kIGluc3RydWN0aW9u
cyBvbiB0aGVpciB1c2FnZSwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZCAiaGVs
cCIgdG8gdGhlIGFib3ZlIGFkZHJlc3MuXHBhcg0KXHBhcg0KU2VuZCBhbnkgcHJvYmxlbSByZXBv
cnRzIG9yIHF1ZXN0aW9ucyByZWxhdGVkIHRvIHRoaXMgZW1haWwgbGlzdCB0byB0aGUgbGlzdCBv
d25lciBhdFxwYXINCiAgIG93bmVyLWJsYWNrYm94QG9iZXJvbi5jaFxwYXINClxwYXINCkN1cnJl
bnQgcG9zdGluZyBwb2xpY3k6XHBhcg0KXHBhcg0KYSkgVG8gcG9zdCB5b3Ugc2hvdWxkIHVzZSB0
aGUgc2FtZSBhZGRyZXNzIGJ5IHdoaWNoIHlvdSBhcmUgc3Vic2NyaWJlZCB0byB0aGUgbWFpbGlu
ZyBsaXN0LiBUaGF0IHdheSwgdGhlIGxpc3Qgc2VydmVyIHdpbGwgcmVjb2duaXplIHlvdSBhcyBz
dWJzY3JpYmVyIGFuZCBmb3J3YXJkIHlvdXIgcG9zdGluZyBpbW1lZGlhdGVseSwgd2l0aG91dCBj
cmVhdGluZyBhbnkgb3ZlcmhlYWQuXHBhcg0KXHBhcg0KYikgSWYsIGZvciBzb21lIHJlYXNvbiwg
eW91IGNhbm5vdCBwb3N0IGZyb20gdGhlIGFkZHJlc3MsIGJ5IHdoaWNoIHlvdSBhcmUgc3Vic2Ny
aWJlZCwgeW91ciBtZXNzYWdlIHdpbGwgYmUgbW9kZXJhdGVkIHRvIGF2b2lkIHNwYW0uIFBsZWFz
ZSB1bmRlcnN0YW5kIHRoYXQgbW9kZXJhdGlvbiB3aWxsIG9mdGVuIGNhdXNlIHNvbWUgZGVsYXks
IGluIHBhcnRpY3VsYXIgb3ZlciB3ZWVrZW5kcyBvciBob2x5ZGF5c319AG1wbGVt


----boundary-LibPST-iamunique-760913949_-_---
Received on Mon Nov 22 2004 - 09:53:20 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:30 UTC