Term
| What are the 4 most common areas of computer applications? |
|
Definition
1. Scientific applications 2. Business applications 3. Artificial intelligence 4. Web software |
|
|
Term
| What are the characteristics of scientific software and what are some of the common languages for them? |
|
Definition
They use simple data structures and require large floating-point arithmetic computations
Languages: FORTRAN, ALGOL 60 |
|
|
Term
| What are the characteristics of business applications and what languages are associated with them? |
|
Definition
They are able to produce elaborate reports, precise ways of describing and storing decimal numbers and character data, and the ability to specify decimal arithmetic operations
Langauges: COBOL |
|
|
Term
| What are the characteristics of artificial intelligence applications and what are some of the languages associated with them? |
|
Definition
These programs are characterized by the use of symbolic rather than numeric computations- meaning that symbols consisting of names rather than numbers, are manipulated. Also they typically use linked lists rather than arrays
Langauges: Lisp, Prolog, Python, Scheme |
|
|
Term
| What are the characteristics of web software and what are the associated langauges? |
|
Definition
They need dynamic web content.
The languages are the HTML markup langauges with general purpose languages like Java and then some embedded computational ability with something like JavaScript, |
|
|
Term
| What are seven areas to evaluate a programming langauge? |
|
Definition
1. Readability 2. Writability 3. Reliability 4. Cost 5. Portability 6. Generality 7. Well-defined-ness |
|
|
Term
| What does the criteria of readability mean? |
|
Definition
| It is the ease with which a program can be read and understood |
|
|
Term
| What are some of the main things that contribute to a program's readability? |
|
Definition
1. Overall simplicity- programs with fewer basic constructs are easier to read 2. Feature multiplicity- more than 1 way to accomplish something 3. Orthogonality- a small set of primitives can be combined in a small number of ways and every combination is meaningful 4. Data types- number of data types and data structures 5. Syntax design which includes special words and form and meaning (designing statements so that form indicates purpose) |
|
|
Term
| What does it mean to evaluate a program on its writability? |
|
Definition
| It is the measure of how easily a language can be used to write a program for a chosen problem domain |
|
|
Term
| What are some of the main things that contribute to a programs's writability? |
|
Definition
1. Simplicity and orthogonality 2. Expressivity- which could mean powerful operators that can do a lot in a small amount of time OR that the language has a convenient way of specifying computations |
|
|
Term
| What does it mean to evaluate a programming language on reliability? |
|
Definition
| A program is reliable if it performs to its specifications under all conditions |
|
|
Term
| What are some of the components of reliability? |
|
Definition
1. Type checking 2. Exception handling 3. Aliasing |
|
|
Term
| What is involved with the cost of a programming language? |
|
Definition
1. Cost of training the programmers 2. Cost of writing programs in that language 3. Cost of executing the program (run-time checks slow things down, optimization is helpful) 4. Costs of poor reliability 5. Cost of maintaining a program
Main costs: program development, maintenance, and reliability |
|
|
Term
|
Definition
| Optimization describes the collection of techniques that compilers use to decrease the size and/or increase the execution speed of the code they produce |
|
|
Term
|
Definition
| The ease with which a program can be moved from one implementation to another |
|
|
Term
|
Definition
| It is the applicability to a wide range of applications |
|
|
Term
| What is well-definedness? |
|
Definition
| it is the completeness and precision of the language's official defining document |
|
|
Term
| What are functional/applicative languages? |
|
Definition
| They are languages in which the primary means of computation is applying functions to given parameters |
|
|
Term
| What are non-functional/imperative languages? |
|
Definition
| They dominate and follow the Van Neumann architecture |
|
|
Term
| What are the two most influential factors on programming language design? |
|
Definition
1. Computer architecture- typically the van Neumann 2. Programming design methodologies (top down and step-wise refinement, to procedural to data, then data to object) |
|
|
Term
| What are the 4 language categories? |
|
Definition
1. Imperative 2. Functional 3. Logical 4. Object oriented |
|
|
Term
| What are the 4 ways to implement programming languages? |
|
Definition
| 1. Compiler implementation 2. Pure implementation - use an interpreter 3. Hybrid implementation systems 4. Preprocessor |
|
|
Term
| What are the steps in compiling a language? |
|
Definition
1. Lexical analyzer gathers the characters of the source program into lexical units 2. Syntax analyzer takes these and constructs parse trees 3. Intermediate code generator produces intermediate code 4. Optimization occurs 5. Linking and loading 6. Load module/executable image |
|
|