|
1) What is the difference between a compiler and an interpreter?
A compiler is a program that can read a program in one language - the source language - and translate it into an equivalent program in another language – the target language and report any errors in the source program that it detects during the translation process.
Interpreter directly executes the operations specified in the source program on inputs supplied by the user.
2) What are the advantages of: (a) a compiler over an interpreter
a. The machine-language target program produced by a compiler is usually much faster than an interpreter at mapping inputs to outputs.
(b) an interpreter over a compiler?
b. An interpreter can usually give better error diagnostics than a compiler, because it executes the source program statement by statement.
3) What advantages are there to a language-processing system in which the compiler produces assembly language rather than machine language?
The compiler may produce an assembly-language program as its output, because assembly language is easier to produce as output and is easier to debug.
4.2.3 Design grammars for the following languages:
a) The set of all strings of 0s and 1s such that every 0 is immediately followed by at least 1. S -> SS | 1 | 01 | 
4.3.1 The following is a grammar for the regular expressions over symbols a and b only, using + in place of | for unions, to avoid conflict with the use of vertical bar as meta-symbol in grammars:
答案下载地址:https://pan.quark.cn/s/ff25396c5aa8
|
|