Misc. 1 jcmt
Programming Languages
CSE3302
Programming Languages
(things to say)
Dr. Carter Tiernan
Misc. 2 jcmt
Programming Languages
Programming Language
Paradigms
• A programming paradigm is a paradigmatic style of
programming (compare with a methodology which is a
paradigmatic style of doing software engineering).
• A programming paradigm provides (and determines) the
view that the programmer has of the execution of the
program.
• The relationship between programming paradigms and
programming languages can be complex since a
programming language can support multiple paradigms.
Misc. 3 jcmt
Programming Languages
Analysis of Paradigms
• Name structures
• Data structures
• Control structures
Misc. 4 jcmt
Programming Languages
Paradigms
• Procedural
• Object-oriented
• Functional
• Logic
What differentiates these paradigms?
Misc. 5 jcmt
Programming Languages
Paradigm Definitions
Focusing on
• actions in a program with control handled
through subprograms
• elements of a system to be modeled and the
behaviors of those elements
• application of functions with little distinction
between program and data
• defining the program logic and not explicitly
handling program control
Misc. 6 jcmt
Programming Languages
Issues with Paradigms
• One language = one paradigm?
• “Programming” vs. “Computer”
language?
• Languages that don’t ‘fit’ in the four
paradigms discussed
Misc. 7 jcmt
Programming Languages
Other Paradigms (?)
Structured Unst ructured
Imperative Declarative Message pass ing
Procedural Functional Object - oriented
Value - lev e l Function - le vel Generic
Scalar Array Collection - Orie nted
Flow - driven Event - driven Actor
Constraint Logic Relation al
Post - object Subject - oriented Concurrency - Oriented
Re flective Policy - based
Class - bas e d Prototype - based (wit h in th e con te xt of OOP)
Component - or ient e d (as in OLE) Aspect - orient e d (as i n Aspec t J)
Symbolic (as in Ma th e m atic a ) Table - Orien ted (as in MS Fo xPro)
Pipel ining (as UNI X com ma n d line) Dataflow (as in Spr eads h e e ts)
Misc. 8 jcmt
Programming Languages
Paradigm questions
• Why have different language
paradigms developed?
• Which comes first - a new language or a
new paradigm?
• How does a paradigm help us?
Misc. 9 jcmt
Programming Languages
CSE3302 Questions
• Why do we have you study languages?
(Have you learned anything that might
be useful?)
• Should we make a distinction between
“programming” and
“computer”languages as MacLennan
does? Should we teach both? Using the
language structure?
Misc. 10 jcmt
Programming Languages
CSE3302 Questions
• “concepts” approach versus the
“comparison” approach (MacLennan)
– Would you prefer the concepts approach?
– Would it be easier or harder to compare
languages?
• Topics that could be added to CSE3302?

Notesparadigms

  • 1.
    Misc. 1 jcmt ProgrammingLanguages CSE3302 Programming Languages (things to say) Dr. Carter Tiernan
  • 2.
    Misc. 2 jcmt ProgrammingLanguages Programming Language Paradigms • A programming paradigm is a paradigmatic style of programming (compare with a methodology which is a paradigmatic style of doing software engineering). • A programming paradigm provides (and determines) the view that the programmer has of the execution of the program. • The relationship between programming paradigms and programming languages can be complex since a programming language can support multiple paradigms.
  • 3.
    Misc. 3 jcmt ProgrammingLanguages Analysis of Paradigms • Name structures • Data structures • Control structures
  • 4.
    Misc. 4 jcmt ProgrammingLanguages Paradigms • Procedural • Object-oriented • Functional • Logic What differentiates these paradigms?
  • 5.
    Misc. 5 jcmt ProgrammingLanguages Paradigm Definitions Focusing on • actions in a program with control handled through subprograms • elements of a system to be modeled and the behaviors of those elements • application of functions with little distinction between program and data • defining the program logic and not explicitly handling program control
  • 6.
    Misc. 6 jcmt ProgrammingLanguages Issues with Paradigms • One language = one paradigm? • “Programming” vs. “Computer” language? • Languages that don’t ‘fit’ in the four paradigms discussed
  • 7.
    Misc. 7 jcmt ProgrammingLanguages Other Paradigms (?) Structured Unst ructured Imperative Declarative Message pass ing Procedural Functional Object - oriented Value - lev e l Function - le vel Generic Scalar Array Collection - Orie nted Flow - driven Event - driven Actor Constraint Logic Relation al Post - object Subject - oriented Concurrency - Oriented Re flective Policy - based Class - bas e d Prototype - based (wit h in th e con te xt of OOP) Component - or ient e d (as in OLE) Aspect - orient e d (as i n Aspec t J) Symbolic (as in Ma th e m atic a ) Table - Orien ted (as in MS Fo xPro) Pipel ining (as UNI X com ma n d line) Dataflow (as in Spr eads h e e ts)
  • 8.
    Misc. 8 jcmt ProgrammingLanguages Paradigm questions • Why have different language paradigms developed? • Which comes first - a new language or a new paradigm? • How does a paradigm help us?
  • 9.
    Misc. 9 jcmt ProgrammingLanguages CSE3302 Questions • Why do we have you study languages? (Have you learned anything that might be useful?) • Should we make a distinction between “programming” and “computer”languages as MacLennan does? Should we teach both? Using the language structure?
  • 10.
    Misc. 10 jcmt ProgrammingLanguages CSE3302 Questions • “concepts” approach versus the “comparison” approach (MacLennan) – Would you prefer the concepts approach? – Would it be easier or harder to compare languages? • Topics that could be added to CSE3302?