SlideShare ist ein Scribd-Unternehmen logo
1 von 8
ICS 313 - Fundamentals of Programming Languages 1
ICS 313
Fundamentals of Programming Languages
Dr. Abdallah Al-Sukairi
Second Semester 2002 - 2003 (022)
King Fahd University of Petroleum & Minerals
Information & Computer Science Department
Course Outline
1. Preliminaries
2. Evolution of the Major Programming languages
3. Describing Syntax and Semantics
4. Lexical and Syntax Analysis
5. Names, Bindings, Type Checking and Scopes
6. Data Types
7. Expressions and the Assignment Statements
8. Statement-Level Control Structure
9. Subprograms
10. Abstract Data Types
11. Object-Oriented Programming
12. Concurrency
13. Exception Handling
14. Functional Programming
15. Logical Programming
ICS 313 - Fundamentals of Programming Languages 2
1. Preliminaries
Reasons to study concepts of PLs
Increased capacity to express programming
concepts
Improved background for choosing appropriate
languages
Increased ability to learn new languages
Understanding the significance of implementation
Increased ability to design new languages
Overall advancement of computing
ICS 313 - Fundamentals of Programming Languages 3
Programming Domains
Scientific applications
Business applications
Artificial intelligence
Systems programming
Scripting languages
Special purpose languages
Language Evaluation Criteria
Readability
The most important criteria
Factors
Overall simplicity
Too many features is bad
Multiplicity of features is bad
Orthogonality
Makes the language easy to learn and read
Meaning is context independent
Control statements
Data type and structures
Syntax considerations
Writability
Factors
Simplicity and orthogonality
Support for abstraction
Expressivity
ICS 313 - Fundamentals of Programming Languages 4
Language Evaluation Criteria (cont.)
Reliability
Factors
Type checking
Exception handling
Aliasing
Readability and writability
Cost
Categories
Programmer training
Software creation
Compilation
Execution
Compiler cost
Poor reliability
Maintenance
Others: portability, generality, well-definedness
Influences on language design
Computer architecture
We use imperative languages, at least in part, because we use
von Neumann machines
ICS 313 - Fundamentals of Programming Languages 5
Influences on language design (cont.)
Programming methodologies
1950s and early 1960s: Simple applications; worry about
machine efficiency
Late 1960s: People efficiency became important;
readability, better control structures
Late 1970s: Data abstraction
Middle 1980s: Object-oriented programming
Language Categories
Imperative
Functional
Logic
Object-oriented (closely related to imperative)
ICS 313 - Fundamentals of Programming Languages 6
Language Design Trade-offs
Reliability versus cost of execution
Writability versus readability
Flexibility versus safety
Implementation Methods
Compilation
Translate high-level
program to machine
code
Slow translation
Fast execution
ICS 313 - Fundamentals of Programming Languages 7
Implementation Methods (cont.)
The compilation process
Implementation Methods (cont.)
Pure interpretation
No translation
Slow execution
Becoming rare
ICS 313 - Fundamentals of Programming Languages 8
Implementation Methods (cont.)
Hybrid implementation systems
Small translation cost
Medium execution speed
Programming Environments
The collection of tools used in software development
UNIX
An old operating system and tool collection
Borland JBuilder
A PC environment for Java
Smalltalk
A language processor/environment
Microsoft Visual C++
A large, complex visual environment

Weitere ähnliche Inhalte

Was ist angesagt?

So you want to be a programmer
So you want to be a programmerSo you want to be a programmer
So you want to be a programmer
Busayo Oyebisi
 
Programming language
Programming languageProgramming language
Programming language
Ayesha Waheed
 
Generations of Programming Languages
Generations of Programming LanguagesGenerations of Programming Languages
Generations of Programming Languages
Tarun Sharma
 
Internationalization & localization testing
Internationalization & localization testingInternationalization & localization testing
Internationalization & localization testing
Robin0590
 
La 5 Programming2
La 5   Programming2La 5   Programming2
La 5 Programming2
Cma Mohd
 
Algorithm and flowchart(1)
Algorithm and flowchart(1)Algorithm and flowchart(1)
Algorithm and flowchart(1)
Suneel Dogra
 

Was ist angesagt? (20)

Lecture 21 - Preprocessor and Header File
Lecture 21 - Preprocessor and Header FileLecture 21 - Preprocessor and Header File
Lecture 21 - Preprocessor and Header File
 
So you want to be a programmer
So you want to be a programmerSo you want to be a programmer
So you want to be a programmer
 
Programming
ProgrammingProgramming
Programming
 
Computer Programming: Chapter 1
Computer Programming: Chapter 1Computer Programming: Chapter 1
Computer Programming: Chapter 1
 
Generations Of Programming Languages
Generations Of Programming LanguagesGenerations Of Programming Languages
Generations Of Programming Languages
 
Computer Programming
Computer ProgrammingComputer Programming
Computer Programming
 
Programming language
Programming languageProgramming language
Programming language
 
Generations of Programming Languages
Generations of Programming LanguagesGenerations of Programming Languages
Generations of Programming Languages
 
1. importance of c
1. importance of c1. importance of c
1. importance of c
 
Lecture 5 - Structured Programming Language
Lecture 5 - Structured Programming Language Lecture 5 - Structured Programming Language
Lecture 5 - Structured Programming Language
 
Introduction to C Programming
Introduction to C ProgrammingIntroduction to C Programming
Introduction to C Programming
 
Internationalization & localization testing
Internationalization & localization testingInternationalization & localization testing
Internationalization & localization testing
 
600Desc
600Desc600Desc
600Desc
 
From requirements to ready to run
From requirements to ready to runFrom requirements to ready to run
From requirements to ready to run
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Resume_v1.16
Resume_v1.16Resume_v1.16
Resume_v1.16
 
Programming Language
Programming LanguageProgramming Language
Programming Language
 
Programming languages
Programming languages Programming languages
Programming languages
 
La 5 Programming2
La 5   Programming2La 5   Programming2
La 5 Programming2
 
Algorithm and flowchart(1)
Algorithm and flowchart(1)Algorithm and flowchart(1)
Algorithm and flowchart(1)
 

Andere mochten auch (16)

El rediseño de la institucion
El rediseño de la institucionEl rediseño de la institucion
El rediseño de la institucion
 
U.S. Organic Hop Market. Analysis and Forecast To 2025
U.S. Organic Hop Market. Analysis and Forecast To 2025U.S. Organic Hop Market. Analysis and Forecast To 2025
U.S. Organic Hop Market. Analysis and Forecast To 2025
 
Untitled Presentation
Untitled PresentationUntitled Presentation
Untitled Presentation
 
Trabajo hardware grupo
Trabajo hardware grupoTrabajo hardware grupo
Trabajo hardware grupo
 
Chuck Resume1
Chuck Resume1Chuck Resume1
Chuck Resume1
 
WACAmerica Test
WACAmerica TestWACAmerica Test
WACAmerica Test
 
Resume - King, Patrick (Dec)
Resume - King, Patrick (Dec)Resume - King, Patrick (Dec)
Resume - King, Patrick (Dec)
 
Ahmed Elaasar CV
Ahmed Elaasar CVAhmed Elaasar CV
Ahmed Elaasar CV
 
Evaluation 2
Evaluation 2Evaluation 2
Evaluation 2
 
Actividad9 parcial
Actividad9 parcialActividad9 parcial
Actividad9 parcial
 
300.07 investigation file
300.07 investigation file300.07 investigation file
300.07 investigation file
 
Viruela Aviar
Viruela AviarViruela Aviar
Viruela Aviar
 
4 lexical and syntax analysis
4 lexical and syntax analysis4 lexical and syntax analysis
4 lexical and syntax analysis
 
Tabla de partículas
Tabla de partículasTabla de partículas
Tabla de partículas
 
Portfolio_Paper
Portfolio_PaperPortfolio_Paper
Portfolio_Paper
 
수학교실
수학교실수학교실
수학교실
 

Ähnlich wie 1 preliminaries

Programming language design and implemenation
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenation
Ashwini Awatare
 

Ähnlich wie 1 preliminaries (20)

week1.ppt
week1.pptweek1.ppt
week1.ppt
 
Programming language design and implemenation
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenation
 
8505548.ppt
8505548.ppt8505548.ppt
8505548.ppt
 
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptxCobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
 
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.pptPRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
 
introduction to programming languages
introduction to programming languagesintroduction to programming languages
introduction to programming languages
 
Programming Language Paradigms February.ppt
Programming Language Paradigms February.pptProgramming Language Paradigms February.ppt
Programming Language Paradigms February.ppt
 
Comparative Study of programming Languages
Comparative Study of programming LanguagesComparative Study of programming Languages
Comparative Study of programming Languages
 
Unit 1_Evaluation Criteria_session 2.pptx
Unit 1_Evaluation Criteria_session 2.pptxUnit 1_Evaluation Criteria_session 2.pptx
Unit 1_Evaluation Criteria_session 2.pptx
 
Ppl 13 july2019
Ppl 13 july2019Ppl 13 july2019
Ppl 13 july2019
 
CSCorganization of programming languages
CSCorganization of programming languagesCSCorganization of programming languages
CSCorganization of programming languages
 
Computer programing 111 lecture 1
Computer programing 111 lecture 1 Computer programing 111 lecture 1
Computer programing 111 lecture 1
 
Principles of programming languages. Detail notes
Principles of programming languages. Detail notesPrinciples of programming languages. Detail notes
Principles of programming languages. Detail notes
 
600Desc
600Desc600Desc
600Desc
 
Lecture_1 & 2.pptx
Lecture_1 & 2.pptxLecture_1 & 2.pptx
Lecture_1 & 2.pptx
 
Introduction To Computer Programming
Introduction To Computer ProgrammingIntroduction To Computer Programming
Introduction To Computer Programming
 
3. criteria
3. criteria3. criteria
3. criteria
 
Preliminary-Examination.docx
Preliminary-Examination.docxPreliminary-Examination.docx
Preliminary-Examination.docx
 
English de lenguaje de programacion
English de lenguaje de programacionEnglish de lenguaje de programacion
English de lenguaje de programacion
 
Computer Programming
Computer Programming Computer Programming
Computer Programming
 

Mehr von jigeno

Basic introduction to ms access
Basic introduction to ms accessBasic introduction to ms access
Basic introduction to ms access
jigeno
 
16 logical programming
16 logical programming16 logical programming
16 logical programming
jigeno
 
15 functional programming
15 functional programming15 functional programming
15 functional programming
jigeno
 
15 functional programming
15 functional programming15 functional programming
15 functional programming
jigeno
 
14 exception handling
14 exception handling14 exception handling
14 exception handling
jigeno
 
13 concurrency
13 concurrency13 concurrency
13 concurrency
jigeno
 
12 object oriented programming
12 object oriented programming12 object oriented programming
12 object oriented programming
jigeno
 
11 abstract data types
11 abstract data types11 abstract data types
11 abstract data types
jigeno
 
9 subprograms
9 subprograms9 subprograms
9 subprograms
jigeno
 
8 statement-level control structure
8 statement-level control structure8 statement-level control structure
8 statement-level control structure
jigeno
 
7 expressions and assignment statements
7 expressions and assignment statements7 expressions and assignment statements
7 expressions and assignment statements
jigeno
 
6 data types
6 data types6 data types
6 data types
jigeno
 
5 names
5 names5 names
5 names
jigeno
 
3 describing syntax and semantics
3 describing syntax and semantics3 describing syntax and semantics
3 describing syntax and semantics
jigeno
 
2 evolution of the major programming languages
2 evolution of the major programming languages2 evolution of the major programming languages
2 evolution of the major programming languages
jigeno
 
Access2007 m2
Access2007 m2Access2007 m2
Access2007 m2
jigeno
 
Access2007 m1
Access2007 m1Access2007 m1
Access2007 m1
jigeno
 

Mehr von jigeno (19)

Access2007 part1
Access2007 part1Access2007 part1
Access2007 part1
 
Basic introduction to ms access
Basic introduction to ms accessBasic introduction to ms access
Basic introduction to ms access
 
Bsit1
Bsit1Bsit1
Bsit1
 
16 logical programming
16 logical programming16 logical programming
16 logical programming
 
15 functional programming
15 functional programming15 functional programming
15 functional programming
 
15 functional programming
15 functional programming15 functional programming
15 functional programming
 
14 exception handling
14 exception handling14 exception handling
14 exception handling
 
13 concurrency
13 concurrency13 concurrency
13 concurrency
 
12 object oriented programming
12 object oriented programming12 object oriented programming
12 object oriented programming
 
11 abstract data types
11 abstract data types11 abstract data types
11 abstract data types
 
9 subprograms
9 subprograms9 subprograms
9 subprograms
 
8 statement-level control structure
8 statement-level control structure8 statement-level control structure
8 statement-level control structure
 
7 expressions and assignment statements
7 expressions and assignment statements7 expressions and assignment statements
7 expressions and assignment statements
 
6 data types
6 data types6 data types
6 data types
 
5 names
5 names5 names
5 names
 
3 describing syntax and semantics
3 describing syntax and semantics3 describing syntax and semantics
3 describing syntax and semantics
 
2 evolution of the major programming languages
2 evolution of the major programming languages2 evolution of the major programming languages
2 evolution of the major programming languages
 
Access2007 m2
Access2007 m2Access2007 m2
Access2007 m2
 
Access2007 m1
Access2007 m1Access2007 m1
Access2007 m1
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

1 preliminaries

  • 1. ICS 313 - Fundamentals of Programming Languages 1 ICS 313 Fundamentals of Programming Languages Dr. Abdallah Al-Sukairi Second Semester 2002 - 2003 (022) King Fahd University of Petroleum & Minerals Information & Computer Science Department Course Outline 1. Preliminaries 2. Evolution of the Major Programming languages 3. Describing Syntax and Semantics 4. Lexical and Syntax Analysis 5. Names, Bindings, Type Checking and Scopes 6. Data Types 7. Expressions and the Assignment Statements 8. Statement-Level Control Structure 9. Subprograms 10. Abstract Data Types 11. Object-Oriented Programming 12. Concurrency 13. Exception Handling 14. Functional Programming 15. Logical Programming
  • 2. ICS 313 - Fundamentals of Programming Languages 2 1. Preliminaries Reasons to study concepts of PLs Increased capacity to express programming concepts Improved background for choosing appropriate languages Increased ability to learn new languages Understanding the significance of implementation Increased ability to design new languages Overall advancement of computing
  • 3. ICS 313 - Fundamentals of Programming Languages 3 Programming Domains Scientific applications Business applications Artificial intelligence Systems programming Scripting languages Special purpose languages Language Evaluation Criteria Readability The most important criteria Factors Overall simplicity Too many features is bad Multiplicity of features is bad Orthogonality Makes the language easy to learn and read Meaning is context independent Control statements Data type and structures Syntax considerations Writability Factors Simplicity and orthogonality Support for abstraction Expressivity
  • 4. ICS 313 - Fundamentals of Programming Languages 4 Language Evaluation Criteria (cont.) Reliability Factors Type checking Exception handling Aliasing Readability and writability Cost Categories Programmer training Software creation Compilation Execution Compiler cost Poor reliability Maintenance Others: portability, generality, well-definedness Influences on language design Computer architecture We use imperative languages, at least in part, because we use von Neumann machines
  • 5. ICS 313 - Fundamentals of Programming Languages 5 Influences on language design (cont.) Programming methodologies 1950s and early 1960s: Simple applications; worry about machine efficiency Late 1960s: People efficiency became important; readability, better control structures Late 1970s: Data abstraction Middle 1980s: Object-oriented programming Language Categories Imperative Functional Logic Object-oriented (closely related to imperative)
  • 6. ICS 313 - Fundamentals of Programming Languages 6 Language Design Trade-offs Reliability versus cost of execution Writability versus readability Flexibility versus safety Implementation Methods Compilation Translate high-level program to machine code Slow translation Fast execution
  • 7. ICS 313 - Fundamentals of Programming Languages 7 Implementation Methods (cont.) The compilation process Implementation Methods (cont.) Pure interpretation No translation Slow execution Becoming rare
  • 8. ICS 313 - Fundamentals of Programming Languages 8 Implementation Methods (cont.) Hybrid implementation systems Small translation cost Medium execution speed Programming Environments The collection of tools used in software development UNIX An old operating system and tool collection Borland JBuilder A PC environment for Java Smalltalk A language processor/environment Microsoft Visual C++ A large, complex visual environment