Topics
1. Reasons for Studying Concepts of Programming Languages
2. Programming Domains
3. Language Evaluation Criteria
4. Influences on Language Design
5. Language Categories
6. Language Design Trade-Offs
7. Implementation Methods
8. Programming Environments
1.1 Reasons for Studying Concepts of Programming Languages
1. Increased ability to express ideas
1. The depth at which people can think is influenced by the expressive power of the language in which they communicate their thoughts
2. The language in which programmers develop software places limits on the kinds of control structures, data structures, and abstraction they can use
1. Awareness of a wider variety of programming language features can reduce such limitations in software development
3. Languages constructs can be simulated in other languages that do not support those constructs directly;
however, the simulation is often
1. less elegant
2. more cumbersome
3. less safe
2. Improved background for choosing appropriate languages
3. Increased ability to learn new languages
4. Better understanding of significance of implementation
1. Program bugs
2. Performance
5. Overall advancement of computing
1.2 Programming Domains
• Scientific applications
– Large number of floating point computations
– Fortran
• Business applications
– Produce reports, use decimal numbers and characters
– COBOL
• Artificial intelligence
– Symbols rather than numbers manipulated
– LISP
• Systems programming
– Need– C
• Web Software
– Eclectic collection of languages: markup (e.g., XHTML), scripting (e.g., PHP), general-purpose (e.g., Java)