I should probably be slower to criticize a textbook that's in its 11th edition. Clearly, quite a few scholarly folks think it's a good one. However, I'm really having trouble with the gap between the text and the reality of programming. Maybe that's not a gap that people teaching Language Theory care about, but they should. Programming languages are first and foremost tools. They have pretty much no merit in and of themselves. If they don't help you get the job done, they are useless.
Tonight's example is the definition of a subprogram. Among the criteria: the calling program is suspended and the called program returns control to the caller. Really? An asynchronous call isn't a subprogram? What the hell is it then? My prof didn't have a really good answer for that, either. He just said that these definitions weren't in the context of multithreaded programs. Well, that rules out just about every UI written in the last 20 years. Not a particularly useful working definition in my mind.
No comments:
Post a Comment