Concepts of Programming Languages Introduction - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

Concepts of Programming Languages Introduction

Description:

Increased capacity to express programming concepts. ... Borland C . A PC environment for C and C . Smalltalk. A language processor/environment ... – PowerPoint PPT presentation

Number of Views:436
Avg rating:3.0/5.0
Slides: 16
Provided by: scie356
Category:

less

Transcript and Presenter's Notes

Title: Concepts of Programming Languages Introduction


1
Concepts of ProgrammingLanguagesIntroduction
  • Högskola I Gävle
  • Brahim Hnich
  • http//www.csd.uu.se/brahim
  • brahim_at_csd.uu.se

2
Overview
  • Introduction to the course
  • goals
  • organization
  • outline
  • Introduction to Concepts of Programming Languages

3
Goals
  • Increased capacity to express programming
    concepts.
  • Improved background for choosing appropriate
    languages.
  • Increased ability to learn new languages.
  • Understanding the significance of implementation.
  • Overall advancement of computing.
  • Increased ability to design new language.

4
Organization
  • Course Homepagehttp//www.csd.uu.se/brahim/cpl.
    html
  • Schedule
  • Lecture slides
  • Html version
  • postscript version
  • Announcements
  • Other resources online
  • TextbookSebesta, Robert W. "Concepts of
    Programming Languages", Benjamin/Cummings,
    senaste uppl

5
Outline
  • Introduction
  • Functional/Logic Programming Languages
  • Describing Syntax and Semantics
  • Names, Bindings, Type Checking, and scopes
  • Data Types
  • Expressions and the assignment Statement
  • Statement-Level Control Structures
  • Subprograms
  • Implementing Subprograms
  • Abstract Data Types
  • Support for OOP
  • Concurrency
  • Exception Handling

6
Programming Domains I
  • Scientific applications
  • simple data structures (arrays, matrices)
  • control structures (loops and selection)
  • large numbers of floating-point arithmetic
  • Business applications
  • producing elaborate reports
  • precise ways of describing and storing decimal
    numbers and character data
  • the ability to specify decimal arithmetic
    operations

7
Programming Domains II
  • Artificial intelligence
  • use of symbolic rather than numeric computations
    (linked lists)
  • requires more flexibility
  • Systems programming
  • systems software
  • execution time is crucial
  • Scripting languages
  • putting a list of commands in a file to be
    executed
  • Special purpose languages

8
Evaluation Criteria I
  • Readability the ease with which programs can be
    read and understood the most important criterion
  • Overall simplicity
  • Too many components is bad
  • Multiplicity of features is bad
  • operator overloading is sometimes bad
  • Orthogonality
  • relatively small number of primitive constructs
    can be combined in a relatively small number of
    ways to build the control and data structures of
    the language
  • Makes the language easy to learn and read
  • Meaning is context independent
  • Control statements
  • Data types and structures
  • Syntax considerations

9
Evaluation Criteria II
  • Writability is a measure of how easily a
    language can be used to create programs for a
    chosen problem domain.
  • Simplicity and orthogonality
  • Support for abstraction the ability to define
    and then use complicated structures or operations
    in ways that allow many of the details to be
    ignored.
  • Expressivity very powerful operators that allow
    a great deal of computation to be accomplished
    with a very small program.
  • Reliability a program is reliable if it performs
    to its specifications under all conditions
  • Type checking
  • Exception handling
  • Aliasing having two or more distinct referencing
    methods, or names for the same memory cell
    (dangerous)
  • Readability and writability

10
Evaluation criteria III
  • Cost
  • Programmer training
  • Software creation
  • Compilation
  • Execution
  • Compiler cost
  • Poor reliability
  • Maintenance
  • Others
  • portability
  • generality
  • well-definedness

11
Primary influences on language design
  • Computer architecture
  • We use imperative languages, at least in part,
    because we use von Neumann machines
  • 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

12
Language Categories
Imperative C Pascal Functional Lisp (to
be used in labs) Logic Prolog (to be used in
labs) Object-oriented C Java Object-Pascal
(Delphi)
13
Language Design Trade-offs
  • Reliability versus cost of execution
  • Writability versus readability
  • Flexibility versus safety

14
Implementation Methods
  • Compilation
  • Translate high-level program to machine code
  • Slow translation
  • Fast execution
  • Pure interpretation
  • No translation
  • Slow execution
  • Becoming rare
  • Hybrid implementation systems
  • Small translation cost
  • Medium execution speed


15
Programming Environments
The collection of tools used in software
development UNIX An old operating system and
tool collection Borland C A PC environment for
C and C Smalltalk A language
processor/environment Microsoft Visual C A
large, complex visual environment
Write a Comment
User Comments (0)
About PowerShow.com