Semantic analysis (compilers): Difference between revisions

Content deleted Content added
Line 1:
{{cleanup-date|November 2005}}
 
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 logically follows the [[parsing]] phase, in which the parse tree is generated, and logically precedes the [[code generation]] phase, in which executable code is generated. (In a compiler implementation, it may be possible to fold different phases into one pass.) 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 so-called ''symbolic tables'' in which it stores what each symbol (variable names, function names, etc.) refers to.
 
----
 
In [[linguistics]], '''semantic 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. [[Figure of speech|Figures of speech]], being cultural, must also be eliminated. See [[translation]], [[structured semantic analysis]].
 
[[Category:Computing]]
{{compu-stub}}