Path: news.daimi.aau.dk!news.uni-c.dk!sunic!sunic.sunet.se!newsfeed.tip.net!news.seinf.abb.se!eua.ericsson.se!erinews.ericsson.se!cnn.exu.ericsson.se!convex!news.duke.edu!news.mathworks.com!uunet!in1.uu.net!ftpbox!mothost!newdelph.cig.mot.com!tamarin!crocker From: crocker@tamarin.cig.mot.com (Ron Crocker) Newsgroups: comp.object,comp.lang.beta,comp.lang.c++,comp.lang.eiffel,comp.lang.python,comp.lang.sather,comp.lang.smalltalk Subject: Re: Rapid Prototyping + statically-typed OOPLs? Date: 1 Aug 1995 18:42:53 GMT Organization: Cellular Infrastructure Group, Motorola Lines: 37 Message-ID: <3vlsjd$4fk@newdelph.cig.mot.com> References: <3v1vk1$bjp@newsbf02.news.aol.com> NNTP-Posting-Host: tamarin.rtsg.mot.com Xref: news.daimi.aau.dk comp.object:34610 comp.lang.beta:494 comp.lang.c++:132377 comp.lang.eiffel:9793 comp.lang.python:5289 comp.lang.sather:2042 comp.lang.smalltalk:25114 In article , wrote: >In article Ian.Mitchell@sunderland.ac.uk (Ian Mitchell) writes: >| Smalltalk may indeed make C++ look incredibly verbose; this >| is not my point. My point is that C++ can be used for RP >| purposes because it is easy to extract a call tree for the >| methods [...] > >It is? Care to demonstrate? As far as I can tell, determining who >calls who in a C++ program requires at least as much effort as a full >compiler front end. > >Note that just looking for ".name(" and "->name(" tells you very >little about what code actually gets invoked. You need to know >whether "name" refers to a virtual or non-virtual member function. If >it's a non-virtual function, you need to know the type of the thing to >the left of the member operator. And then, of course, there are all >the binary operators that you won't catch at all without a full >syntactic analysis. And there are overloaded and template functions >and template specializations, which can make it very hard to figure >out what piece of code corresponds to a particular function call. And that's the static semantics. The dynamic semantics come into play when determining *which* virtual function *might* be called. It's actually less useful to know the entire set of candidate virtual functions than the (often shorter) possible functions based on data flow analysis. >In any case, I really don't see what a call tree has to do with RP. Me too - can you explain further? -- Ron Crocker Motorola Cellular Infrastructure Group (708) 632-4752 [FAX: (708) 632-3113 <- NOTE: new fax number] crocker@mot.com