This work publishes with a licence BY-NC-SA Creative Commons License
PROGRAMACION PROCEDIMENTAL. PROGRAMACION FUNCTIONAL. PROGRAMACION DECLARATIVE. PROGRAMACION ORIENTED To OBJECTS. LANGUAGES OF SCRIPT.
|Archives||Educational resources||Resources web|
In the asignatura Languages and Paradigms of Programming reasons on the concept of programming from a practical point of view. ¿Which elements are common to the programming languages? ¿What characteristic have? ¿Which are the essential elements and the accessories? ¿How design a good programming language?
We will see that the central element of the programming is the idea of construction of abstractions. A programming language prorporciona mechanisms of abstraction that allow us express a computer solution in a near language to the command that are treating.
In the course will use the programming language Scheme. It treats of a very extended variant of LISP, the language representative of the paradigm of functional programming. The utilisation of a so simple language allows us reflexionar on which are the essential elements of the programming languages and his semantic. Also it allows us go entering new paradigms and elements of programming by means of the extension of the language.
In the course will treat four big blocks:
Concepts of programming languages: common general Concepts to the design and construction of programming languages. Some contents: history and paradigms of programming languages, declarative programming vs. programming procedural, types of data, macros.
Functional programming: Study in depth of the paradigm of functional programming. Some contents: calculation lambda, computational model of replacement, recursion, programacion functional in Scheme, abstraction, structures of recursive data like lists and trees.
Imperative programming: Study of the characteristics of the imperative programming compared with the functional programming. Some contents: model of computation based in surroundings, allocation of variables, local state.
Programming oriented to objects: Study of the essential elements of the paradigm of programming oriented to object, so much from the point of view of programmer user of the paradigm as from the point of view of designer of a programming language OO.
Know and differentiate the characteristics of the distinct paradigms of programming (functional programming, procedural and oriented to objects) and identify them in concrete programming languages.
Know models of specific computation that explain the semantic of the programming languages. In concrete: model of replacement for the functional programming and model of surroundings for the programming procedural.
Use the abstraction and the recursion to design properly procedures and structures of data (smart and trees).
Be able to design, implement and correct functional programs, in concrete using the programming language Scheme.
Be able to implement characteristics of languages advanced (like types of data or mechanisms of programming oriented to objects) using a more basic language like Scheme.
It splits 1 (I): Concepts of programming languages (I)
Subject 1: Programming languages
It splits 2: functional Programming
Subject 2: Characteristics of the functional programming
Subject 3: Recursion
Subject 4: functional Programming advanced in Scheme
Subject 5: Abstraction
Subject 6: Structures of recursive data: lists and trees
It splits 1 (II): Concepts of programming languages (II)
Subject 7: Types of data
Subject 8: Macros
It splits 3: imperative Programming
Subject 9: Model of computation based in surroundings
Subject 10: Types of data mutables
It splits 4: Programming oriented to objects
Subject 11: Foundations of programming oriented to objects
Subject 12: Construction of languages oriented to objects
Programming languages. Paradigms of programming. Abstraction. Scheme Like programming language.
Theoretical approximation to the Functional Programming. Practical approximation to the Functional Programming. Functions like type of data of prime importance.
Recursion. It trusts the recursion. The space cost of the recursion. Recursive and iterative processes.
Special forms let, quote, eval. Compound data: couples. The compound data can be functions. Lists.
Generalisation of functions. Barrier of abstraction.
Hierarchical lists. Binary trees. Generic trees.
Functions with a variable number of arguments. Special forms quote and quasiquote. Macros In Scheme. Examples.
An example: vectors. Types of data labelled. Programming directed by the data. Step of messages. Structures in MzScheme.
Imperative programming. Special forms set!. Surroundings. Local state. Model of computation of Scheme based in surroundings.
Primitive set-car! And set-cdr!. Mutation. Equality. TADs With data mutables.
The Programming Oriented to Objects. POO In Scheme. Objects and classes. Inheritance. Interfaces. Variables of instance and of class.
Leaves of practices of the asignatura. They include 10 practices with abundant short exercises. It estimates necessary some 4 hours in realising each one of the practices.
Concepts, techniques, and models of computer programming
Author(is): Peter Go Roy, Seif Haridi
Edition: Cambridge, Mass : MIT Press, 2004.
Programming languages: design and implementation
Author(is): Pratt, Terrence W. , Marvin V. Zelkowitz
Edition: Mexico [etc.] : Prentice Hall Spanish American, 1998.
Modern programming languages : To practical introduction
Author(is): WEBBER, Adam Brooks
Edition: Wilsonville : Franklin, Beedle & Associates, 2003.
Programming language concepts and paradigms
Author(is): David To. Watt ; with contributions by William Findlay, John Hughes
Edition: New York [etc.] : Prentice Hall, cop. 1990.
Programming language pragmatics
Author(is): SCOTT, Michael Lee (1959-)
Edition: Amsterdam : Morgan Kaufmann, 2005.
Programming languages : principles and paradigms
Author(is): Allen Tucker, Robert Noonan
Edition: Boston [etc.] : McGraw-Hill, cop. 2002.
Simply scheme : introducing computer science
Author(is): Harvey, Brian Wright, Matthew, Abelson, Harold
Edition: Cambridge : The MIT Press, 2001.
Structure and Interpretation of Computer Programs
Author(is): Abelson, Harold, Sussman, Gerald Jay, Sussman, Julie
Edition: Cambridge, Mass. : MIT Press, 2002.
Structure and interpretation of computer programs
Author(is): Abelson, Harold
Edition: Cambridge, Mass. : MIT Press, .
The little Schemer
Author(is): Daniel P. Friedman, Matthias Felleisen ; drawings by Duane Bibby; foreword by Gerald J. Sussman
Edition: Cambridge, Massachusetts [etc.] : MIT Press, 2001.
The reasoner schemer
Author(is): FRIEDMAN, Daniel P. ; BYRD, William And. ; KYSELYOV, Oleg
Edition: Cambridge : MIT Press, 2005.
The seasoned Schemer
Author(is): Daniel P. Friedman, Matthias Felleisen ; drawings by Duane Bibby ; foreword and afterword by L. Steele
Edition: Cambridge, Massachusetts [etc.] : MIT Press, cop. 2000.
Types and programming languages
Author(is): PIERCE, Benjamin C.
Edition: Cambridge : The MIT Press, 2002.
Universidad de Alicante
Carretera de San Vicente del Raspeig s/n
03690 San Vicente del Raspeig
Tel: (+34) 96 590 3400Fax: (+34) 96 590 3464