slide1
Download
Skip this Video
Download Presentation
Programming Languages

Loading in 2 Seconds...

play fullscreen
1 / 13

Programming Languages - PowerPoint PPT Presentation


  • 98 Views
  • Uploaded on

Programming Languages. Functional Programming Languages. This lesson describes the concept of a function and how programs can be viewed as functions. We then study a functional language – Lisp, and discuss some of its fundamental properties. Functions and Programming.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Programming Languages' - amena-johns


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
functional programming languages

Functional Programming Languages

This lesson describes the concept of a function and how programs can be viewed as functions. We then study a functional language – Lisp, and discuss some of its fundamental properties.

functions and programming
Functions and Programming
  • Functional programming has a number of distinct advantages, which have traditionally made it popular for artificial intelligence, mathematical proof systems, and logic applications.
  • These include the uniform view of programs as functions, the treatment of functions as data, the limitation of side effects, and the use of automatic memory management.
  • A functional programming language has as a result great flexibility, conciseness of notation, and simple semantics.
the drawback
The Drawback
  • Because of their dynamic nature, such languages historically were interpreted rather than compiled,
  • The major drawback has traditionally been the inefficiency of execution of functional languages.
  • with a resulting substantial loss in execution speed.
  • Even when compilers became available, the speedups obtained were inadequate.
  • But the semantic simplicity and orthogonality of design have made it a reasonable alternative for teaching computer science.
programs as functions
Programs as Functions
  • If we ignore the details of the computation, and focus on the result, then a program becomes simply a "black box" for obtaining output from input.
  • A program is a description of a specific computation.
  • From this point of view, a program is essentially equivalent to a mathematical function:
  • Definition: A function is a rule that associates to each x from some set X of values a unique y from another set Y of values: y = f(x)
variables and assignments
Variables and Assignments
  • We can think of programs, procedures, and functions in a programming language as all being represented by the mathematical concept of a function.
  • In mathematics there is no concept of memory location, or values of variables, so that an assignment statement such as x = x + 1 makes no sense in functional programming.
  • In this sense, in functional programming, there are no variables, only constants, parameters, and values.
loops
Loops
  • Most modern functional programming languages retain some notion of variable and assignment, and so are "impure”.
  • Pure functional programming is Turing complete in that any computation may be described using functions alone.
  • One consequence of the lack of variables and assignment in functional programming is that there also can be no loops.
  • A loop must have a control variable that is assigned as the loop executes, and this is not possible without variables and assignment.
recursion
Recursion
  • How do we write repeated operations in functional form? Recursion is the essential feature.
example 2 translation of first order predicate calculus
Example 2, Translation of first-order predicate calculus
  • Another consequence of the lack of variables and assignment is that there is no notion of the internal state of a function:
  • The value of any function depends only on the values of its parameters, and not on any previous computations, including calls to the function itself.
  • The property that a function’s value depends only on the values of its parameters is called referential transparency.
  • The value of any function also cannot depend on the order of evaluation of its parameters.
no state
No State
  • The lack of variables and the referential transparency of functional programming make the semantics of functional programs particularly straightforward: there is no state.
  • Indeed, the lack of local state in functional programming makes it in a sense the opposite of object-oriented programming, where computation proceeds by changing the local state of objects.
generality
Generality
  • We express this generality of functions in functional programming by saying that functions are first-class values.
  • Composition is itself a function that takes two functions as parameters and produces another function as its returned value. Such functions are sometimes called higher-order functions.
function definitions in lisp
Function Definitions in Lisp
  • When the Lisp interpreter evaluates a list, it looks to see whether the first symbol on the list has a function definition attached to it;
  • or, put another way, whether the symbol points to a function definition.
  • If it does, the computer carries out the instructions in the definition.
  • A symbol that has a function definition is called a function.
function definitions in lisp 2
Function Definitions in Lisp (2)
  • Lisp function definition has up to five parts:
  • (defun function-name (arguments...) "optional-documentation..." (interactive argument-passing-info); optional body... )
ad