1 preliminaries

J
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

Recomendados

01 von
0101
01abel bucad
84 views5 Folien
Java@intro to programming von
Java@intro to programmingJava@intro to programming
Java@intro to programmingArvin Buendia
436 views2 Folien
Lessons Learned from building mbeddr von
Lessons Learned from building mbeddrLessons Learned from building mbeddr
Lessons Learned from building mbeddrMarkus Voelter
48 views123 Folien
Computer von
ComputerComputer
ComputerNewreborn Incarnation
361 views24 Folien
Generations of programming language von
Generations of programming languageGenerations of programming language
Generations of programming languageJAIDEVPAUL
372 views18 Folien
Lessons learned on localization testing von
Lessons learned on localization testingLessons learned on localization testing
Lessons learned on localization testinggaoliang641
793 views21 Folien

Más contenido relacionado

Was ist angesagt?

Lecture 21 - Preprocessor and Header File von
Lecture 21 - Preprocessor and Header FileLecture 21 - Preprocessor and Header File
Lecture 21 - Preprocessor and Header FileMd. Imran Hossain Showrov
774 views18 Folien
So you want to be a programmer von
So you want to be a programmerSo you want to be a programmer
So you want to be a programmerBusayo Oyebisi
467 views11 Folien
Programming von
ProgrammingProgramming
Programminga7madalr
224 views10 Folien
Computer Programming: Chapter 1 von
Computer Programming: Chapter 1Computer Programming: Chapter 1
Computer Programming: Chapter 1Atit Patumvan
1.4K views29 Folien
Generations Of Programming Languages von
Generations Of Programming LanguagesGenerations Of Programming Languages
Generations Of Programming Languagessebrown
24.4K views8 Folien
Computer Programming von
Computer ProgrammingComputer Programming
Computer Programmingwow_so
253 views10 Folien

Was ist angesagt?(20)

So you want to be a programmer von Busayo Oyebisi
So you want to be a programmerSo you want to be a programmer
So you want to be a programmer
Busayo Oyebisi467 views
Programming von a7madalr
ProgrammingProgramming
Programming
a7madalr224 views
Computer Programming: Chapter 1 von Atit Patumvan
Computer Programming: Chapter 1Computer Programming: Chapter 1
Computer Programming: Chapter 1
Atit Patumvan1.4K views
Generations Of Programming Languages von sebrown
Generations Of Programming LanguagesGenerations Of Programming Languages
Generations Of Programming Languages
sebrown24.4K views
Computer Programming von wow_so
Computer ProgrammingComputer Programming
Computer Programming
wow_so253 views
Generations of Programming Languages von Tarun Sharma
Generations of Programming LanguagesGenerations of Programming Languages
Generations of Programming Languages
Tarun Sharma9.5K views
Internationalization & localization testing von Robin0590
Internationalization & localization testingInternationalization & localization testing
Internationalization & localization testing
Robin05908.5K views
From requirements to ready to run von ijfcstjournal
From requirements to ready to runFrom requirements to ready to run
From requirements to ready to run
ijfcstjournal403 views
La 5 Programming2 von Cma Mohd
La 5   Programming2La 5   Programming2
La 5 Programming2
Cma Mohd2.6K views
Algorithm and flowchart(1) von Suneel Dogra
Algorithm and flowchart(1)Algorithm and flowchart(1)
Algorithm and flowchart(1)
Suneel Dogra770 views

Destacado

El rediseño de la institucion von
El rediseño de la institucionEl rediseño de la institucion
El rediseño de la institucionSoledad Ramos Castillo
258 views15 Folien
U.S. Organic Hop Market. Analysis and Forecast To 2025 von
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 2025IndexBox Marketing
114 views45 Folien
Untitled Presentation von
Untitled PresentationUntitled Presentation
Untitled Presentationwww.artmarmarisorganik.com
219 views5 Folien
Trabajo hardware grupo von
Trabajo hardware grupoTrabajo hardware grupo
Trabajo hardware grupovaleriagarlito
171 views19 Folien
Chuck Resume1 von
Chuck Resume1Chuck Resume1
Chuck Resume1Charles Schacht
173 views4 Folien
WACAmerica Test von
WACAmerica TestWACAmerica Test
WACAmerica TestWACAmerica
89 views2 Folien

Similar a 1 preliminaries

week1.ppt von
week1.pptweek1.ppt
week1.pptnazimsattar
15 views37 Folien
Programming language design and implemenation von
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenationAshwini Awatare
2K views28 Folien
8505548.ppt von
8505548.ppt8505548.ppt
8505548.pptmeenabairagi1
5 views16 Folien
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt von
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.pptPRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.pptSharmilaMore5
34 views10 Folien
introduction to programming languages von
introduction to programming languagesintroduction to programming languages
introduction to programming languagesNaqashAhmad14
296 views51 Folien
Comparative Study of programming Languages von
Comparative Study of programming LanguagesComparative Study of programming Languages
Comparative Study of programming LanguagesIshan Monga
2.2K views23 Folien

Similar a 1 preliminaries(20)

Programming language design and implemenation von Ashwini Awatare
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenation
Ashwini Awatare2K views
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt von SharmilaMore5
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.pptPRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
SharmilaMore534 views
introduction to programming languages von NaqashAhmad14
introduction to programming languagesintroduction to programming languages
introduction to programming languages
NaqashAhmad14296 views
Comparative Study of programming Languages von Ishan Monga
Comparative Study of programming LanguagesComparative Study of programming Languages
Comparative Study of programming Languages
Ishan Monga2.2K views
Computer programing 111 lecture 1 von ITNet
Computer programing 111 lecture 1 Computer programing 111 lecture 1
Computer programing 111 lecture 1
ITNet139 views
Introduction To Computer Programming von Hussain Buksh
Introduction To Computer ProgrammingIntroduction To Computer Programming
Introduction To Computer Programming
Hussain Buksh187 views
Third and fourth generation programming language von omeed
Third and fourth generation programming languageThird and fourth generation programming language
Third and fourth generation programming language
omeed673 views
ML Tutorial Introduction von elbop
ML Tutorial IntroductionML Tutorial Introduction
ML Tutorial Introduction
elbop558 views

Más de jigeno

Access2007 part1 von
Access2007 part1Access2007 part1
Access2007 part1jigeno
1.4K views14 Folien
Basic introduction to ms access von
Basic introduction to ms accessBasic introduction to ms access
Basic introduction to ms accessjigeno
26.1K views12 Folien
Bsit1 von
Bsit1Bsit1
Bsit1jigeno
642 views33 Folien
16 logical programming von
16 logical programming16 logical programming
16 logical programmingjigeno
508 views6 Folien
15 functional programming von
15 functional programming15 functional programming
15 functional programmingjigeno
235 views6 Folien
15 functional programming von
15 functional programming15 functional programming
15 functional programmingjigeno
285 views6 Folien

Más de jigeno(19)

Access2007 part1 von jigeno
Access2007 part1Access2007 part1
Access2007 part1
jigeno1.4K views
Basic introduction to ms access von jigeno
Basic introduction to ms accessBasic introduction to ms access
Basic introduction to ms access
jigeno26.1K views
Bsit1 von jigeno
Bsit1Bsit1
Bsit1
jigeno642 views
16 logical programming von jigeno
16 logical programming16 logical programming
16 logical programming
jigeno508 views
15 functional programming von jigeno
15 functional programming15 functional programming
15 functional programming
jigeno235 views
15 functional programming von jigeno
15 functional programming15 functional programming
15 functional programming
jigeno285 views
14 exception handling von jigeno
14 exception handling14 exception handling
14 exception handling
jigeno589 views
13 concurrency von jigeno
13 concurrency13 concurrency
13 concurrency
jigeno910 views
12 object oriented programming von jigeno
12 object oriented programming12 object oriented programming
12 object oriented programming
jigeno483 views
11 abstract data types von jigeno
11 abstract data types11 abstract data types
11 abstract data types
jigeno1.8K views
9 subprograms von jigeno
9 subprograms9 subprograms
9 subprograms
jigeno8K views
8 statement-level control structure von jigeno
8 statement-level control structure8 statement-level control structure
8 statement-level control structure
jigeno3K views
7 expressions and assignment statements von jigeno
7 expressions and assignment statements7 expressions and assignment statements
7 expressions and assignment statements
jigeno1.5K views
6 data types von jigeno
6 data types6 data types
6 data types
jigeno619 views
5 names von jigeno
5 names5 names
5 names
jigeno285 views
3 describing syntax and semantics von jigeno
3 describing syntax and semantics3 describing syntax and semantics
3 describing syntax and semantics
jigeno795 views
2 evolution of the major programming languages von jigeno
2 evolution of the major programming languages2 evolution of the major programming languages
2 evolution of the major programming languages
jigeno1.4K views
Access2007 m2 von jigeno
Access2007 m2Access2007 m2
Access2007 m2
jigeno506 views
Access2007 m1 von jigeno
Access2007 m1Access2007 m1
Access2007 m1
jigeno680 views

Último

Piloting & Scaling Successfully With Microsoft Viva von
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft VivaRichard Harbridge
12 views160 Folien
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... von
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...James Anderson
85 views32 Folien
Serverless computing with Google Cloud (2023-24) von
Serverless computing with Google Cloud (2023-24)Serverless computing with Google Cloud (2023-24)
Serverless computing with Google Cloud (2023-24)wesley chun
11 views33 Folien
Microsoft Power Platform.pptx von
Microsoft Power Platform.pptxMicrosoft Power Platform.pptx
Microsoft Power Platform.pptxUni Systems S.M.S.A.
53 views38 Folien
PRODUCT PRESENTATION.pptx von
PRODUCT PRESENTATION.pptxPRODUCT PRESENTATION.pptx
PRODUCT PRESENTATION.pptxangelicacueva6
14 views1 Folie
Five Things You SHOULD Know About Postman von
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About PostmanPostman
33 views43 Folien

Último(20)

Piloting & Scaling Successfully With Microsoft Viva von Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... von James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson85 views
Serverless computing with Google Cloud (2023-24) von wesley chun
Serverless computing with Google Cloud (2023-24)Serverless computing with Google Cloud (2023-24)
Serverless computing with Google Cloud (2023-24)
wesley chun11 views
Five Things You SHOULD Know About Postman von Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman33 views
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... von Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
Igniting Next Level Productivity with AI-Infused Data Integration Workflows von Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software263 views
Attacking IoT Devices from a Web Perspective - Linux Day von Simone Onofri
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day
Simone Onofri16 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 von Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi127 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 von IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
handbook for web 3 adoption.pdf von Liveplex
handbook for web 3 adoption.pdfhandbook for web 3 adoption.pdf
handbook for web 3 adoption.pdf
Liveplex22 views

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