1.8 What Do We Mean by “Meaning”?

In this chapter and also the rest of the book, we have used and shall use phrases like: “the machine understands a particular language” or “the semantic analysis phase of a compiler finds out the meaning of statements of the input code”. It should be clearly understood that this anthropological (humanlike) characterization of what a machine is actually doing is for convenience only. The machine does not “understand” the “meaning” of what you, as a programmer, have specified. Perhaps this humanization of the machine behaviour comes from fond attachment to one of our most complex creations – a modern computing machine.

Suppose that you have visited Japan, but do not know Japanese language. Having enough money, you employ a Japanese interpreter, who will help you translating your work in Japan. You go to a shop with her to buy a few shirts. You convey your request to the interpreter and she translates it and conveys it to the shopkeeper. Not only the shopkeeper now knows your request but the interpreter also – she “knows” that you want to buy shirts. We say she internalizes the meaning of your request.

If, on the other hand, you carried with you an electronic pocket dictionary available now-a-days, which will actually speak out the Japanese version of input English sentences, that gadget will not “know” what you requested. It simply converts mechanically, without internalizing the meaning of what you said.

Take another example. Suppose your teacher writes on the black-board the following C statements:

x1 = (−b + sqrt(b * b − 4 * a * c))/(2 * a);
x2 = (−b − sqrt(b * b − 4 * a * c))/(2 * a);

you will most probably understand that he is talking about solutions of a quadratic equation ax2 + bx + c, apart from understanding what actual operations are being specified. To you the statements fit into a larger set of information. As far as a language translator is concerned, it has function to convert each on the arithmetical operations such as +, −, *, /sqrt into corresponding actions on the target machine that is all. It has no notion that these statements are solution of some equations, in fact, it does not “understand” words like “equation” or “solution”.

Thus when we say that a particular portion of a compiler finds out “meaning” of input code, we only mean that mechanisms to convert that code to corresponding target language construct is available within the compiler, i.e. how to specify corresponding actions in the target language. It is designed to detect a certain set of patterns and map them into another set of patterns. There is no claim that it is able to “understand” the “meaning” of any of those patterns.

Though some amount of success has been obtained in developing computer programs which find out “meaning” of given text or image input, this area of computer technology is still at a very nascent stage and definitely not yet included in the present day language translators.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.227.111.197