The document discusses key concepts in programming languages including:
- Reasons for studying programming language concepts such as choosing appropriate languages and learning new languages.
- Factors that influence language design such as implementation methods and programming environments.
- Syntax and semantics including formal methods for describing syntax and meanings of programs.
2. Preliminary Concepts: Reasons for Studying Concepts
of Programming Languages, Programming Domains
Language Evaluation Criteria, Influences on Language
Design, Language Categories
Language Design Trade-Offs, Implementation Methods,
Programming Environments.
Syntax and Semantics: General Problem of Describing
Syntax and Semantics,
Formal Methods of Describing Syntax
Attribute Grammars, Describing the Meanings of Programs.
9/27/2022 2
3. Why study PL concepts?
Programming domains
PL evaluation criteria
What influences PL design?
Tradeoffs faced by programming languages
Implementation methods
Programming environments
9/27/2022 3
4. A programming language is a computer language programmers use to
develop software programs, scripts, or other sets of instructions for
computers to execute.
Each of the different programming languages can be broken into one or
more of the following types (paradigms) of languages.
A programming language is the tool for developing executable models for
a class of problem domains .
A programming language also have words, symbols and rule of grammar .
A grammar rules are called syntax.
Each programming language has its qon syntax set of rules.
9/27/2022 4
5. Increased capacity to express ideas
Improved background for choosing appropriate
languages
Increased ability to learn new languages
Better understanding of the significance of
implementation
Better use of languages that are already known
Overall advancement of computing
9/27/2022 5
6. People can easily express their ideas clearly in any
language only when they have clear understanding of
the natural language.
Similarly, if programmers want to simulate the features
of languages in another language, they should have
some ideas regarding the concepts in other languages as
well.
9/27/2022 6
7. Many programmers when given a choice of languages
for a new project, continue to use the language with
which they are most familiar, even if it is poorly suited
to the project.
If these programmers were familiar with a wider range
of languages, they would be better able to choose the
language that includes the features that best address the
characteristics of the problem at hand.
9/27/2022 7
8. In software development, continuous learning is
essential.
The process of learning a new programming language
can be lengthy and difficult, especially for someone
who is comfortable with only two or more languages.
Once a thorough understanding of the fundamental
concepts of languages is acquired, it becomes far easier
to see how these concepts are incorporated into the
design of the language being learned.
9/27/2022 8
9. An understanding of implementation issues leads to an
understanding of why languages are designed the way
they are.
This knowledge in turn leads to the ability to use a
language more intelligently, as it was designed to use.
We can become better programmers be understanding
the choices among programming language constructs
and consequences of those choices.
9/27/2022 9
10. By studying the concepts of programming languages,
programmers can learn about previously unknown and
unused parts of the languages they already use and
begin to use those features.
9/27/2022 10
11. There is a global view of computing that can justify the
study of programming language concepts.
For example, many people believe it would have been
better if ALGOL 60 had displaced Fortran in the early
1960s, because it was more elegant and had much better
control statements than Fortran.
That it did not is due partly to the programmers and
software development managers of that time, many of
whom did not clearly understand the conceptual design of
ALGOL 60.
If those who choose languages were better informed,
perhaps, better languages would eventually squeeze out
poorer ones.
9/27/2022 11
12. Clarity, simplicity and unity
Orthogonality
Naturalness of application
Support of abstraction
Ease of program verification
Programming environments
Portability of programs
Cost of use
Cos of execution
Cost of program translation
Cost of program creation, testing and use
Cost of program maintains.
9/27/2022 12
13. To improve the ability to develop effective algorithms.
To improve use of familiar languages.
To increase the vocabulary of useful programming
languages.
To make it easier to learn a new language.
To simulate useful feature in language that lack them.
To make better use of programming technology
wherever it appears.
9/27/2022 13
14. Scientific applications
Business applications
Artificial intelligence
Systems programming
Scripting languages
Special purpose languages
9/27/2022 14