انت هنا الان : شبكة جامعة بابل > موقع الكلية > نظام التعليم الالكتروني > مشاهدة المحاضرة

Type Checking

Share |
الكلية كلية العلوم للبنات     القسم قسم الحاسبات     المرحلة 3
أستاذ المادة اسراء هادي عبيد السلطاني       04/06/2018 08:28:58
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).
Type Checking

Introduction:-

The compiler must perform static checking (checking done at compiler time).This ensures that certain types of programming errors will be detected and reported. Example of static checks include.


Type checks:- A compiler should report an error if an operator is applied to an incompatible operand.

Flow-of-control checks:- Statements that cause flow of control to leave a construct must have some place to which to transfer flow of control. For example, branching to non-existent labels.

Uniqueness checks: - Objects should be defined only once. This is true in many languages.

Name-related checks: - Sometimes, the same name must appear two or more times. For example, in Ada the name of a block must appear both at the beginning of the block and at the end.

Type information gathered by a type checker may be needed when code is generated. For example, arithmetic operators may be different at the machine level for different types of operands (real and integer).


المادة المعروضة اعلاه هي مدخل الى المحاضرة المرفوعة بواسطة استاذ(ة) المادة . وقد تبدو لك غير متكاملة . حيث يضع استاذ المادة في بعض الاحيان فقط الجزء الاول من المحاضرة من اجل الاطلاع على ما ستقوم بتحميله لاحقا . في نظام التعليم الالكتروني نوفر هذه الخدمة لكي نبقيك على اطلاع حول محتوى الملف الذي ستقوم بتحميله .
الرجوع الى لوحة التحكم