ECTS
10 crédits
Composante
ENSEIRB-MATMECA
Code interne
EI7A
Liste des enseignements
Compilation
Composante
ENSEIRB-MATMECA
Présentation des techniques et outils standards pour la compilation des langages de programmation et pour une mise en oeuvre dans le projet [[m:IF204]].
Plan
0. Objectif d'un compilateur, pourquoi étudier la compilation 1. Expressions régulières et langages réguliers, quelques rappels 2. Langages algébriques, rappels sur les grammaires 3. Analyseurs syntaxiques mise en oeuvre dans un outil (Yacc) 4. Analyse sémantique: grammaires attribuées, calculs d'attributs tels que les types et le code5. Génération de code: pour une machine à pile, pour une machine à registres. Principaux schémas de traduction, allocation de la mémoire 6. Problèmes d'optimisation: allocation de registre, optimisation de code, ... 7. Les dernières phases de compilation: assembleur, édition de lien, chargeur.
Compétences
C2. Niveau 2C3. Niveau 2C4. Niveau 2
Génie Logiciel
Composante
ENSEIRB-MATMECA
Le but de ce cours est de présenter les méthodes et les outils modernes pour le développement de logiciels. Le génie logiciel peut être caracterisé comme étant la mise en oeuvre de principes d'ingenierie afin d'obtenir, à prix raisonnable, des logiciels fiables et efficaces sur des vraies machines. Le génie logiciel concerne pas seulement les coûts de développement, mais aussi les coûts de maintenance et d'utilisation pendant toute la vie du logiciel. Nous regarderons aussi les problèmes spécifiques à des grands systèmes (plus de 1.000.000 lignes de codes) et engendrés par le travail en équipe, ce qui oblige des approches méthodologiques pour la conception, développement et évolution du logiciel.
Le cours se compose de trois parties, assurées par des enseignants différents:
Développement agile (A. Le Houedec)
Génie Logiciel (P. Galvao, M. Aune)
Spécifications logicielles (E. Girard Smith, F. Solliec)
Compétences
C3. Niveau 2C4. Niveau 3C5. Niveau 2C6. Niveau 2C7. Niveau 2C8. Niveau 2C9. Niveau 2
Programmation Orientée Objets
Composante
ENSEIRB-MATMECA
Initiation à la programmation orientée objets avec comme langage de support Java
Plan
I Encapsulation
1) L'encpasulation
2 Les objets 2.1 Instancaition
2.2 Envoi de messages
2.3 construite une encapsulation
3) Les classes
3.1 paquetage
3.2 Classe concrète
3.3 lien a-un entre classe
3.4 Varible et Méthode de classe
II Substitution d'objets
5 La subsitution d'objets ou plolymorphisme
5.1 Relation de type/sous-type (lien est-un)
5.2 le polymorphaisme.
6 Hiérarchie de classes
6.1 héritage
6.2 Héritage d'interfaces
6.3 Héritage entre classes
6.4 Redifinition de méthodes d'instances
6.5 Classes abastraite
6.6 Héritage multiple et choix des membres hérités
III Autres mécanismes
7 Le mécanisme des exceptions
8 Les types paramétrés
Compétences
C2. Niveau 2C3. Niveau 2C4. Niveau 1C8. Niveau 2
Programmation Système
Composante
ENSEIRB-MATMECA
Cet enseignement présente les concepts et les techniques permettant de programmer dans un environnement POSIX.
Plan
1. Concepts 2. Fichiers: principes et API posix 3. Processus et gestion mémoire: abstractions, gestion mémoire, gestion des processus 4. Signaux: surveillance de processus, synchronisation 5. Mémoire partagée et synchronisation: par fichiers, memoire partagée 6. Threads: definition et API 7. Concurrence: Identification des problemes, solutions logicielles, solutions matérielles, deadlocks 8. Introduction à la programmation réseau
Compétences
C2. Niveau 2C4. Niveau 2C5. Niveau 2
Programmation C++
Composante
ENSEIRB-MATMECA
Ce cours présente les bases de la programmation C++, il suppose une connaissance de la programmation objet (classes/instances/héritage). L'accent est mis sur les outils et techniques liés à la gestion de la mémoire.