Error Handling
Error Handling
COMPILER
DESIGN
Name: Kashish Ali Khan
Roll No.: 2100290100086
CONTENTS
• Phases of a Compiler
• Error Handling
• What is an error?
• Types of Error
• Classification of Compile-time error –
• Finding error or reporting an error
• Error Recovery
• Advantages of Error Handling
• Disadvantages of error handling
PHASES OF A
COMPILER
The tasks of the Error Handling process are to detect
each error, report it to the user, and then make some
Errors in the program should be detected and reported by the parser. Whenever an
error occurs, the parser can handle it and continue to parse the rest of the input.
Although the parser is mostly responsible for checking for errors, errors may occur
at various stages of the compilation process.
So, there are many types of errors and some of these are:
• logic error
• run-time error
• compile-time error
TYPES OF
ERROR
• Logic errors occur when programs operate incorrectly
but do not terminate abnormally (or crash). Unexpected
or undesired outputs or other behaviour may result from
a logic error, even if it is not immediately recognized as
such.
• A run-time error is an error that takes place during the
execution of a program and usually happens because of
adverse system parameters or invalid input data. The
lack of sufficient memory to run an application or a
memory conflict with another program and logical error
is an example of this.
• Compile-time errors rise at compile-time, before the
execution of the program. Syntax error or missing file
reference that prevents the program from successfully
compiling is an example of this.
CLASSIFICATION • Lexical : This includes misspellings of identifiers,
OF COMPILE-TIME keywords or operators
• Syntactical : a missing semicolon or unbalanced
ERROR – parenthesis
• Semantical : incompatible value assignment or
type mismatches between operator and operand
• Logical : code not reachable, infinite loop.
FINDING ERROR
Viable-prefix is the property of a parser that allows
OR REPORTING early detection of syntax errors.
• Complexity: Implementing error handling increases the intricacy of compiler development, testing,
and maintenance, posing challenges in ensuring its correctness and debugging.
• Performance Impact: Error handling mechanisms, especially time-consuming ones, can reduce
compiler performance, leading to longer compilation times and increased resource consumption.
• Extended Development Time: Creating an effective error handling system demands extensive
testing and debugging, elongating the development process.
• Error Detection Difficulty: While designed to catch errors, error handling might obscure certain
issues, complicating error identification. If the mechanism fails, it could even miss errors entirely,
further complicating the detection process.
THANK YOU