|
Compiler construction problems regularly pop up -- unexpectedly and accidentally -- in projects that have absolutely nothing to do with compiler construction projects. If nobody on the project is aware of this, you can be pretty sure that project costs will start ballooning. What's more, if you try to solve such problems in other ways, you can be pretty sure that the solution will not work properly. In order words, it is absolutely necessary to recognize when any of the problems you come across, can be phrased as a compiler technology problem, even if you cannot or do not want to use the construction toolset. It will prevent you from wasting your time trying alternative solutions that simply cannot work. Really. If you don't approach a problem that happens to be a compiler construction problem with the correct toolset, you can be pretty sure that the solution will be full of bugs, to no end. It is not that you can choose whether a problem is a compiler construction problem or not. If the problem pops up, it simply is a compiler construction problem; whether you like it or not. It is similar to bumping accidentally into problems that simply happen to be computationally NP-complete. If you are unaware of this, you may be tempted to go down a road that can only lead to failure. You'd better quickly recognize that the problems at hand, are NP-complete, and act accordingly, before the project budget starts spiralling out of control. The larger the project, the more likely that an unavoidable compiler construction problem pops up. Given the fact that many developers have no clue whatsoever on how to recognize and how to solve a compiler construction problem, this is another one of the myriad of reasons why large projects have a very strong propensity to fail. The unforgiving cruelty of Brook's Law, already threatens large projects to no end. And yes, there are many other reasons why you can easily tell beforehand that the 50 million dollars budgeted, will be wasted. Failure to recognize the need for applying compiler construction techniques, is just one of them.
|