Programming Languages Chapter 1 Review
Which produces faster program execution, a compiler or a pure interpreter?
A compiler will produce faster program execution due to the fact that translating high level language to machine code is substantially more complex.
Why is the VAX instruction design orthogonal?
Because the instruction for 32 bit integer addition of the farm where each of the op i's can refer to either a register or a memory location.
How does the execution of a machine code program on a von Neumann architecture computer occur?
By 1950, the basic architecture of digital computers had been established (and described nicely in John von Neumann's EDVAC report). A computer's machine language is a reflection of its architecture, with its assembly language adding a thin layer of abstraction for the purpose of making easier the task of programming. When FORTRAN was being designed in the mid to late 1950's, one of the prime goals was for the compiler to generate code that was as fast as the equivalent assembly code that a programmer would produce "by hand". To achieve this goal, the designers —not surprisingly— simply put a layer of abstraction on top of assembly language, so that the resulting language still closely reflected the structure and operation of the underlying machine. To have designed a language that deviated greatly from that would have been to make the compiler more difficult to develop and less likely to produce fast-running machine code.
Which is the first successful high-level programming language for business?
COBOL
Why is a list of programming language evaluation criteria for the development of software controversial?
Criteria is better precisely defined nor exactly measurable
Which programming language for scientific applications was the first to be used successfully?
Forton
Which is the most popular markup language for Web development?
HTML
Why is it useful for a programmer to have the ability to learn new languages, even though he or she may have a good knowledge of a number of programming languages?
Increased capacity to express ideas, better understanding of the significance of implementing, better use of languages already known, overall advancement of computing
Why does too much orthogonality cause problems?
Intuition leads one to ascribe certain advantages to orthogonality: the reduction in the number of special rules or exceptions to rules should make a language easier "to describe, to learn, and to implement" — in the words of the Algol 68 report. On the other hand, strict application of the orthogonality principle may lead to constructs which are conceptually obscure when a rule is applied to a context in an unusual combination. Likewise the application of orthogonality may extend the power and generality of a language beyond that required for its purpose, and thus may require increased conceptual ability on the part of those who need to learn and use it.
In which programming language were most of the AI applications developed prior to 1990?
LISP
How does the overall simplicity of a programming language affect its readability?
Number of basic constructs/features, feature multiplicity, operator overloading.
What are the advantages in implementing a language with a pure interpreter?
One of the advantages of implementing a language with a pure interpreter is easy implementation of many source-level debugging operations, because all run-time errors can refer to the source-level units. An example of this is an array index is found to be out of rang.
What are the three fundamental features of an object-oriented programming language?
Polymorphism, inheritance, and encapsulation
What language was the first to support the three fundamental features of object-oriented programming?
Smalltalk
How is the total cost of a programming language calculated?
Smalltalk, developed by Goldberg and Robson in 1989.
Explain how "writability" is used as a measure of how easily a language can be used to create programs.
The easier a program is to write, the more likely it is to be correct. Readability affects writability in both development and maintenance phases of the software cycle.
What are the three general methods of implementing a programming language?
Three general methods of implementing a programming language are compilation, pure interpretation, and hybrid implementation.
Why is too much orthogonality a detriment to "writability"?
Too much orthogonality can be detrimental: if all combinations are meaningful, errors are difficult to detect
What two programming language deficiencies were discovered as a result of the research in software development in the 1970s?
Two programming language deficiencies were discovered as a result of the research in software development in the 1970s were called top-down design and stepwise refinement.
What is type checking?
Type checking is a program analysis that verifies something about the types that are used in the program
What does a linker do?
a program used with a compiler or assembler to provide links to the libraries needed for an executable program.
Why is the von Neumann bottleneck important?
keeps us thinking in a word-at-a-time terms in much the same way the computer's bottleneck does
What is the use of the well-definedness criterion?
the completeness and precision of the language's official defining document
What is an example of two language design criteria that are in direct conflict with each other?
the ease with which programs that work on one platform can be modified to work on another. This is strongly influenced by to what degree a language is standardized.
What role does the symbol table play in a compiler?
the symbol table serves as a database for the compilation process in a compiler.