- Semantic: It represents the rules of the meaning of the domain.
- Semantic gap: It represents the difference between the semantic of two domains.
- Application domain: The designer expresses the ideas in terms related to application domain of the software.
- Execution domain: To implement the ideas of a designer, their description has to be interpreted in terms related to the execution domain of computer system.
- Specification gap: The gap between application and PL domain called specification and design gap or simply specification gap. Also, Specification gap is the semantic gap between two specifications of the same task.
- Execution gap: The gap between the semantic of programs written in different programming language.
Language processor [ Basic Terms ]
Similarly, Language processor is software which bridges a specification or execution gap.
- Language translator: Language translator bridges an execution gap to the machine language of a computer system.
- Detranslator: It bridges the same execution gap as language translator but in the reverse direction.
- Preprocessor: It is a language processor which bridges an execution gap but is not a language translator.
- Language migrator: It bridges the specification gap between two programming languages.
- Interpreter: An interpreter is a language processor which bridges an execution gap without generating a machine language program.
- Source language: The program which forms the input to a language processor is a source program. The language in which the source program written known source language.
- Target language: The output of a language processor is known as the target program. The language, to which the target program belongs to, is called target language. Problem-oriented language: Programming language features directly model the aspects of the application domain, which leads to very small specification gap. Moreover, Such a programming language can only use for a specific application; hence they called problem-oriented languages. Procedure-oriented language: Procedure oriented language provides general purpose facilities required in most application domains. So, Such a language independent of specific application domains and results in a large specification gap which has to bridged by an application designer.
- Forward Reference: A forward reference of a program entity is a reference to the entity in some statement of the program that occurs before the statement containing the definition or declaration of the entity.
- Language processor pass: A Language processor pass is the processing of every statement in a source program, or in its equivalent representation, to perform a language processing function (a set of language processing functions).
Intermediate representation (IR) [ Basic Terms ]
- Also, An intermediate representation is a representation of a source program which reflects the effect of some, but not all analysis and synthesis functions performed during language processing.
- An intermediate representation should have the following three properties:
1. Ease of use: It should be easy to construct the intermediate representation and analyze it.
2. Processing efficiency: Efficient algorithms should be available for accessing the data structures used in the intermediate representation.
3. Memory efficiency: The intermediate representation should be compact so that it does not occupy much memory.