> There is none. That's my point. It doesn't make this distinction. It has > one mechanism (call/return; assembly statements are quite similar to what > keywords are in C, for example: the element of the language), which is used > to create indistinguishable functions and procedures and subroutines > (however you want to call them). That is one of the reason I thing software and firmware developers should learn how compilers work and what code they generate. This is not the first time here in this subject talking about how a C would compile code and non-assembly minded developers tend to get it wrong - or just simplify it. A function in C (and virtually all HLLs) has prologues and epilogues that initialize the function and then when returns de-initialize it. Also many things depending on call conventions for example whenever the epilogue cleans the stack or that's the duty of the caller - therefore sometimes even the calling mechanism is not just a CALL instruction in the compiled code. Tamas On Sun, Oct 19, 2008 at 1:00 PM, Gerhard Fiedler wrote: > Olin Lathrop wrote: > > > Gerhard Fiedler wrote: > >> failed to bring up any kind of evidence besides a few > >> examples of really old languages that do make the distinction. > > > > Only one is required for a existance proof. I mentioned a few others for > > good measure. > > I really think you should do some reading of what other people write, > rather than building your strawmen out of nothing. Nobody ever said that > the distinction doesn't exist. But you claimed that there is a distinction > that is relevant for the discussion at hand, and that it is of general > relevance (that is, outside the languages that make it). > > For example, I haven't ever seen (in a generally relevant computer science > publication) programming languages classified by whether or not they make > that distinction. Now I don't doubt that there is some obscure paper about > this, but the mere fact that you can't bring up anything from computer > science (not just some syntax examples) that would support your claim tells > me that you claimed something that's not much more than an opinion of > yours. This may be something extremely important to you, but it isn't to > the world at large. > > > You keep mentioning assembly language, but that's irrelevant. Strictly > > speaking there are no subroutines in assembly, only call and return > > instructions. You may build things with these instructions you call > > subroutines, but that's your abstraction, not the language's. Where in > > MPASM, for example, is the subroutine or function definition operator, > > keyword, or whatever? > > There is none. That's my point. It doesn't make this distinction. It has > one mechanism (call/return; assembly statements are quite similar to what > keywords are in C, for example: the element of the language), which is used > to create indistinguishable functions and procedures and subroutines > (however you want to call them). > > Using a label and a return statement ("keyword") is no different (albeit on > a different abstraction level) from using the Procedure keyword to create a > subroutine. > > Gerhard > > -- > http://www.piclist.com PIC/SX FAQ & list archive > View/change your membership options at > http://mailman.mit.edu/mailman/listinfo/piclist > -- Rudonix DoubleSaver http://www.rudonix.com -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist