Imperative language:
- Imperative language facilities relation to machine architecture. Imperative languages are based on von Neumann architecture.
- The step-by-step procedure is used to change the state of the program.
- The output of the paradigm contains several statements and after finishing the execution the result will be stored.
Explanation of Solution
a.
A lexical error, detected by the scanner:
- Lexical error is error in which the compiler does not identify any valid token.
- This will occur during the lexical analysis phase.
- The following example uses C language and shows the lexical error that detected by the scanner.
//Defining the main() function
void main()
{
//Declaring the variables p and q
int p=10, q=20;
//Declaring the point variable x in char datatype
char *x;
//Assigning the value for x
x=15xpq;
}
- In the above example 15xpq is not a number or an identifier. So the lexical analyser through the lexical error.
Explanation of Solution
b.
A syntax error, detected by the parser:
- Syntax error occurs when a tokens or sequence of character is found.
- This will occur during the execution of the program.
- The following example uses C language and shows the syntax error that detected by the parser.
//Defining the main() function
void main()
{
//Printing statement
20 printf("Welcome");
}
- In the above example, 20 is not a proper token. So the syntax error is detected by the scanner.
Explanation of Solution
c.
A static semantic error, detected by semantic analysis:
- The static semantic error identified in some situation. They are type checking, variable declaration, subroutine call argument, and so on.
- This will occur during the execution of the program.
- The following example uses C language and shows the static semantic error that detected by the semantic analyser.
//Defining the main() function
void main()
{
int i;
i=a+b;
}
- In the above example, a and b are undeclared variable. So the static semantic error is detected by the sematic analyser.
Explanation of Solution
d.
A dynamic semantic error, detected by semantic analysis:
- The dynamic error occurs in certain situation. They are arithmetic errors, pointer are not dereferenced to valid object and so on.
- This will occur during the execution of the program.
- The following example uses C language and shows the dynamic semantic error that detected by the semantic analyser.
//Defining the main() function
void main()
{
int a=1,b=0,c;
c=a/b;
printf(c);
}
- In the above example, the value of b is 0 this will lead to division by zero error occurs. So the dynamic semantic error is detected by the sematic analyser.
Explanation of Solution
e.
An error that the compiler can neither catch nor easily generate code to catch:
- This due to invoking the undefined behaviour statements.
- The following example uses C language and shows the dynamic semantic error that detected by the semantic analyser.
//Defining the main() function
void main()
{
char *str="Hello world";
str[0]='h';
}
- In the above example, the statement str[0]='h' shows undefined-behaviour due to this the violation of program language occurs.
Want to see more full solutions like this?
Chapter 1 Solutions
Programming Language Pragmatics, Fourth Edition
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education