Terms Flashcards

1
Q

Concise definition of programming language simplicity

A

Simplicity in a language, therefore, is at least in part the result of a combination
of a relatively small number of primitive constructs and a limited use
of the concept of orthogonality.

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

orthogonality

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

abstraction

A

ability to define and then use complicated
structures or operations in ways that allow many of the details to be ignored.

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

two forms of abstraction

A

process (subroutines)

data (objects that are more intuitive to understand)

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

expressivity

A

a language has
relatively convenient, rather than cumbersome, ways of specifying computations.

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

aliasing

A

having two or more distinct names that can be
used to access the same memory cell.

It is now widely accepted that aliasing
is a dangerous feature in a programming language.

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

cost of a language

A
  1. cost of training programmers to use the language
  2. cost of writing programs in the language
  3. cost of compiling programs in the language
  4. cost of executing programs written in a language is greatly

influenced by that language’s design. A language that requires many run-time
type checks will prohibit fast code execution, regardless of the quality of the
compiler. Although execution efficiency was the foremost concern in the design
of early languages, it is now considered to be less important.

  1. cost of the language implementation
    system. (eg Java can be implemented anywhere)
  2. cost of poor reliability
  3. cost of maintaining programs

Of all the contributors to language costs, three are most important: program
development, maintenance, and reliability. Because these are functions of writability
and readability, these two evaluation criteria are, in turn, the most important.

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

major disadvantage of functional programming languages

A

not optimized for von neumann architecture the way imperative languages are

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

SIMULA 67

A

first language
to provide even limited support for data abstraction

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

Smalltalk

A

first object-oriented language, 1989

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

example of tradeoff between reliability and cost of execution

A

java checks that arrays are in range, adds execution cost for the sake of reliability

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

load module,
or executable image

A

The user and system code together

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

von Neumann bottleneck

A

The speed of the connection between a computer’s memory and its processor
usually determines the speed of the computer, because instructions often
can be executed faster than they can be moved to the processor for execution.

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

disadvantages of pure interpreted languages

A

regardless of how many times a statement is executed, it must be
decoded every time. Therefore, statement decoding, rather than the connection
between the processor and memory, is the bottleneck of a pure interpreter.

requires more
space.

execution is 10 to 100 times slower than in compiled systems.

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

Hybrid Implementation Systems

A

mix of pure interpreted and compiled languages

only compile each statement once

eg Perl, Java w JVM

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

Just In Time implementation

A

initially translates programs
to an intermediate language. Then, during execution, it compiles intermediate
language methods into machine code when they are called. The machine code
version is kept for subsequent calls.

eg .NET, some recent Java

17
Q

Short Code

A

used in UNIVAC I

each line consists of six, 12-byte codes

pure interpreted, 50 times slower than machine code

18
Q

Speedcoding

A

developed for IBM 701, 1954

tools for FLOPS, such as trig operations and exp and log

made matrix math much easier

19
Q

FLPL

A

Fortran List Processing language, developed by IBM for geometry theorem-proving

20
Q
A