ISSUES IN LANGUAGE TRANSLATION
A programmer code a program using subprograms, statements, conditions, declaration etc. But a translator looks programming languages as a collection of symbols made up of thousands of characters. During translation a program is analyzed character by character.
During language translation issues occurs in the following way:
- Lexical analysis
- Syntax analysis
- Semantic analysis
- Symbol table
- Error handler
1) Lexical analysis: In this phase isuue is with grouping of charcters in to meaningfull words known as lexems. Here meaningfull words means identifiers, numbers, keywords, comments etc. The basic units means characters on which this analysis is performed known as tokens.
Lexical analyzer must analyze the type of each lexems and with a type tag that lexems is sends for higher analysis i.e, syntax analysis. This phase requires much translation time as compared to other phases.
2) Syntax analysis: Here syntax of lexems are checked using parse/syntax tree. Structures defined by the programmer are validated here. If getting any error during language translation in this phase, compiler throws a syntax error.
3) Semantic analysis: Semantic analysis judges whether the syntax structure constructed in the source program derives any meaning or not.
4) Symbol table: Symbol Table is an important data structure created and maintained by the compiler. All the phases uses symbol table as follows:
- Lexical Analysis: Creates new table entries in the symbol table, like tokens.
- Syntax Analysis: Adds information regarding attribute type, scope etc in the table.
- Semantic Analysis: Uses available information in the table to check for semantics i.e. to verify that expressions and assignments are semantically correct(type checking) and update it accordingly.
- Intermediate Code generation: Refers symbol table for knowing how much and what type of run-time is allocated and table helps in adding temporary variable information.
- Code Optimization: Uses information present in symbol table removing unnecessary codes from Intermediate codes.
- Target Code generation: Generates code by using address information of identifier present in the table.
5) Error handler: The tasks of the Error Handler is to detect each error, report it to the user, and then recover and implement them to handle error.
During this process processing time of program should not be slow. An Error is the blank entries in the symbol table.
- Sebesta,”Concept of programming Language”, Pearson Edu
- Louden, “Programming Languages: Principles & Practices” , Cengage Learning
- Tucker, “Programming Languages: Principles and paradigms “, Tata McGraw –Hill.
- E Horowitz, “Programming Languages”, 2nd Edition, Addison Wesley