Program analysis in Programming Languages

Program analysis refers to the problem of static prediction of the properties of the dynamic performances of the program. There are different type based analyses.
·         Lexical analysis: Lexical analysis of phrases of different languages can be handled automatically using dictionaries and parallel compilation, by request translation regular semantic knowledge of the source and target language, especially when a word in the source sentence unusual, unclear or unknown to the translator, we can still make use of natural language understanding to distract the rest of the terms of use of the word and attempt to analyze because lexical relations.
·         Syntax Analysis: Syntactic aspects of the language that we cover how to construct correct sentences and shallow rules governing the organization, namely with regard to grammar and the architectural relationships between words.
·        Semantic Analysis:
Semantic analysis is to provide the task acknowledgment and statements of a semantically correct program i.e. their meaning is clear and consistent the manner in which data and control structures species however is to be used. Semantic analysis typically includes:
Type of control:  Type Verification is the process of verifying that any operation carried out in a program the type of system respects the language. Data types are used in a way that is consistent with its meaning. Only compatible data types but the task specified for them and so on.
Label Inspection:  A reference label program should exist.
Flow control checks:  Control structures should be used correctly.
Static vs. Dynamic Semantics
Static semantics of a language is indirect refers to the importance of programs during implementation. The name comes from the fact that specifications can be checked at compile time. Static type checking is done at compile time. The information on the type checker is needed obtained by declarations and stored in a master symbol table. When this information collected is checked involved in each type of operation.
Dynamic Semantics refers under expressions, statements and other program units. In contrast to the static semantics, they can’t be controlled at compile time and can only be checked runtime. Dynamic type control is carried out by recording the types of information for each data location during execution.