INF8541 Paradigmes de programmation
Syllabus
Automne 2001
- Professeur:
- Guy Tremblay
- Local:
- PK-4435
- Téléphone:
- 987-3000 poste 8213#
- Email:
- tremblay.guy@uqam.ca
Horaire du cours: Mardi 18:00 - 21:00 (local SH-2540)
Étude comparative et critique des divers paradigmes. Langages
procéduraux. Programmation fonctionnelle, logique, parallèle et
orientée-objet. Méthodologies de programmation. Propriétés
formelles des paradigmes.
Général:
Initier les étudiant-e-s aux
principaux paradigmes de la programmation parallèle.
Spécifiques:
À la fin du cours,
l'étudiant-e devrait être capable ...
- d'expliquer et d'utiliser les principales stratégies de
programmation parallèle;
- de lire des programmes parallèles écrits dans divers
langages;
- de développer des programmes (en Threaded-C) fonctionnant sur
une véritable machine parallèle;
- d'expliquer les forces et faiblesses des différents
paradigmes;
- Exposés magistraux
- Petits travaux de programmation
- Projet de programmation parallèle
- Lectures d'articles et discussions/exposés
- 1.
- Introduction:
- Ce qu'est la programmation parallèle
- Aperçu des diffénts paradigmes de programmation
parallèle: programmation impérative vs. fonctionnelle vs. logique; parallélisme implicite vs. explicite; mémoire partagée
vs. échange de messages
- 2.
- Aperçu des architectures parallèles
- Classification de Flynn
- Multi-processeurs vs. multi-ordinateurs
- Mémoire partagée vs. mémoire distribuée
- Architectures multi-contextes
- 3.
- Programmation impérative
- Processus, tâches, threads ; synchronisation et
communication
- Programmation par variables partagées: cadenas, sémaphores
et barrières, moniteurs
- Programmation par échanges de messages: communication
asynchrone; RPC et rendez-vous
- Exemples de langages: Threaded-C, POSIX, Java, MPI, Ada
- 4.
- Programmation fonctionnelle
- Caractéristiques générales de la programmation
fonctionnelle et fondements théoriques (
-calcul)
- Les divers types de langages fonctionnels: stricts, paresseux,
indulgents
- Exemples de langages: Haskell/pH, Erlang
- 5.
- Programmation logique
- Caractéristiques générale de la programmation logique et
fondements théoriques
- Les principaux types de langages logique
- Exemples de langages: PARLOG, CCP.
- 6.
- Exposés par les étudiant-e-s
+ Travaux de programmation parallèle (en Threaded-C):
-

-

+ Exercices:
-

+ Exposé et résumé
-

-

* Les travaux, les exercices, l'exposé et le
résumé écrit devront être faits individuellement.
* Une pénalité de 10 % par jour de retard sera
appliquée pour la remise des travaux.
* La qualité du français sera prise en
considération, tant dans l'examen que dans l'exposé et le
résumé écrit (jusqu'à 10 % de pénalité).
Foundations of Multithreaded, Parallel, and Distributed
Programming , G.R. Andrews, Addison-Wesley, 2000. Disponible à la
COOP-UQAM (Sciences).
Certains éléments utiles pour le cours seront mis à la
disposition des étudiants par l'intermédiaire du site suivant:
http://www.labunix.uqam.ca/~tremblay_gu/INF8541/
- AVWW93
-
J. Armstrong, R. Virding, C. Wikstrom, and M. Williams.
Concurrent Programming in ERLANG (Second Edition).
Prentice-Hall, 1993.
- CG90
-
N. Carriero and D. Gelernter.
How to Write Parallel Programs -- A First Course.
The MIT Press, 1990.
- CS99
-
D.E. Culler and J.P. Singh.
Parallel Computer Architecture -- A Hardware/Software
Interface.
Morgan Kaufmann Publishers, 1999.
- Dav92
-
A.J.T. Davie.
Introduction to functional programming systems using Haskell.
Cambridge University Press, 1992.
[QA76.62D39].
- FH88
-
A.J. Field and P.G. Harrison.
Functional Programming.
Addison-Wesley Publishers Ltd., 1988.
[QA76.6 F477].
- Fos95
-
I. Foster.
Designing and Building Parallel Programs.
Addison-Wesley, 1995.
- Kel89
-
P. Kelly.
Functional Programming for Loosely-Coupled Multiprocessors.
Research Monographs in Parallel and Distributed Computing. The MIT
Press, 1989.
- Lea00
-
D. Lea.
Concurrent Programming in Java -- Design Principles and
Patterns (Second Edition).
Addison-Wesley, 2000.
- MK99
-
J. Magee and J. Kramer.
Concurrency -- State Models & Java Programs.
John Wiley & Sons, 1999.
- Pac97
-
P.S. Pacheco.
Parallel Programming with MPI.
Morgan Kaufman Publ., 1997.
- ST95
-
D.B. Skillicorn and D. Talia.
Programming Languages for Parallel Processing.
IEEE Computer Society Press, 1995.
- Tho96
-
S. Thompson.
Haskell -- The Craft of Functional Programming.
Addison-Wesley, 1996.
- TTM+00
-
G. Tremblay, K.B. Theobald, C.J. Morrone, M.D. Butala, J.N. Amaral, and G.R.
Gao.
Threaded-C language reference manual (release 2.0).
CAPSL Technical Memo 39, Univ. of Delaware, Sept. 2000.
http://www.capsl.udel.edu/EARTH/threaded-C-ref-manual.ps.gz.
- WA99
-
B. Wilkinson and M. Allen.
Parallel Programming -- Techniques and Applications Using
Networked Workstations and Parallel Computers.
Prentice-Hall, 1999.
- Wil95
-
G.V. Wilson.
Practical Parallel Programming.
The MIT Press Scientific and Enginerring Computing Series, 1995.
Remarque: Une bibliographie plus détaillée
est disponible à l'URL suivant:
http://www.labunix.uqam.ca/~tremblay_gu/chercher-reference.cgi
INF8541 Paradigmes de programmation
Syllabus
This document was generated using the
LaTeX2HTML translator Version 97.1 (release) (July 13th, 1997)
Copyright © 1993, 1994, 1995, 1996, 1997,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
The command line arguments were:
latex2html -split +0 -auto_navigation syllabus.tex.
The translation was initiated by Tremblay Guy on 8/29/2001
Tremblay Guy
8/29/2001