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
2
Q
What are the programming domains?
A
- scientific computing
- business computing
- artificial intelligence
- systems programming
- web programming
- entertainment
- medical
- cloud
- agriculture
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
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
5
Q
What are the language design trade-offs?
A
- reliability and cost of execution conflict
- reliability and writability conflict
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
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