Chapter 1 Flashcards

1
Q

On what criteria do we evaluate a language?

A

Readability (easy to read)
Writability ( easy to write )
reliability ( performs to specification )
Cost (cost of using the language)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Why study concepts of programming languages?

A

Better expression.
Increased ability to learn new languages
understand trade-offs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How can we evaluate readability?

A

Overall simplicity
Orthogonality ( how easily different features can be combined )
Amount of data type (if types are missing they must be simulated )
Syntax ( Special words, identifier forms ) (lack of naming restriction = increased readability)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How can we evaluate writability?

A

Simplicity + orthogonality
Support for abstraction
Expressivity

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How can we evaluate reliability?

A

Type checking
Exception handling
Aliasing
Readability and writability

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How can we evaluate Cost?

A

Training to use
Compiling
Executing
Reliability (poor reliability = high cost)
maintenance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are some other evaluation criteria?

A

Portability
Generality
Well-definedness

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the different types of trade-offs?

A

Reliability vs cost of execution
Readability vs writability
writability vs reliability (pointers in C++)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the different programming domains?

A

Scientific
Business
AI
Systems programming
Web software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What influences the design of a language?

A

Computer Architecture
Programming methodologies

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What had the most influence on programming methodologies in each decade?

A

1950s: efficiency
60s: readability + control structures
70: Data abstraction
80s: OOP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Different type of Language categories:

A

Imperative - Java, JS
Functional - LISP, Scheme, ML, F#
Logic - Prolog
Markup/hybrid - JSTL, XSLT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the different implementation methods?

A

Compilation ( translated into machine language )
Pure Interpretation ( uses an interpreter )
Hybrid ( compromise between compilers + pure interpreters )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What does compilation do?

A

Translate high-level program into machine code

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the phases of compilation?

A

Lexical analysis
Syntax analysis
Semantic analysis
Code generation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Does Pure interpretation have any translation?

17
Q

Compiler vs interpreters (Bad + Good)

A

Compiler is faster
Interpreter programs are easier to implement
Compiler programs take up less space

18
Q

How does hybrid implementation systems work?

A

First translate to intermediate language and then interpret from that language. (faster than pure interpretation) Perl

19
Q

How does Just-in-Time Implementation systems work?

A

Translate program to intermediate language.
compile intermediate language into machine code when they are called.
Keep machine code after use

20
Q

Which languages use JIT ( Just in time)?

A

.NET languages

21
Q

What are the different programming environments?

A

UNIX
Visual Studio.NET
NetBeans