Programming Languages - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

Programming Languages

Description:

The underlying computer which programs execute upon; ... Rule-based or logical languages execute by checking for the presence of a ... – PowerPoint PPT presentation

Number of Views:27
Avg rating:3.0/5.0
Slides: 42
Provided by: marjans
Category:

less

Transcript and Presenter's Notes

Title: Programming Languages


1
Programming Languages
  • Marjan Sirjani

2
2. Language Design Issues
  • Design to
  • Run efficiently early languages
  • Easy to write correctly new languages
  • Data typing features in ML
  • Class of C
  • Package of Ada

3
Major influences on designing a language
  • The underlying computer which programs execute
    upon
  • The execution model, or virtual computer that
    supports the language on the actual hardware
  • The computational model that the language
    implements.

4
2.1. The Structure And Operation Of A Computer
  • A computer is an integrated set of algorithms and
    data structures capable of storing and executing
    programs.
  • Hardware computer or
  • virtual computer

5
Major Components of a Computer (From a
Programming Language Designers View)
  • Data
  • Various kinds of elementary and structured data.
  • Primitive operations
  • Sequence control
  • Controlling the sequence of primitive operations
    execution.

6
Major Components of a Computer (From a
Programming Language Designers View)
  • Data access
  • Controlling the data supplied to each execution
    of an operation.
  • Storage management
  • Controlling the allocation of storage for
    programs and data.
  • Operating environment
  • Providing mechanisms for communication with an
    external environment containing programs and data.

7
Data
  • Main memory
  • High-speed register
  • High-speed cache memory
  • External files
  • Data and Program

8
operations
  • A set of build-in primitive operations
  • Arithmetic operations on each built-in numeric
    data (,-,,/)
  • Testing various properties of data items (test
    for zero, positive, and negative numbers)
  • Accessing and modifying various parts of a data
    item
  • Controlling input-output devices
  • Sequence control (jumps)

9
Sequence Control
  • There is an interpreter
  • Fetch the instruction
  • Decode instruction
  • Fetch designated operands
  • Branch to designated operation
  • Execute primitive operations 1 to n
  • Using an address register

10
Data Access
  • Access to operands of the operation

11
Storage Management
  • Keeping all resources of the computer operating
    as much as possible
  • Memory
  • Central processor
  • External data devices
  • Multiprogramming
  • Cache memory

12
Operating Environment
  • The outside world of computer
  • a set of peripherals and input-output devices

13
Computer States
  • We saw the static organization of the
    computer,
  • We also must see the dynamic operation of it
    during program execution.

14
Language Implementation
  • Translation (compilation)
  • Accept programs in some source language
  • as input and produce functionally equivalent
    programs in another object language as output.
  • Assembler assembly to machine language.
  • Compiler a high level language to assembly or
    machine code.
  • Loader,linker editor machine code in
    relocatable form to machine code really
    executable.
  • Preprocessor a high level language to a high
    level language in a standard form .

15
Language Implementation
  • Software simulation (interpretation)
  • the simulator executes the input program
    directly.

16
Differences Between Software Implementations
  • Translation versus Interpretation
  • Physical input sequence
  • Logical flow of control
  • Process each program statement exactly once
  • might process some statements repeatedly

17
Differences Between Software Implementations
  • Faster program execution
  • slow program execution
  • Loss of information about program
  • leaving statements in their original form
  • Object program much larger then the source
    program
  • no space is needed for object program

18
Firmware Computers
  • A common alternative to the strict hardware
    realization of a computer is the firmware
    computer,
  • simulated by a micro-program running on a
    special micro-programmable hardware computer.
  • (emulation)

19
2.2. Virtual Computers
  • Hardware realization
  • Physical devices
  • Firmware realization
  • microprogramming
  • Software simulation
  • Some other programming language
  • Combination of these techniques

20
Syntax and Semantics
  • Syntax what the program looks like.
  • Semantics the meaning given to the various
    syntactic constructs.
  • Example
  • V array 0..9 of integer
  • int V10

21
Hierarchies of Computers
Virtual computer developed by programmer
The language virtual computer
Operating system virtual computer
Firmware virtual computer
Actual hardware computer
22
Binding and Binding Times
  • Binding of a program element to a particular
    characteristic or property the choice of the
    property from a set of possible properties.
  • Binding time of the property for that element
    the time during program formulation or processing
    when this choice is made.

23
Examples Of Binding
  • Setting the value of an attribute
  • A variable name , type, storage area
  • A routine name formal parameters of a certain
    type, certain parameter-passing conventions,
  • A statement associated actions.

24
Classes of Binding Times
  • 1. Execution time (run time)
  • (dynamic binding)
  • 2. Translation time (compile time)
  • 3. Language implementation time
  • 4. Language definition time

25
  • 1. Execution time
  • On entry to subprogram or block.
  • Binding of formal to actual parameters in C.
  • At arbitrary points during execution .
  • Binding of variables to values by assignments.
  • (can be modified repeatedly during execution)

26
  • 2. Translation time (compile time)
  • Bindings chosen by the programmer
  • Variable names and types
  • Bindings chosen by the translator
  • Relative locations of a data object in the
    storage allocated for a procedure
  • Bindings chosen by the loader
  • Actual addresses

27
  • 3. Language implementation time
  • The details associated with the representation of
    numbers and of arithmetic operations.
  • (integer type memory representation)
  • 4. Language definition time
  • Possible statement forms, data structure types,
    program structures.
  • (integer type definition)

28
  • Programming languages differ in
  • The number of entities with which they can deal,
  • The number of attributes to be bound to
    attributes,
  • The time at which such bindings occur (binding
    time),
  • The stability of the binding (fixed or modifiable)

29
Importance of Binding Times
  • Many of the most important differences among
    languages involve differences in binding times.
  • Early binding efficiency.
  • (FORTRAN types, arithmetic operations)
  • Late binding flexibility.
  • (ML types, string manipulations)

30
Binding Time An Example
  • X X 10
  • Set of possible types for variable X.
  • Type of variable X.
  • Set of possible values for variable X.
  • Value of the variable.
  • Representation of the constant 10.
  • Properties of the operator .

31
  • Attributes of a variable
  • Name
  • Scope
  • Type
  • L-value
  • R-value

32
Name and Scope
  • Static scope binding defines the scope in terms
    of the lexical structure of a program . (C,
    Pascal)
  • Dynamic scope binding defines the scope of a
    variables name in term of program execution.
    (same dcl until new dcl)
  • (APL, LISP, SNOBOL)

33
Name and Scope (dynamic binding)
  • / block A/
  • int x
  • / block B/
  • int x
  • / block C/
  • x

34
Type
  • Static typing bind variables to their type at
    compile time, and the binding can not be changed
    during execution. Static type checking
  • Dynamic typing run-time binding between
    variables and their types.
    (according to the value assigned)

35
2.3. Language Paradigms
  • How does the program execute?
  • What sort of constructs does the language
    provide?

36
  • Four basic computational models
  • Imperative languages
  • Applicative language
  • Rule-based language
  • Object-oriented programming

37
Imperative Languages
  • Imperative or procedural languages are
    command-driven or statement-oriented languages.
  • Basic concept machine state.
  • The syntax has the form like
  • statement1
  • statement2

38
Applicative Languages
  • Applicative or functional languages look at the
    function that program represents rather than just
    to the state changes as the program executes,
    statement by statement.
  • The syntax has the form like
  • functionn(function2(function1 (data)))

39
Rule-based Languages
  • Rule-based or logical languages execute by
    checking for the presence of a certain condition
    and when it is satisfied, they execute an
    appropriate action.
  • The syntax has the form like
  • enabling condition1 action1
  • enabling condition2 action2
  • enabling conditionn actionn

40
Object-Oriented Languages
  • Object-oriented languages can be viewed as
    combining imperative and functional paradigms.
  • Abstract data types
  • inheritance
  • efficiency of imperative languages
  • flexibility and reliability of functional
    languages.

41
Generality of Computational Model
  • How one uses a programming language depends on
    the programmer.
Write a Comment
User Comments (0)
About PowerShow.com