This document discusses key questions about programming languages and concepts to be covered. It will discuss design issues, choices and historical context of various languages. Studying programming language concepts increases one's ability to express ideas, choose the right language, learn new languages, understand design methodologies, and design new languages. It also improves understanding of implementation impacts.
Download as PPT, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
20 views
Lecture 01
This document discusses key questions about programming languages and concepts to be covered. It will discuss design issues, choices and historical context of various languages. Studying programming language concepts increases one's ability to express ideas, choose the right language, learn new languages, understand design methodologies, and design new languages. It also improves understanding of implementation impacts.
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 7
Questions to be Answered
• Why are there so many different programming
languages? • How and why they are developed? • What is the intended purpose of a language? • In what ways are they similar? • What are the differences among them? • Why wouldn’t we simply continue to use what we have today? • What kinds of programming languages may be developed in future? We will Discuss • Design issues of various languages • Design choices and alternatives • Historical context and specific needs • Implementation issues Concepts of Programming Languages, 6th Ed.
Robert Sebesta Reasons to study concepts of Programming Languages
• Increased capacity to express programming
concepts • Improved background for choosing appropriate languages • Increased ability to learn new languages • Design methodologies • Understanding the significance of implementation • Increased ability to design new languages Increased Capacity to express programming concepts The tools we use have a profound (and devious!) influence on our thinking habits, and, therefore, on our thinking abilities. Edsger Dijkstra
• Depth at which we can think is influenced by the
expressive power of the language. • What kind of algorithms can you develop. • Can increase the range of software development thought process by learning new languages. • Those constructs can be simulated Improved background for Choosing appropriate languages "To the man who only has a hammer in the toolkit, every problem looks like a nail."
Abraham Maslow
• Sometimes, some programming
languages are more suitable for a specific task. – Special purpose languages: Snobol Better understanding of significance of implementation
• In some cases, an understanding of
implementation issues leads to an understanding of why languages are designed the way they are. • Leads to efficient use of the language. – Row vs. column major – recursion • Certain bugs can only be found and fixed if the programmer knows some related implementation details.