Chapter 1 Flashcards

1
Q

Why do we study programming languages?

A
  • appreciation
  • know which language is best for the job
  • understand design choices that were made at the time of the language’s creation
  • be able to read or modify someone’s code
  • understand limitations of the language
  • write more efficiently
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the programming domains?

A
  • scientific computing
  • business computing
  • artificial intelligence
  • systems programming
  • web programming
  • entertainment
  • medical
  • cloud
  • agriculture
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the 4 language criteria and how are they related?

A
  • readability: overall simplicity, orthogonality, presence of data types
  • writability: simplicity, orthogonality, ability to abstract, expressivity
  • reliability: performs to its spec under all operating conditions, presence of type-checking
  • cost: time to learn and write, need for special hardware, cost to maintain
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the influences on language design?

A
  • von Neumann architecture: #1 influence
  • changes on emphasis over time: computer efficiency, more costly, human time and complexity, data abstractions, true object oriented languages
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the language design trade-offs?

A
  • reliability and cost of execution conflict
  • reliability and writability conflict
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the main implementation methods for programming languages? What are examples of each?

A
  • compiled: C, C++, Pascal
  • interpreted: Python, JavaScript, Bash, PHP, Prolog, Racket, Ruby
  • hybrid: Java, C#, Scala
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the major paradigms of programming? What are examples of each?

A
  • imperative: C, Python
  • object oriented: Java, C#, C++, Python, Ruby
  • logical, declarative: SQL, Prolog
  • functional: Haskell, Lisp, Racket
How well did you know this?
1
Not at all
2
3
4
5
Perfectly