際際滷

際際滷Share a Scribd company logo
Principals Of Programming
Languages
MS. LARAIB SAEED
Department of Computer Science
COMSATS University Islamabad
Wah Campus
Chapter 1
Preliminaries
1-2
Course Details
 Course Title: Theory of Programming Language
 Course Code: CSC315
 Credit Hours: 3(3,0)
1-3
Course Grading
 Quizzes (4) 15%
 Assignments (4) 10%
 Midterm 25%
 Terminal Exam 50%
1-4
Rules and Considerations
 Be on time for every class. Late arrivals may be marked absent.
 Active participation in discussions is encouraged.
 All assignments must be submitted on time. Late submissions may result
in deductions.
 Quizzes can be surprise or scheduled, so stay prepared.
 For any queries, contact: laraibsaeed828@gmail.com
1-5
Chapter 1 Topics
 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
1-6
Reasons for Studying Concepts of Programming
Languages
 Increased ability to express ideas
 Write more efficient and effective programs
 Convey your thoughts and intentions clearly
 Develop a unique programming style
 Improved background for choosing appropriate languages
 Understand the strengths and weaknesses of different languages
 Make informed decisions about language selection
 Adapt to new languages and technologies more easily
 Increased ability to learn new languages
 Recognize similarities and differences between languages
 Transfer knowledge and skills to new languages
 Learn new languages more quickly and efficiently
1-7
Reasons for Studying Concepts of
Programming Languages
 Better understanding of significance of implementation
 Data structures and algorithms
 Memory management and optimization
 Error handling and debugging
 Overall advancement of computing
 Drive innovation and research in computer science
 Improve software development methodologies and tools
 Enhance the overall quality and reliability of software systems
1-8
Programming Domains
 Scientific applications
 Help scientists and researchers solve complex problems
 Large number of floating point computations
 Fortran
 Business applications
 Produce reports, use decimal numbers and characters
 COBOL
1-9
Programming Domains
 Artificial intelligence
 Creating intelligent machines that can think and learn like humans
 Symbols, Logic and Reasoning rather than numbers manipulated
 LISP
 Systems programming
 Creating software that manages and controls computer hardware resources
 Need efficiency because of continuous use
 C
 Web Software
 Software refers to programs that run on the web, like websites, web applications,
and mobile apps.
 Eclectic collection of languages: markup (e.g., XHTML), scripting (e.g., PHP),
general-purpose (e.g., Java)
1-10
Language Evaluation Criteria
 Readability: the ease with which programs can be read and
understood
 Writability: the ease with which a language can be used to create
programs
 Reliability: conformance to specifications (i.e., performs to its
specifications)
 Cost: the ultimate total cost
1-11
Evaluation Criteria: Readability
 Overall simplicity
 A manageable set of features and constructs
 Few feature multiplicity (means of doing the same operation)
 Minimal operator overloading
 Orthogonality
 A relatively small set of primitive constructs can be combined
in a relatively small number of ways
 Every possible combination is legal
 Control statements
 The presence of well-known control structures (e.g., while
statement)
1-12
Evaluation Criteria: Readability
 Data types and structures
 The presence of adequate facilities for defining data structures
 Syntax considerations
 Identifier forms: flexible composition
 Special words and methods of forming compound statements
 Form and meaning: self-descriptive constructs, meaningful keywords
1-13
Evaluation Criteria: Writability
 Simplicity and orthogonality
 Few constructs, a small number of primitives, a small set of
rules for combining them
 Support for abstraction
 The ability to define and use complex structures or operations in
ways that allow details to be ignored
 Expressivity
 A set of relatively convenient ways of specifying operations
 Example: the inclusion of for statement in many modern
languages
1-14
Evaluation Criteria: Reliability
 Type checking
 Testing for type errors
 Exception handling
 Intercept run-time errors and take corrective measures
 Aliasing
 Presence of two or more distinct referencing methods for the
same memory location
 Readability and writability
 A language that does not support natural ways of expressing
an algorithm will necessarily use unnatural approaches, and
hence reduced reliability
1-15
Evaluation Criteria: Cost
 Training programmers to use language
 Writing programs (closeness to particular applications)
 Compiling programs
 Executing programs
 Language implementation system: availability of free compilers
 Reliability: poor reliability leads to high costs
 Maintaining programs
1-16
Evaluation Criteria: Others
 Portability
 The ease with which programs can be moved from one
implementation to another
 Generality
 How widely a programming language can be used for different types
of applications.
 Well-definedness
 How clear and precise the rules and definitions of a programming
language are.
1-17
Influences on Language Design
 Computer Architecture
 Languages are developed around the prevalent computer architecture,
known as the von Neumann architecture
 Programming Methodologies
 New software development methodologies (e.g., object-oriented
software development) led to new programming paradigms and by
extension, new programming languages
1-18
Computer Architecture Influence
 Well-known computer architecture: Von Neumann
 Imperative languages(How to perform a task), most dominant, because of von
Neumann computers
 Data and programs stored in memory
 Memory is separate from CPU
 Instructions and data are piped from memory to CPU
 Basis for imperative languages
 Variables model memory cells
 Assignment statements model piping
 Iteration is efficient
1-19
The von Neumann Architecture 1-20
Programming Methodologies Influences
 1950s and early 1960s: Simple applications; worry about machine efficiency
 Late 1960s: People efficiency became important; readability, better control
structures
 structured programming
 top-down design and step-wise refinement
 Late 1970s: Process-oriented to data-oriented
 data abstraction
 Middle 1980s: Object-oriented programming
 Data abstraction + inheritance + polymorphism
1-21
Language Categories
 Imperative
 Central features are variables, assignment statements, and iteration
 Examples: C, Pascal
 Functional
 Main means of making computations is by applying functions to given
parameters
 Examples: LISP, Scheme
 Logic
 Rule-based (rules are specified in no particular order)
 Example: Prolog
1-22
Language Categories
 Object-oriented
 Data abstraction, inheritance, late binding (Resolve meaning of a
symbol or identifier at run time)
 Examples: Java, C++
 Markup
 New; not a programming per se, but used to specify the layout of
information in Web documents
 Examples: XHTML, XML
1-23
Language Design Trade-Offs
 Reliability vs. cost of execution
 Conflicting criteria
 Example: Java demands all references to array elements be checked for
proper indexing but that leads to increased execution costs
 Readability vs. writability
 Another conflicting criteria
 Example: APL provides many powerful operators (and a large number of
new symbols), allowing complex computations to be written in a compact
program but at the cost of poor readability
 Writability (flexibility) vs. reliability
 Another conflicting criteria
 Example: C++ pointers are powerful and very flexible but not reliably used
1-24
Implementation Methods
 Compilation
 Programs are translated into machine language
 Pure Interpretation
 Programs are interpreted by another program known as an interpreter
 Hybrid Implementation Systems
 A compromise between compilers and pure interpreters
1-25
Layered View of Computer
 The operating system and language implementation are layered over
machine interface of a computer
1-26
Compilation
 Translate high-level program (source language) into machine code (machine
language)
 Slow translation, fast execution
 Compilation process has several phases:
 lexical analysis: converts characters in the source program into lexical units
 Syntax analysis: transforms lexical units into parse trees which represent
the syntactic structure of program
 Semantics analysis: generate intermediate code
 code generation: machine code is generated
1-27
The Compilation Process 1-28
Additional Compilation Terminologies
 Load module (executable image): the user and system code
together
 Linking and loading: the process of collecting system program
and linking them to user program
1-29
Von Neumann Bottleneck
 Connection speed between a computers memory and its
processor determines the speed of a computer
 Program instructions often can be executed a lot faster than the
above connection speed; the connection speed thus results in a
bottleneck
 Known as von Neumann bottleneck; it is the primary limiting factor
in the speed of computers
1-30
Pure Interpretation
 No translation
 Easier implementation of programs (run- time errors can easily and
immediately displayed)
 Slower execution (10 to 100 times slower than compiled programs)
 Often requires more space
 Significant comeback with some Web scripting languages (e.g.,
JavaScript)
 Becoming rare on high-level languages
1-31
Pure Interpretation Process 1-32
Hybrid Implementation Systems
 A compromise between compilers and pure interpreters
 A high-level language program is translated to an intermediate
language that allows easy interpretation
 Faster than pure interpretation
 Examples
 Perl programs are partially compiled to detect errors before
interpretation
 Initial implementations of Java were hybrid; the intermediate
form, byte code, provides portability to any machine that has a
byte code interpreter and a run-time system (together, these are
called Java Virtual Machine)
1-33
Hybrid Implementation Process 1-34
Just-in-Time Implementation Systems
 Initially translate programs to an intermediate language
 Then compile intermediate language into machine code
 Machine code version is kept for subsequent calls
 JIT systems are widely used for Java programs
 .NET languages are implemented with a JIT system
1-35
Preprocessors
 Preprocessor macros (instructions) are commonly used to specify that code
from another file is to be included
 A preprocessor processes a program immediately before the program is
compiled to expand embedded preprocessor macros
 A well-known example: C preprocessor
 expands #include, #define, and similar macros
1-36
Programming Environments
 The collection of tools used in software development
 UNIX
 An older operating system and tool collection
 Nowadays often used through a GUI (e.g., CDE, KDE, or GNOME) that run
on top of UNIX
 Borland JBuilder
 An integrated development environment for Java
 Microsoft Visual Studio.NET
 A large, complex visual environment
 Used to program in C#, Visual BASIC.NET, Jscript, J#, or C++
1-37
Summary
 The study of programming languages is valuable for a number of reasons:
 Increase our capacity to use different constructs
 Enable us to choose languages more intelligently
 Makes learning new languages easier
 Most important criteria for evaluating programming languages include:
 Readability, writability, reliability, cost
 Major influences on language design have been machine architecture and
software development methodologies
 The major methods of implementing programming languages are:
compilation, pure interpretation, and hybrid implementation
1-38
39
TIOBI Index
 The TIOBE Programming Community index is an indicator of the popularity
of programming languages.
 The index is updated once a month.
 The ratings are based on the number of skilled engineers world-wide,
courses and third-party vendors.
 Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon,
YouTube and Baidu are used to calculate the ratings.
 It is important to note that the TIOBE index is not about
the best programming language or the language in which most lines of
code have been written.
 https://www.tiobe.com/tiobe-index/
40

More Related Content

Similar to Chapter 1: Theory of programming languages (20)

unit-1(ppl notes) programing for problem.pptx
unit-1(ppl notes) programing for problem.pptxunit-1(ppl notes) programing for problem.pptx
unit-1(ppl notes) programing for problem.pptx
Pavani839789
CSCorganization of programming languages
CSCorganization of programming languagesCSCorganization of programming languages
CSCorganization of programming languages
OluwafolakeOjo
Intro to Backend Development - GDG on Campus EUE
Intro to Backend Development - GDG on Campus EUEIntro to Backend Development - GDG on Campus EUE
Intro to Backend Development - GDG on Campus EUE
Google Developer Group On Campus European Universities in Egypt
CH # 1 preliminaries
CH # 1 preliminariesCH # 1 preliminaries
CH # 1 preliminaries
Munawar Ahmed
Advanced Programming practices - UNIT 1 .pptx
Advanced Programming practices - UNIT 1 .pptxAdvanced Programming practices - UNIT 1 .pptx
Advanced Programming practices - UNIT 1 .pptx
rasheedabegum11
CSE-1203-Lecture-01-Introduction for c programming.pptx
CSE-1203-Lecture-01-Introduction for c programming.pptxCSE-1203-Lecture-01-Introduction for c programming.pptx
CSE-1203-Lecture-01-Introduction for c programming.pptx
MARaihanEmon
Introduction-to-Programming-Languages.pptx
Introduction-to-Programming-Languages.pptxIntroduction-to-Programming-Languages.pptx
Introduction-to-Programming-Languages.pptx
ranjan317165
1504.00693
1504.006931504.00693
1504.00693
Khushboo Agarwal
Computer Software and It's Development
Computer Software and It's DevelopmentComputer Software and It's Development
Computer Software and It's Development
Rabin BK
Plc part 1
Plc part 1Plc part 1
Plc part 1
Taymoor Nazmy
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptxCobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
mehrankhan7842312
Chapter 1
Chapter 1Chapter 1
Chapter 1
ZcelTablizo3
Ppl 13 july2019
Ppl 13 july2019Ppl 13 july2019
Ppl 13 july2019
Khurram Tehseen
Software and os ch5
Software and os ch5Software and os ch5
Software and os ch5
Khan Yousafzai
Computer Programming
Computer Programming Computer Programming
Computer Programming
Newreborn Incarnation
Computer
ComputerComputer
Computer
Newreborn Incarnation
Unit 1
Unit 1Unit 1
Unit 1
Satyanandaram Nandigam
Unit1 principle of programming language
Unit1 principle of programming languageUnit1 principle of programming language
Unit1 principle of programming language
Vasavi College of Engg
Introduction to Compiler design
Introduction to Compiler design Introduction to Compiler design
Introduction to Compiler design
Dr. C.V. Suresh Babu
Programming Language Introduction Lecture
Programming Language Introduction LectureProgramming Language Introduction Lecture
Programming Language Introduction Lecture
jamesaaronguevarra1
unit-1(ppl notes) programing for problem.pptx
unit-1(ppl notes) programing for problem.pptxunit-1(ppl notes) programing for problem.pptx
unit-1(ppl notes) programing for problem.pptx
Pavani839789
CSCorganization of programming languages
CSCorganization of programming languagesCSCorganization of programming languages
CSCorganization of programming languages
OluwafolakeOjo
CH # 1 preliminaries
CH # 1 preliminariesCH # 1 preliminaries
CH # 1 preliminaries
Munawar Ahmed
Advanced Programming practices - UNIT 1 .pptx
Advanced Programming practices - UNIT 1 .pptxAdvanced Programming practices - UNIT 1 .pptx
Advanced Programming practices - UNIT 1 .pptx
rasheedabegum11
CSE-1203-Lecture-01-Introduction for c programming.pptx
CSE-1203-Lecture-01-Introduction for c programming.pptxCSE-1203-Lecture-01-Introduction for c programming.pptx
CSE-1203-Lecture-01-Introduction for c programming.pptx
MARaihanEmon
Introduction-to-Programming-Languages.pptx
Introduction-to-Programming-Languages.pptxIntroduction-to-Programming-Languages.pptx
Introduction-to-Programming-Languages.pptx
ranjan317165
Computer Software and It's Development
Computer Software and It's DevelopmentComputer Software and It's Development
Computer Software and It's Development
Rabin BK
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptxCobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
mehrankhan7842312
Software and os ch5
Software and os ch5Software and os ch5
Software and os ch5
Khan Yousafzai
Unit1 principle of programming language
Unit1 principle of programming languageUnit1 principle of programming language
Unit1 principle of programming language
Vasavi College of Engg
Introduction to Compiler design
Introduction to Compiler design Introduction to Compiler design
Introduction to Compiler design
Dr. C.V. Suresh Babu
Programming Language Introduction Lecture
Programming Language Introduction LectureProgramming Language Introduction Lecture
Programming Language Introduction Lecture
jamesaaronguevarra1

Recently uploaded (20)

McElaney "What is inclusive publishing and why do we care about accessibility...
McElaney "What is inclusive publishing and why do we care about accessibility...McElaney "What is inclusive publishing and why do we care about accessibility...
McElaney "What is inclusive publishing and why do we care about accessibility...
National Information Standards Organization (NISO)
General Quiz at Maharaja Agrasen College | Amlan Sarkar | Prelims with Answer...
General Quiz at Maharaja Agrasen College | Amlan Sarkar | Prelims with Answer...General Quiz at Maharaja Agrasen College | Amlan Sarkar | Prelims with Answer...
General Quiz at Maharaja Agrasen College | Amlan Sarkar | Prelims with Answer...
Amlan Sarkar
MIPLM subject matter expert Sascha Kamhuber
MIPLM subject matter expert Sascha KamhuberMIPLM subject matter expert Sascha Kamhuber
MIPLM subject matter expert Sascha Kamhuber
MIPLM
Different Facets of Knowledge on different View.pptx
Different Facets of Knowledge on different View.pptxDifferent Facets of Knowledge on different View.pptx
Different Facets of Knowledge on different View.pptx
NrapendraVirSingh
3. AI Trust Layer, Governance Explainability, Security & Compliance.pdf
3. AI Trust Layer, Governance  Explainability, Security & Compliance.pdf3. AI Trust Layer, Governance  Explainability, Security & Compliance.pdf
3. AI Trust Layer, Governance Explainability, Security & Compliance.pdf
Mukesh Kala
Sulfonamides by Mrs. Manjushri P. Dabhade
Sulfonamides by Mrs. Manjushri P. DabhadeSulfonamides by Mrs. Manjushri P. Dabhade
Sulfonamides by Mrs. Manjushri P. Dabhade
Dabhade madam Dabhade
UTI Quinolones by Mrs. Manjushri Dabhade
UTI Quinolones by Mrs. Manjushri DabhadeUTI Quinolones by Mrs. Manjushri Dabhade
UTI Quinolones by Mrs. Manjushri Dabhade
Dabhade madam Dabhade
NURSING PROCESS AND ITS STEPS .pptx
NURSING PROCESS AND ITS STEPS                 .pptxNURSING PROCESS AND ITS STEPS                 .pptx
NURSING PROCESS AND ITS STEPS .pptx
PoojaSen20
How to Setup Company Data in Odoo 17 Accounting App
How to Setup Company Data in Odoo 17 Accounting AppHow to Setup Company Data in Odoo 17 Accounting App
How to Setup Company Data in Odoo 17 Accounting App
Celine George
General Quiz at ChakraView 2025 | Amlan Sarkar | Ashoka Univeristy | Prelims ...
General Quiz at ChakraView 2025 | Amlan Sarkar | Ashoka Univeristy | Prelims ...General Quiz at ChakraView 2025 | Amlan Sarkar | Ashoka Univeristy | Prelims ...
General Quiz at ChakraView 2025 | Amlan Sarkar | Ashoka Univeristy | Prelims ...
Amlan Sarkar
Yale VMOC Special Report - Measles Outbreak Southwest US 3-30-2025 FINAL v2...
Yale VMOC Special Report - Measles Outbreak  Southwest US 3-30-2025  FINAL v2...Yale VMOC Special Report - Measles Outbreak  Southwest US 3-30-2025  FINAL v2...
Yale VMOC Special Report - Measles Outbreak Southwest US 3-30-2025 FINAL v2...
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
How to Manage Check Out Process in Odoo 17 Website
How to Manage Check Out Process in Odoo 17 WebsiteHow to Manage Check Out Process in Odoo 17 Website
How to Manage Check Out Process in Odoo 17 Website
Celine George
Unit1 Inroduction to Internal Combustion Engines
Unit1  Inroduction to Internal Combustion EnginesUnit1  Inroduction to Internal Combustion Engines
Unit1 Inroduction to Internal Combustion Engines
NileshKumbhar21
CLEFT LIP AND PALATE: NURSING MANAGEMENT.pptx
CLEFT LIP AND PALATE: NURSING MANAGEMENT.pptxCLEFT LIP AND PALATE: NURSING MANAGEMENT.pptx
CLEFT LIP AND PALATE: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
Antifungal agents by Mrs. Manjushri Dabhade
Antifungal agents by Mrs. Manjushri DabhadeAntifungal agents by Mrs. Manjushri Dabhade
Antifungal agents by Mrs. Manjushri Dabhade
Dabhade madam Dabhade
Conrad "Accessibility Essentials: Introductory Seminar"
Conrad "Accessibility Essentials: Introductory Seminar"Conrad "Accessibility Essentials: Introductory Seminar"
Conrad "Accessibility Essentials: Introductory Seminar"
National Information Standards Organization (NISO)
MIPLM subject matter expert Dr Robert Klinski
MIPLM subject matter expert Dr Robert KlinskiMIPLM subject matter expert Dr Robert Klinski
MIPLM subject matter expert Dr Robert Klinski
MIPLM
Knownsense 2025 Finals-U-25 General Quiz.pdf
Knownsense 2025 Finals-U-25 General Quiz.pdfKnownsense 2025 Finals-U-25 General Quiz.pdf
Knownsense 2025 Finals-U-25 General Quiz.pdf
Pragya - UEM Kolkata Quiz Club
Managing Online Signature and Payment with Odoo 17
Managing Online Signature and Payment with Odoo 17Managing Online Signature and Payment with Odoo 17
Managing Online Signature and Payment with Odoo 17
Celine George
YSPH VMOC Special Report - Measles Outbreak Southwest US 4-6-2025 ver 5.pptx
YSPH VMOC Special Report - Measles Outbreak  Southwest US 4-6-2025 ver 5.pptxYSPH VMOC Special Report - Measles Outbreak  Southwest US 4-6-2025 ver 5.pptx
YSPH VMOC Special Report - Measles Outbreak Southwest US 4-6-2025 ver 5.pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
General Quiz at Maharaja Agrasen College | Amlan Sarkar | Prelims with Answer...
General Quiz at Maharaja Agrasen College | Amlan Sarkar | Prelims with Answer...General Quiz at Maharaja Agrasen College | Amlan Sarkar | Prelims with Answer...
General Quiz at Maharaja Agrasen College | Amlan Sarkar | Prelims with Answer...
Amlan Sarkar
MIPLM subject matter expert Sascha Kamhuber
MIPLM subject matter expert Sascha KamhuberMIPLM subject matter expert Sascha Kamhuber
MIPLM subject matter expert Sascha Kamhuber
MIPLM
Different Facets of Knowledge on different View.pptx
Different Facets of Knowledge on different View.pptxDifferent Facets of Knowledge on different View.pptx
Different Facets of Knowledge on different View.pptx
NrapendraVirSingh
3. AI Trust Layer, Governance Explainability, Security & Compliance.pdf
3. AI Trust Layer, Governance  Explainability, Security & Compliance.pdf3. AI Trust Layer, Governance  Explainability, Security & Compliance.pdf
3. AI Trust Layer, Governance Explainability, Security & Compliance.pdf
Mukesh Kala
Sulfonamides by Mrs. Manjushri P. Dabhade
Sulfonamides by Mrs. Manjushri P. DabhadeSulfonamides by Mrs. Manjushri P. Dabhade
Sulfonamides by Mrs. Manjushri P. Dabhade
Dabhade madam Dabhade
UTI Quinolones by Mrs. Manjushri Dabhade
UTI Quinolones by Mrs. Manjushri DabhadeUTI Quinolones by Mrs. Manjushri Dabhade
UTI Quinolones by Mrs. Manjushri Dabhade
Dabhade madam Dabhade
NURSING PROCESS AND ITS STEPS .pptx
NURSING PROCESS AND ITS STEPS                 .pptxNURSING PROCESS AND ITS STEPS                 .pptx
NURSING PROCESS AND ITS STEPS .pptx
PoojaSen20
How to Setup Company Data in Odoo 17 Accounting App
How to Setup Company Data in Odoo 17 Accounting AppHow to Setup Company Data in Odoo 17 Accounting App
How to Setup Company Data in Odoo 17 Accounting App
Celine George
General Quiz at ChakraView 2025 | Amlan Sarkar | Ashoka Univeristy | Prelims ...
General Quiz at ChakraView 2025 | Amlan Sarkar | Ashoka Univeristy | Prelims ...General Quiz at ChakraView 2025 | Amlan Sarkar | Ashoka Univeristy | Prelims ...
General Quiz at ChakraView 2025 | Amlan Sarkar | Ashoka Univeristy | Prelims ...
Amlan Sarkar
How to Manage Check Out Process in Odoo 17 Website
How to Manage Check Out Process in Odoo 17 WebsiteHow to Manage Check Out Process in Odoo 17 Website
How to Manage Check Out Process in Odoo 17 Website
Celine George
Unit1 Inroduction to Internal Combustion Engines
Unit1  Inroduction to Internal Combustion EnginesUnit1  Inroduction to Internal Combustion Engines
Unit1 Inroduction to Internal Combustion Engines
NileshKumbhar21
CLEFT LIP AND PALATE: NURSING MANAGEMENT.pptx
CLEFT LIP AND PALATE: NURSING MANAGEMENT.pptxCLEFT LIP AND PALATE: NURSING MANAGEMENT.pptx
CLEFT LIP AND PALATE: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
Antifungal agents by Mrs. Manjushri Dabhade
Antifungal agents by Mrs. Manjushri DabhadeAntifungal agents by Mrs. Manjushri Dabhade
Antifungal agents by Mrs. Manjushri Dabhade
Dabhade madam Dabhade
MIPLM subject matter expert Dr Robert Klinski
MIPLM subject matter expert Dr Robert KlinskiMIPLM subject matter expert Dr Robert Klinski
MIPLM subject matter expert Dr Robert Klinski
MIPLM
Managing Online Signature and Payment with Odoo 17
Managing Online Signature and Payment with Odoo 17Managing Online Signature and Payment with Odoo 17
Managing Online Signature and Payment with Odoo 17
Celine George

Chapter 1: Theory of programming languages

  • 1. Principals Of Programming Languages MS. LARAIB SAEED Department of Computer Science COMSATS University Islamabad Wah Campus
  • 3. Course Details Course Title: Theory of Programming Language Course Code: CSC315 Credit Hours: 3(3,0) 1-3
  • 4. Course Grading Quizzes (4) 15% Assignments (4) 10% Midterm 25% Terminal Exam 50% 1-4
  • 5. Rules and Considerations Be on time for every class. Late arrivals may be marked absent. Active participation in discussions is encouraged. All assignments must be submitted on time. Late submissions may result in deductions. Quizzes can be surprise or scheduled, so stay prepared. For any queries, contact: laraibsaeed828@gmail.com 1-5
  • 6. Chapter 1 Topics 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 1-6
  • 7. Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Write more efficient and effective programs Convey your thoughts and intentions clearly Develop a unique programming style Improved background for choosing appropriate languages Understand the strengths and weaknesses of different languages Make informed decisions about language selection Adapt to new languages and technologies more easily Increased ability to learn new languages Recognize similarities and differences between languages Transfer knowledge and skills to new languages Learn new languages more quickly and efficiently 1-7
  • 8. Reasons for Studying Concepts of Programming Languages Better understanding of significance of implementation Data structures and algorithms Memory management and optimization Error handling and debugging Overall advancement of computing Drive innovation and research in computer science Improve software development methodologies and tools Enhance the overall quality and reliability of software systems 1-8
  • 9. Programming Domains Scientific applications Help scientists and researchers solve complex problems Large number of floating point computations Fortran Business applications Produce reports, use decimal numbers and characters COBOL 1-9
  • 10. Programming Domains Artificial intelligence Creating intelligent machines that can think and learn like humans Symbols, Logic and Reasoning rather than numbers manipulated LISP Systems programming Creating software that manages and controls computer hardware resources Need efficiency because of continuous use C Web Software Software refers to programs that run on the web, like websites, web applications, and mobile apps. Eclectic collection of languages: markup (e.g., XHTML), scripting (e.g., PHP), general-purpose (e.g., Java) 1-10
  • 11. Language Evaluation Criteria Readability: the ease with which programs can be read and understood Writability: the ease with which a language can be used to create programs Reliability: conformance to specifications (i.e., performs to its specifications) Cost: the ultimate total cost 1-11
  • 12. Evaluation Criteria: Readability Overall simplicity A manageable set of features and constructs Few feature multiplicity (means of doing the same operation) Minimal operator overloading Orthogonality A relatively small set of primitive constructs can be combined in a relatively small number of ways Every possible combination is legal Control statements The presence of well-known control structures (e.g., while statement) 1-12
  • 13. Evaluation Criteria: Readability Data types and structures The presence of adequate facilities for defining data structures Syntax considerations Identifier forms: flexible composition Special words and methods of forming compound statements Form and meaning: self-descriptive constructs, meaningful keywords 1-13
  • 14. Evaluation Criteria: Writability Simplicity and orthogonality Few constructs, a small number of primitives, a small set of rules for combining them Support for abstraction The ability to define and use complex structures or operations in ways that allow details to be ignored Expressivity A set of relatively convenient ways of specifying operations Example: the inclusion of for statement in many modern languages 1-14
  • 15. Evaluation Criteria: Reliability Type checking Testing for type errors Exception handling Intercept run-time errors and take corrective measures Aliasing Presence of two or more distinct referencing methods for the same memory location Readability and writability A language that does not support natural ways of expressing an algorithm will necessarily use unnatural approaches, and hence reduced reliability 1-15
  • 16. Evaluation Criteria: Cost Training programmers to use language Writing programs (closeness to particular applications) Compiling programs Executing programs Language implementation system: availability of free compilers Reliability: poor reliability leads to high costs Maintaining programs 1-16
  • 17. Evaluation Criteria: Others Portability The ease with which programs can be moved from one implementation to another Generality How widely a programming language can be used for different types of applications. Well-definedness How clear and precise the rules and definitions of a programming language are. 1-17
  • 18. Influences on Language Design Computer Architecture Languages are developed around the prevalent computer architecture, known as the von Neumann architecture Programming Methodologies New software development methodologies (e.g., object-oriented software development) led to new programming paradigms and by extension, new programming languages 1-18
  • 19. Computer Architecture Influence Well-known computer architecture: Von Neumann Imperative languages(How to perform a task), most dominant, because of von Neumann computers Data and programs stored in memory Memory is separate from CPU Instructions and data are piped from memory to CPU Basis for imperative languages Variables model memory cells Assignment statements model piping Iteration is efficient 1-19
  • 20. The von Neumann Architecture 1-20
  • 21. Programming Methodologies Influences 1950s and early 1960s: Simple applications; worry about machine efficiency Late 1960s: People efficiency became important; readability, better control structures structured programming top-down design and step-wise refinement Late 1970s: Process-oriented to data-oriented data abstraction Middle 1980s: Object-oriented programming Data abstraction + inheritance + polymorphism 1-21
  • 22. Language Categories Imperative Central features are variables, assignment statements, and iteration Examples: C, Pascal Functional Main means of making computations is by applying functions to given parameters Examples: LISP, Scheme Logic Rule-based (rules are specified in no particular order) Example: Prolog 1-22
  • 23. Language Categories Object-oriented Data abstraction, inheritance, late binding (Resolve meaning of a symbol or identifier at run time) Examples: Java, C++ Markup New; not a programming per se, but used to specify the layout of information in Web documents Examples: XHTML, XML 1-23
  • 24. Language Design Trade-Offs Reliability vs. cost of execution Conflicting criteria Example: Java demands all references to array elements be checked for proper indexing but that leads to increased execution costs Readability vs. writability Another conflicting criteria Example: APL provides many powerful operators (and a large number of new symbols), allowing complex computations to be written in a compact program but at the cost of poor readability Writability (flexibility) vs. reliability Another conflicting criteria Example: C++ pointers are powerful and very flexible but not reliably used 1-24
  • 25. Implementation Methods Compilation Programs are translated into machine language Pure Interpretation Programs are interpreted by another program known as an interpreter Hybrid Implementation Systems A compromise between compilers and pure interpreters 1-25
  • 26. Layered View of Computer The operating system and language implementation are layered over machine interface of a computer 1-26
  • 27. Compilation Translate high-level program (source language) into machine code (machine language) Slow translation, fast execution Compilation process has several phases: lexical analysis: converts characters in the source program into lexical units Syntax analysis: transforms lexical units into parse trees which represent the syntactic structure of program Semantics analysis: generate intermediate code code generation: machine code is generated 1-27
  • 29. Additional Compilation Terminologies Load module (executable image): the user and system code together Linking and loading: the process of collecting system program and linking them to user program 1-29
  • 30. Von Neumann Bottleneck Connection speed between a computers memory and its processor determines the speed of a computer Program instructions often can be executed a lot faster than the above connection speed; the connection speed thus results in a bottleneck Known as von Neumann bottleneck; it is the primary limiting factor in the speed of computers 1-30
  • 31. Pure Interpretation No translation Easier implementation of programs (run- time errors can easily and immediately displayed) Slower execution (10 to 100 times slower than compiled programs) Often requires more space Significant comeback with some Web scripting languages (e.g., JavaScript) Becoming rare on high-level languages 1-31
  • 33. Hybrid Implementation Systems A compromise between compilers and pure interpreters A high-level language program is translated to an intermediate language that allows easy interpretation Faster than pure interpretation Examples Perl programs are partially compiled to detect errors before interpretation Initial implementations of Java were hybrid; the intermediate form, byte code, provides portability to any machine that has a byte code interpreter and a run-time system (together, these are called Java Virtual Machine) 1-33
  • 35. Just-in-Time Implementation Systems Initially translate programs to an intermediate language Then compile intermediate language into machine code Machine code version is kept for subsequent calls JIT systems are widely used for Java programs .NET languages are implemented with a JIT system 1-35
  • 36. Preprocessors Preprocessor macros (instructions) are commonly used to specify that code from another file is to be included A preprocessor processes a program immediately before the program is compiled to expand embedded preprocessor macros A well-known example: C preprocessor expands #include, #define, and similar macros 1-36
  • 37. Programming Environments The collection of tools used in software development UNIX An older operating system and tool collection Nowadays often used through a GUI (e.g., CDE, KDE, or GNOME) that run on top of UNIX Borland JBuilder An integrated development environment for Java Microsoft Visual Studio.NET A large, complex visual environment Used to program in C#, Visual BASIC.NET, Jscript, J#, or C++ 1-37
  • 38. Summary The study of programming languages is valuable for a number of reasons: Increase our capacity to use different constructs Enable us to choose languages more intelligently Makes learning new languages easier Most important criteria for evaluating programming languages include: Readability, writability, reliability, cost Major influences on language design have been machine architecture and software development methodologies The major methods of implementing programming languages are: compilation, pure interpretation, and hybrid implementation 1-38
  • 39. 39 TIOBI Index The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third-party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written. https://www.tiobe.com/tiobe-index/
  • 40. 40