Week1 (1.3) Flashcards

1
Q

How were the first computers in the 1940s programmed?

A

Using machine language, consisting of sequences of 0s and 1s.

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

What was the first step towards more people-friendly programming languages?

A

The development of mnemonic assembly languages in the early 1950s.

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

What are macro instructions in assembly languages?

A

Parameterized shorthands for frequently used sequences of machine instructions.

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

What were the first higher-level programming languages developed in the 1950s?

A

Fortran, Cobol, and Lisp.

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

How are programming languages classified by generation?

A

1st-generation: Machine languages, 2nd-generation: Assembly languages, 3rd-generation: Higher-level languages, 4th-generation: Domain-specific languages, 5th-generation: Logic- and constraint-based languages.

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

What is an imperative programming language?

A

A language where the program specifies how a computation is performed, with a notion of state and state changes.

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

What is a declarative programming language?

A

A language where the program specifies what computation is to be done, without detailing how to perform it.

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

What is a von Neumann language?

A

A language based on the von Neumann computer architecture, such as Fortran and C.

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

What is object-oriented programming?

A

A style where a program consists of a collection of objects interacting with one another.

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

Name some early and modern object-oriented programming languages.

A

Simula 67 and Smalltalk (early), C++, Java, and Ruby (modern).

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

What are scripting languages?

A

Interpreted languages with high-level operators for gluing computations, e.g., Python, JavaScript, Perl.

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

How did advances in programming languages impact compiler writers?

A

They had to create algorithms and representations to support new features and leverage new hardware capabilities.

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

Why are compilers critical for high-level languages?

A

They minimize execution overhead and enable high-performance architectures.

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

What makes compiler writing challenging?

A

Compilers are large, complex programs that handle many source languages and target machines.

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

What is undecidable in compiler design?

A

Generating the optimal target code for all possible source programs.

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

What is the purpose of studying compiler design?

A

To learn fundamental methodologies and ideas for creating compilers.