Jump to content

Semantic analysis (compilers)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Andrewa (talk | contribs) at 19:35, 29 February 2004 (add linguistic meaning). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computer science, semantic analysis is a pass by a compiler that adds semantical information to the parse tree and performs certain checks based on this information. It follows the parsing phase, in which the parse tree is generated, and precedes the code generation phase, in which executable code is generated. Typical examples of semantical information that is added and checked is typing information (type checking) and the binding of variables and function names to their definitions (object binding). Sometimes also some early code optimization is done in this phase.

For this phase the compiler usually maintains socalled symbolic tables in which it stores what each symbol (variable names, function names, etc.) refers to.


In linguistics, symantic analysis is the process of unpacking clause, sentence and paragraph structure, and even the structure of the work as a whole, to remove features specific to the language in which it is written and also the culture in which it was intended to be read. Figures of speech, being cultural, must also be eliminated. See translation, structured semantic analysis.