1. Write-ability/Express-ability
2. Readability
3. Simplicity
4. Reliability
5. Efficiency
6. Portable
7. Reusable Code
8. Popular - answers✔✔Qualities of a good PL
- answers✔✔5 Type Checks that are not done in C++
Statements that execute differently should look different - answers✔✔Def: Regularity of Syntax
Program that does the translation from HLPL to LLPL before the program is run - answers✔✔Def:
Compiler
Program that does the translation step at run time - answers✔✔Def: Interpreter
Runtime Efficiency: running machine code is 10 - 100 x faster than simulation of a virtual machine and
there are no runtime overhead - answers✔✔Adv./Disadv. of Compiler
Runtime Error Handling is much better - answers✔✔Adv./Disadv. of Interpreter
Sequence of commands based on the assignment statement and changeable memory
<var> = <expr> - answers✔✔Def: Imperative Language
, Classes are equivalent only when names are equivalent - answers✔✔Def: Name-Type Equivalence
Classes are equivalent when the signature of the classes are equivalent - answers✔✔Def: Structural-
Type Equivalence
struct apple { int a; double b; }
struct orange { int a; double b; }
apple x;
orange y;
x = y; legal? - answers✔✔How do you prove the difference between name/structural equivalence?
All Possible type errors are always checked for and reported (as opposed to weakly-typed where nothing
is checked) - answers✔✔Def: Strongly-Typed
Fortran 66, BASIC, COBOL - answers✔✔3 Examples of 1st Gen. Langs.
1. Machine Independence
2. Infix syntax
3. Generic operators
4. Procedural abstraction - answers✔✔What did the 1st Generation PL's contribute?
1. Algol 60
2. PL/I
3. Fortran 77 - answers✔✔3 Examples of 2nd Gen. Langs.
1. Recursion
2. Some dynamic data