On Sep 23, 2010, at 11:40 AM, FERENC KOVACS wrote:
4. Semantic analysis (compiler) is the phase in which the compiler adds semantic information
Someone correct me if I'm wrong here, but a compiler REMOVES any remaining semantic information. How much useful semantic information there is in source code is open to debate. In the programs I've worked with, the business purpose (meaning) and been stripped out by the time it gets to code.
If you have PROGRAM -> COMPILER -> EXECUTABLE/LOAD MODULE, I would argue that all the semantics have been removed. You're down to base & displacement information & totally nonsensical machine labels.
These above will explain why I think semantic analysis is the right term for looking for meaning in NL texts
If we're dealing with SOFTWARE PROGRAMS, I would argue we need to acknowledge the existence of UNL (unnatural language).
The reason that UNL needs to be at the table is that global society is on a track of being totally dependent on software driven processes. There is typically minimal organizational understanding of systems & processes that seem to work well enough. The baby-boomers who've built these systems are about to retire. When your "walking documentation" moves to Florida, the organization is now playing a form of slow-motion Russian roulette. Sooner or later older systems break, malfunction or need to be modified... who's going to fix them?
Think EM Forrester's "The Machine Stops" http://en.wikipedia.org/wiki/The_Machine_Stops
This week I stumbled across a story... from some sort of Y2K triggered event, 66,000 people were declared deceased by a system. Evidently presenting yourself as still alive is a rather difficult task, once "the system" has declared you dead. If this story is true (yet to be fully verified), I'd argue that it's an excellent example of lack of understanding. A clearer grasp of the UNL in/around that system might have helped prevent the problem.
John Sowa's experience with reverse engineering a tiny 1.5M LoC system (it's not unusual for organizations to have 100s+ M LoC) FROM THE DOCUMENTATION is a great case. I'd argue that actually having useful, quasi accurate human readable documentation is a rarity. Normally the code is the only accurate documentation. Again, back to the... "what does the UNL MEAN?"