SlideShare a Scribd company logo
1 of 26
Programming Language
Paradigms
Chapter 1
Language Design Issues
Why Study Programming Language?
1. To improve ability to develop effective
algorithms:
– Many languages provide features that when used
properly are of benefit to programmer but when use
improperly may west large amount of computer time,
consuming logical errors.
– Even programmer who has used a language for years
may not understand features.
– A typical example is recursion.
– New programming methods are constantly being
introduced in the literature.
– Use of best concept like object oriented programming,
logical programming or concepts.
Why Study Programming Language?
(cont.)
2. To improve your use of your existing
programming language:
– By understanding how features in your language
are implemented, greatly increase your ability to
write efficient program.
– For example understanding how data in array,
string or records are created and manipulated, by
understanding class, objects or recursion you can
build more efficient program.
Why Study Programming Language?
(cont.)
3. To allow better choice of programming
language:
– Knowledge of variety of languages may allow the
choice of just language for particular project,
there by reducing required coding efforts.
4. To make it easier to learn a new language:
– Varity of programming language constructs and
implementation techniques allows the
programmer to learn a new programming
language more easily.
Why Study Programming Language?
(cont.)
5. To make easier to design a new language:
– For programmer who think of themselves as
designers can need to have deep understanding
of basic languages.
– For example many new languages are based on c
or pascal as implementation models. This aspect
of program design is often simplified if the
programmer is familiar with a variety of
constructs and implementation methods from
ordinary programming language.
What is Programming Language?
• A language designed for programming
computers.
• A programming language is an artificial
language designed to communicate
instructions to a machine, particularly a
computer. Programming languages can be
used to create programs that control the
behavior of a machine and/or to express
algorithms precisely.
What is Programming Language?
• Programming languages are essentially
carefully designed notations.
• Programming language use to specify,
organize different aspect of problem solving.
• The designer of programming languages have
twin goal:
– Making computing convenient for people
– Making efficient use of computing machine.
Evolution of software Architecture
• Evolution of software is a step by step process
Evolution of software Architecture
(cont.)
• The computing industry has now entered in
third major era in the development of
computer program.
• For certain class of problem certain software
or languages are defined which is tested,
modified and used with minimum investment.
• Smalltalk and Perl are cost effective in that the
overall time and effort expended in solving a
problem on computer.
Evolution of software Architecture
(cont.)
• Maintenance:
– Evolution of software also include maintenance, as
studies have shown that the largest cost involved in
any program that is used over a period of year is not
the cost of initial design, coding and testing of
program but total life cycle costs include development
as well as maintenance.
– Maintenance includes repair error, changes in
program if required as the underlying hardware or
operating system is updated and extension and
enhancement of program.
Attributes of language
• Syntax and Semantics:
– The Syntax of a programming language is what the
program looks like.
– The Semantics of a programming language is the
meaning given to the various syntactic constructs.
– For example in C to declare vector V, of integers
• Int v[10]
– In contrast in Pascal specified as
• V array[0…9]of integer
– Although they create same object at run time, their
syntax is different
Language Paradigms
• There are four basic computational models
that describe most programming today
– Imperative
– Applicative
– Rule based
– Object Oriented
Language Paradigms
• Imperative languages:
– Imperative or procedural languages are command
driven or statement oriented languages.
– The basic concept is the machine state the set of
all values for all memory locations in the
computer.
– A program consists of a sequence of statements
and the execution of each statements cause the
computer to change the value of one or more
locations in its memory that is enter a new state.
Language Paradigms
• The syntax of such languages generally has the
form
• Statment1;
• Statmenet2;
• Applicative language:
– An alternative view of the computation performed
by a programming language is to look at the
function that the program represents rather than
just the stat changes as the program executes,
statement by statement.
Language Paradigms - Applicative
language
• In applicative language rather than looking at sequence
of states that the machine must pass through in
achieving an answer the question to be asked is what is
the function that must be applied to initial machine
state by accessing initial data.
• We can view this model as a lens that takes the initial
data and by manipulating the view of memory,
produce the desired answer.
• Program development proceeds by developing
functions from previously developed functions to build
more complex function.
Language Paradigms – Rule based
language
• Rule based languages execute by checking for the
presence of certain enabling condition and when
present, executing an appropriate action the
most common rule based language is prolog also
called a logic programming language.
• Enabling conditions determine the order of
execution
• The syntax is
– Enabling condition  action1
– Enabling condition  action2
Language Paradigms – Object Oriented
Programming
• Object Oriented Programming: In this case
complex data object are build , then a limited
set of functions are designed to operate on
those data.
• Complex object are designed as execution of
simple objects, inheriting property of simpler
objects.
Language standardization
• The need for standards - to increase
portability of programs
• Problem: When to standardize a language?
• If too late - many incompatible versions
• If too early - no experience with language
• Problem: What happens with the software
developed before the standardization?
• Ideally, new standards have to be compatible
with older standards.
Internationalization
• How to specify languages useful in a
global economy?
• What character codes to use?
• Collating sequences? - How do you
alphabetize various languages?
• Dates? - What date is 10/12/01?
10-12-01? 12.10.01 ?
Is it a date in October or
December?
Internationalization
• Time? - How do you handle
• time zones,
• summer time in Europe,
• daylight savings time in US,
• Southern hemisphere is 6 months out of phase
with northern hemisphere,
• the date to change from summer to standard
time is not consistent.
• Currency? - How to handle dollars, pounds,
marks, francs, euros, etc.
Timeliness
• One important issue is when to standardize a language.
FORTRAN was initially standardized in 1966 after there
were many incompatible version.
• This lead a problem because each implementation is
different from others.
• At the other extreme Ada was standardized in 1983 before
there were any implementations
• When it was not clear weather the language would even
work.
• The first effective Ada compiler did not appear until 1987
• C and Pascal were standardized while growing and before
there were too many incompatible version.
Programming environments
Programming environment is where programs are
created, tested.
Usually consists of support tools and command
language for invoking them
Typical tools include:
•editors
•debuggers
•verifiers
•pretty printers
•test data generators
Effects on language design
Programming environments have had two
large effects on language design:
• Features aiding separate
compilation/assembly from
components
• Features aiding program testing and
debuggin
Effects on Language Design
Separate compilation:
•For large programs, different programmers will be working on
separate parts.
•This requires a language that can compile the parts and merge
together later
•Separate compilation can be difficult because subprograms might
need each other
•There are ways to provide information to subprograms during
separate compilation:
•Information may need to be redeclared (FORTRAN)
•An order of compilation may be required (Ada)
•A library containing relevant specifications may be required
(Java/C++)
Effects on Language Design
•Option 1 above uses independent compilation. The subprogram is entirely self
contained.
•The disadvantage is inability to check inconsistency of data between external
declaration and internal re declaration. You will have assembly errors even though the
subprograms may have 0 errors.
•Options 2 and 3 require the use of libraries. The body is usually omitted during the
compilation of subprograms.
•Separate compilation has the side effect of enabling name collisions issues
•Several subprograms or portions of programs may have the same name
•This may not be determined until attempting to merge all subprograms
•There are three main ways languages avoid these name collisions
•Use of naming conventions (obligation is the programmer's)
•Use of scoping rules (Used by Pascal, C, Ada)
•Add name definitions from external library(inheritance in Object oriented)
Environment Frameworks
•Support environment: Uses infrastructure services called
environment framework
Environment framework: supplies data repository, GUI, security,
communication
•Ex: An environment framework would contain the following
A window manager such as Motif
VB and Visual Studio provide for libraries to build
windows

More Related Content

What's hot

Introduction to programming principles languages
Introduction to programming principles languagesIntroduction to programming principles languages
Introduction to programming principles languagesFrankie Jones
 
16. Concurrency Control in DBMS
16. Concurrency Control in DBMS16. Concurrency Control in DBMS
16. Concurrency Control in DBMSkoolkampus
 
protocols of concurrency control
protocols of concurrency controlprotocols of concurrency control
protocols of concurrency controlMOHIT DADU
 
Chapter 2 Operating System Structures.ppt
Chapter 2 Operating System Structures.pptChapter 2 Operating System Structures.ppt
Chapter 2 Operating System Structures.pptErenJeager20
 
Algorithm analysis
Algorithm analysisAlgorithm analysis
Algorithm analysissumitbardhan
 
Three Address code
Three Address code Three Address code
Three Address code Pooja Dixit
 
Chapter 1 2 - some size factors
Chapter 1   2 - some size factorsChapter 1   2 - some size factors
Chapter 1 2 - some size factorsNancyBeaulah_R
 
Three address code In Compiler Design
Three address code In Compiler DesignThree address code In Compiler Design
Three address code In Compiler DesignShine Raj
 
10 implementing subprograms
10 implementing subprograms10 implementing subprograms
10 implementing subprogramsMunawar Ahmed
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineeringRupesh Vaishnav
 
source code metrics and other maintenance tools and techniques
source code metrics and other maintenance tools and techniquessource code metrics and other maintenance tools and techniques
source code metrics and other maintenance tools and techniquesSiva Priya
 
Lecture 14 run time environment
Lecture 14 run time environmentLecture 14 run time environment
Lecture 14 run time environmentIffat Anjum
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factorsNancyBeaulah_R
 
Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP)Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP)k33a
 
Chapter 16 - Distributed System Structures
Chapter 16 - Distributed System StructuresChapter 16 - Distributed System Structures
Chapter 16 - Distributed System StructuresWayne Jones Jnr
 
Bootstrapping in Compiler
Bootstrapping in CompilerBootstrapping in Compiler
Bootstrapping in CompilerAkhil Kaushik
 
Principle source of optimazation
Principle source of optimazationPrinciple source of optimazation
Principle source of optimazationSiva Sathya
 

What's hot (20)

Introduction to programming principles languages
Introduction to programming principles languagesIntroduction to programming principles languages
Introduction to programming principles languages
 
16. Concurrency Control in DBMS
16. Concurrency Control in DBMS16. Concurrency Control in DBMS
16. Concurrency Control in DBMS
 
COCOMO Model By Dr. B. J. Mohite
COCOMO Model By Dr. B. J. MohiteCOCOMO Model By Dr. B. J. Mohite
COCOMO Model By Dr. B. J. Mohite
 
protocols of concurrency control
protocols of concurrency controlprotocols of concurrency control
protocols of concurrency control
 
Chapter 2 Operating System Structures.ppt
Chapter 2 Operating System Structures.pptChapter 2 Operating System Structures.ppt
Chapter 2 Operating System Structures.ppt
 
Algorithm analysis
Algorithm analysisAlgorithm analysis
Algorithm analysis
 
Three Address code
Three Address code Three Address code
Three Address code
 
Chapter 1 2 - some size factors
Chapter 1   2 - some size factorsChapter 1   2 - some size factors
Chapter 1 2 - some size factors
 
Three address code In Compiler Design
Three address code In Compiler DesignThree address code In Compiler Design
Three address code In Compiler Design
 
10 implementing subprograms
10 implementing subprograms10 implementing subprograms
10 implementing subprograms
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
source code metrics and other maintenance tools and techniques
source code metrics and other maintenance tools and techniquessource code metrics and other maintenance tools and techniques
source code metrics and other maintenance tools and techniques
 
Type Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLikeType Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLike
 
Complexity of Algorithm
Complexity of AlgorithmComplexity of Algorithm
Complexity of Algorithm
 
Lecture 14 run time environment
Lecture 14 run time environmentLecture 14 run time environment
Lecture 14 run time environment
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
 
Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP)Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP)
 
Chapter 16 - Distributed System Structures
Chapter 16 - Distributed System StructuresChapter 16 - Distributed System Structures
Chapter 16 - Distributed System Structures
 
Bootstrapping in Compiler
Bootstrapping in CompilerBootstrapping in Compiler
Bootstrapping in Compiler
 
Principle source of optimazation
Principle source of optimazationPrinciple source of optimazation
Principle source of optimazation
 

Viewers also liked

Unit 2 Principles of Programming Languages
Unit 2 Principles of Programming LanguagesUnit 2 Principles of Programming Languages
Unit 2 Principles of Programming LanguagesVasavi College of Engg
 
Jimon baru presentasi SIAP UNTUK SUKSES DI MASA DEPAN
Jimon baru presentasi SIAP UNTUK SUKSES DI MASA DEPANJimon baru presentasi SIAP UNTUK SUKSES DI MASA DEPAN
Jimon baru presentasi SIAP UNTUK SUKSES DI MASA DEPANNamaku Aan
 
От стихийных емейл-рассылок к стратегическому емейл-маркетингу / кейс Oktogo
От стихийных емейл-рассылок к стратегическому емейл-маркетингу / кейс OktogoОт стихийных емейл-рассылок к стратегическому емейл-маркетингу / кейс Oktogo
От стихийных емейл-рассылок к стратегическому емейл-маркетингу / кейс OktogoNatalya Semagina
 
Rm20140507 4key
Rm20140507 4keyRm20140507 4key
Rm20140507 4keyyouwatari
 
Quote spreekt over Berkeley International Nederland
Quote spreekt over Berkeley International NederlandQuote spreekt over Berkeley International Nederland
Quote spreekt over Berkeley International NederlandBerkeley International
 
Visual Basic ADO
Visual Basic ADOVisual Basic ADO
Visual Basic ADOSpy Seat
 
Foley grammar book
Foley grammar bookFoley grammar book
Foley grammar bookfoley59658
 
Pankaj malhotra training profile
Pankaj malhotra   training profilePankaj malhotra   training profile
Pankaj malhotra training profileNupur Sood
 
CHANGEOVERFALSEHOODbcsnet6
CHANGEOVERFALSEHOODbcsnet6CHANGEOVERFALSEHOODbcsnet6
CHANGEOVERFALSEHOODbcsnet6Nkor Ioka
 
Mm3 project ppt group 1_section a
Mm3 project ppt group 1_section aMm3 project ppt group 1_section a
Mm3 project ppt group 1_section aAbhijeet Dash
 
Creacion de organigramas
Creacion de organigramasCreacion de organigramas
Creacion de organigramasinelca
 
ESPN Covers Rafael Nadal’s Next French Open Run
ESPN Covers Rafael Nadal’s Next French Open Run ESPN Covers Rafael Nadal’s Next French Open Run
ESPN Covers Rafael Nadal’s Next French Open Run Jed Drake
 
Did they mean to do that?
Did they mean to do that?Did they mean to do that?
Did they mean to do that?Hayling Island
 

Viewers also liked (20)

Unit 2 Principles of Programming Languages
Unit 2 Principles of Programming LanguagesUnit 2 Principles of Programming Languages
Unit 2 Principles of Programming Languages
 
Jimon baru presentasi SIAP UNTUK SUKSES DI MASA DEPAN
Jimon baru presentasi SIAP UNTUK SUKSES DI MASA DEPANJimon baru presentasi SIAP UNTUK SUKSES DI MASA DEPAN
Jimon baru presentasi SIAP UNTUK SUKSES DI MASA DEPAN
 
От стихийных емейл-рассылок к стратегическому емейл-маркетингу / кейс Oktogo
От стихийных емейл-рассылок к стратегическому емейл-маркетингу / кейс OktogoОт стихийных емейл-рассылок к стратегическому емейл-маркетингу / кейс Oktogo
От стихийных емейл-рассылок к стратегическому емейл-маркетингу / кейс Oktogo
 
Spring sport coats 2013
Spring sport coats 2013Spring sport coats 2013
Spring sport coats 2013
 
Rm20140507 4key
Rm20140507 4keyRm20140507 4key
Rm20140507 4key
 
Quote spreekt over Berkeley International Nederland
Quote spreekt over Berkeley International NederlandQuote spreekt over Berkeley International Nederland
Quote spreekt over Berkeley International Nederland
 
Visual Basic ADO
Visual Basic ADOVisual Basic ADO
Visual Basic ADO
 
Panda therapy
Panda therapyPanda therapy
Panda therapy
 
Green it
Green itGreen it
Green it
 
Foley grammar book
Foley grammar bookFoley grammar book
Foley grammar book
 
Pankaj malhotra training profile
Pankaj malhotra   training profilePankaj malhotra   training profile
Pankaj malhotra training profile
 
Analyze This - #SPSSac
Analyze This - #SPSSacAnalyze This - #SPSSac
Analyze This - #SPSSac
 
CHANGEOVERFALSEHOODbcsnet6
CHANGEOVERFALSEHOODbcsnet6CHANGEOVERFALSEHOODbcsnet6
CHANGEOVERFALSEHOODbcsnet6
 
Mm3 project ppt group 1_section a
Mm3 project ppt group 1_section aMm3 project ppt group 1_section a
Mm3 project ppt group 1_section a
 
Creacion de organigramas
Creacion de organigramasCreacion de organigramas
Creacion de organigramas
 
Class Action Lawsuits Explained
Class Action Lawsuits ExplainedClass Action Lawsuits Explained
Class Action Lawsuits Explained
 
Daftar isi
Daftar isiDaftar isi
Daftar isi
 
ESPN Covers Rafael Nadal’s Next French Open Run
ESPN Covers Rafael Nadal’s Next French Open Run ESPN Covers Rafael Nadal’s Next French Open Run
ESPN Covers Rafael Nadal’s Next French Open Run
 
Did they mean to do that?
Did they mean to do that?Did they mean to do that?
Did they mean to do that?
 
Connecticut Practice Research
Connecticut Practice ResearchConnecticut Practice Research
Connecticut Practice Research
 

Similar to Ch1 language design issue

Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxAsst.prof M.Gokilavani
 
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi Professor Lili Saghafi
 
Introduction to computer programming
Introduction to computer programming Introduction to computer programming
Introduction to computer programming VanessaBuensalida
 
Python-unit -I.pptx
Python-unit -I.pptxPython-unit -I.pptx
Python-unit -I.pptxcrAmth
 
Programming language design and implemenation
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenationAshwini Awatare
 
CHAPTER-1.ppt
CHAPTER-1.pptCHAPTER-1.ppt
CHAPTER-1.pptTekle12
 
Interaction With Computers FIT
Interaction With Computers FITInteraction With Computers FIT
Interaction With Computers FITRaj vardhan
 
Computer programing 111 lecture 1
Computer programing 111 lecture 1 Computer programing 111 lecture 1
Computer programing 111 lecture 1 ITNet
 
Lec21&22.pptx programing language and there study
Lec21&22.pptx programing language and there studyLec21&22.pptx programing language and there study
Lec21&22.pptx programing language and there studysamiullahamjad06
 

Similar to Ch1 language design issue (20)

Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptx
 
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
 
programming.pptx
programming.pptxprogramming.pptx
programming.pptx
 
sege.pdf
sege.pdfsege.pdf
sege.pdf
 
Introduction to computer programming
Introduction to computer programming Introduction to computer programming
Introduction to computer programming
 
Ppl 13 july2019
Ppl 13 july2019Ppl 13 july2019
Ppl 13 july2019
 
Python-unit -I.pptx
Python-unit -I.pptxPython-unit -I.pptx
Python-unit -I.pptx
 
Programming language design and implemenation
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenation
 
CHAPTER-1.ppt
CHAPTER-1.pptCHAPTER-1.ppt
CHAPTER-1.ppt
 
Introduction to Compiler design
Introduction to Compiler design Introduction to Compiler design
Introduction to Compiler design
 
Interaction With Computers FIT
Interaction With Computers FITInteraction With Computers FIT
Interaction With Computers FIT
 
Presentation-1.pptx
Presentation-1.pptxPresentation-1.pptx
Presentation-1.pptx
 
1. reason why study spl
1. reason why study spl1. reason why study spl
1. reason why study spl
 
Computer programing 111 lecture 1
Computer programing 111 lecture 1 Computer programing 111 lecture 1
Computer programing 111 lecture 1
 
Introduction to Computer Programming
Introduction to Computer ProgrammingIntroduction to Computer Programming
Introduction to Computer Programming
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Lec21&22.pptx programing language and there study
Lec21&22.pptx programing language and there studyLec21&22.pptx programing language and there study
Lec21&22.pptx programing language and there study
 
Compilers.pptx
Compilers.pptxCompilers.pptx
Compilers.pptx
 
Program Logic and Design
Program Logic and DesignProgram Logic and Design
Program Logic and Design
 
Computer Programming
Computer Programming Computer Programming
Computer Programming
 

Recently uploaded

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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...Martijn de Jong
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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 WorkerThousandEyes
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Recently uploaded (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Ch1 language design issue

  • 2. Why Study Programming Language? 1. To improve ability to develop effective algorithms: – Many languages provide features that when used properly are of benefit to programmer but when use improperly may west large amount of computer time, consuming logical errors. – Even programmer who has used a language for years may not understand features. – A typical example is recursion. – New programming methods are constantly being introduced in the literature. – Use of best concept like object oriented programming, logical programming or concepts.
  • 3. Why Study Programming Language? (cont.) 2. To improve your use of your existing programming language: – By understanding how features in your language are implemented, greatly increase your ability to write efficient program. – For example understanding how data in array, string or records are created and manipulated, by understanding class, objects or recursion you can build more efficient program.
  • 4. Why Study Programming Language? (cont.) 3. To allow better choice of programming language: – Knowledge of variety of languages may allow the choice of just language for particular project, there by reducing required coding efforts. 4. To make it easier to learn a new language: – Varity of programming language constructs and implementation techniques allows the programmer to learn a new programming language more easily.
  • 5. Why Study Programming Language? (cont.) 5. To make easier to design a new language: – For programmer who think of themselves as designers can need to have deep understanding of basic languages. – For example many new languages are based on c or pascal as implementation models. This aspect of program design is often simplified if the programmer is familiar with a variety of constructs and implementation methods from ordinary programming language.
  • 6. What is Programming Language? • A language designed for programming computers. • A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely.
  • 7. What is Programming Language? • Programming languages are essentially carefully designed notations. • Programming language use to specify, organize different aspect of problem solving. • The designer of programming languages have twin goal: – Making computing convenient for people – Making efficient use of computing machine.
  • 8. Evolution of software Architecture • Evolution of software is a step by step process
  • 9. Evolution of software Architecture (cont.) • The computing industry has now entered in third major era in the development of computer program. • For certain class of problem certain software or languages are defined which is tested, modified and used with minimum investment. • Smalltalk and Perl are cost effective in that the overall time and effort expended in solving a problem on computer.
  • 10. Evolution of software Architecture (cont.) • Maintenance: – Evolution of software also include maintenance, as studies have shown that the largest cost involved in any program that is used over a period of year is not the cost of initial design, coding and testing of program but total life cycle costs include development as well as maintenance. – Maintenance includes repair error, changes in program if required as the underlying hardware or operating system is updated and extension and enhancement of program.
  • 11. Attributes of language • Syntax and Semantics: – The Syntax of a programming language is what the program looks like. – The Semantics of a programming language is the meaning given to the various syntactic constructs. – For example in C to declare vector V, of integers • Int v[10] – In contrast in Pascal specified as • V array[0…9]of integer – Although they create same object at run time, their syntax is different
  • 12. Language Paradigms • There are four basic computational models that describe most programming today – Imperative – Applicative – Rule based – Object Oriented
  • 13. Language Paradigms • Imperative languages: – Imperative or procedural languages are command driven or statement oriented languages. – The basic concept is the machine state the set of all values for all memory locations in the computer. – A program consists of a sequence of statements and the execution of each statements cause the computer to change the value of one or more locations in its memory that is enter a new state.
  • 14. Language Paradigms • The syntax of such languages generally has the form • Statment1; • Statmenet2; • Applicative language: – An alternative view of the computation performed by a programming language is to look at the function that the program represents rather than just the stat changes as the program executes, statement by statement.
  • 15. Language Paradigms - Applicative language • In applicative language rather than looking at sequence of states that the machine must pass through in achieving an answer the question to be asked is what is the function that must be applied to initial machine state by accessing initial data. • We can view this model as a lens that takes the initial data and by manipulating the view of memory, produce the desired answer. • Program development proceeds by developing functions from previously developed functions to build more complex function.
  • 16. Language Paradigms – Rule based language • Rule based languages execute by checking for the presence of certain enabling condition and when present, executing an appropriate action the most common rule based language is prolog also called a logic programming language. • Enabling conditions determine the order of execution • The syntax is – Enabling condition  action1 – Enabling condition  action2
  • 17. Language Paradigms – Object Oriented Programming • Object Oriented Programming: In this case complex data object are build , then a limited set of functions are designed to operate on those data. • Complex object are designed as execution of simple objects, inheriting property of simpler objects.
  • 18. Language standardization • The need for standards - to increase portability of programs • Problem: When to standardize a language? • If too late - many incompatible versions • If too early - no experience with language • Problem: What happens with the software developed before the standardization? • Ideally, new standards have to be compatible with older standards.
  • 19. Internationalization • How to specify languages useful in a global economy? • What character codes to use? • Collating sequences? - How do you alphabetize various languages? • Dates? - What date is 10/12/01? 10-12-01? 12.10.01 ? Is it a date in October or December?
  • 20. Internationalization • Time? - How do you handle • time zones, • summer time in Europe, • daylight savings time in US, • Southern hemisphere is 6 months out of phase with northern hemisphere, • the date to change from summer to standard time is not consistent. • Currency? - How to handle dollars, pounds, marks, francs, euros, etc.
  • 21. Timeliness • One important issue is when to standardize a language. FORTRAN was initially standardized in 1966 after there were many incompatible version. • This lead a problem because each implementation is different from others. • At the other extreme Ada was standardized in 1983 before there were any implementations • When it was not clear weather the language would even work. • The first effective Ada compiler did not appear until 1987 • C and Pascal were standardized while growing and before there were too many incompatible version.
  • 22. Programming environments Programming environment is where programs are created, tested. Usually consists of support tools and command language for invoking them Typical tools include: •editors •debuggers •verifiers •pretty printers •test data generators
  • 23. Effects on language design Programming environments have had two large effects on language design: • Features aiding separate compilation/assembly from components • Features aiding program testing and debuggin
  • 24. Effects on Language Design Separate compilation: •For large programs, different programmers will be working on separate parts. •This requires a language that can compile the parts and merge together later •Separate compilation can be difficult because subprograms might need each other •There are ways to provide information to subprograms during separate compilation: •Information may need to be redeclared (FORTRAN) •An order of compilation may be required (Ada) •A library containing relevant specifications may be required (Java/C++)
  • 25. Effects on Language Design •Option 1 above uses independent compilation. The subprogram is entirely self contained. •The disadvantage is inability to check inconsistency of data between external declaration and internal re declaration. You will have assembly errors even though the subprograms may have 0 errors. •Options 2 and 3 require the use of libraries. The body is usually omitted during the compilation of subprograms. •Separate compilation has the side effect of enabling name collisions issues •Several subprograms or portions of programs may have the same name •This may not be determined until attempting to merge all subprograms •There are three main ways languages avoid these name collisions •Use of naming conventions (obligation is the programmer's) •Use of scoping rules (Used by Pascal, C, Ada) •Add name definitions from external library(inheritance in Object oriented)
  • 26. Environment Frameworks •Support environment: Uses infrastructure services called environment framework Environment framework: supplies data repository, GUI, security, communication •Ex: An environment framework would contain the following A window manager such as Motif VB and Visual Studio provide for libraries to build windows