LaDissertation.com - Dissertations, fiches de lectures, exemples du BAC
Recherche

Programmation concurrente

Cours : Programmation concurrente. Recherche parmi 300 000+ dissertations

Par   •  28 Novembre 2015  •  Cours  •  1 731 Mots (7 Pages)  •  795 Vues

Page 1 sur 7

Programmation Concurrente LI330

http://www-licence.ufr-info-p6.jussieu.fr/lmd/licence/2012/ue/prc-oct2012

Evaluation : FINAL=70% CC=30% (TME 1/3 soit 10% et PARTIEL 2/3 soit 20%)

Le langage ADA :

  •  Réponse du DoD à la « crise du logiciel »
  • Processus en 7 étapes entre 1975 et 1979
  • Standard proposé par le HOLWG au DoD (MIL-STD-1815) en 1980
  • Standardisé ISO en 1983
  • 2e révision de la norme 88-95
  • 3e révision de la norme 96-2002
  • 4e révision de la norme 2003-2012
  • C’est un langage structuré fortement typé et objet
  • Inclus la gestion du parallélisme
  • Respect rigoureux de la norme (processus de certification)
  • On ne verra pas la partie objet du langage
  • C’est un langage utilisé dans de très grands projets
  • Jusqu’à des millions de ligne de code source
  • Efficace pour les maintenances sur de longue durées
  • Domaine de prédilection : systèmes (embarqués) à sécurité élevée
  • Avionique, transport, spatial, systèmes militaires

Bibliographie :

  • Programmer en Ada95 de J Barnes (Addison Wesley)
  • Programmation Concurrente et temps réel avec Ada95 de P.Breguet et L.Zaffalon

Rappels de programmation impérative séquentielle :

  • Technique clssique de description d’une grammaire d’un langage informatique
  • Mots clefs en évidence
  • Référence a des lexèmes en italique
  • Expression entre { }  répétées 0 à N fois
  • Expressions entre [ ]  optionnelles (0 à 1 fois)
  • | signifie un choix

Ex :

Expr_si  ➔ si expr_bool alors instruction [sinon instruction]

Construction :

Commentaire :

  • Texte libre n’étant pas traité par un compilateur ou interpréteur
  • Fait partie du langage  en Ada commence par –
  • Ex : --ceci est un commentaire

Séparateur :

  • Caractère ne pouvant être intégré dans un identificateur ou un mot clef du langage
  • Caractère de formatage
  • Espace tabulation passage a la ligne
  • Délimiteurs :
  • Fin d’instruction (typiquement « ; »)
  • Elément de reconnaissance de structure (typiquement (‘’,’’))

Littéraux :

  • Constante booléenne
  • False ,True
  • Constance numérique entière ou réelles
  • 10, 10.0
  • Constante caractères ou chaines de caractères
  • ‘c’ , ‘’c’’, ‘’voici une chaine’’
  • Constantes d’un type simple énuméré
  • Un type contient rouge, vert et bleu

rouge

Identificateur :

  • Permet de référencer une entité du programme
  • Variable type constante procédure, fonction, etc…
  • Respecte des règles de construction
  • Commence par une lettre, séparation des mots avec _, taille quelconque
  • Ceci_Est_Un_Identificateur
  • Les identificateurs ne sont pas casse-sensitifs par convention la première lettre d’un mot est en majuscule.

Opérateurs élémentaires :

  • Affectation
  • Recopier une zone mémoire (de taille identique)
  • ECRITURE : variable := expression
  • Comparaison
  • Egalité, comparer deux zones mémoires de taille identique
  • ECRITURE : expression=expression
  • Autres(<,>,<=,>=) la sémantique dépend du type
  • ECRITURE : epxression op_cmp expression
  • Variable_entière = 10
  • Opérateurs numériques
  • Addition, soustraction division, multiplication, puissance….
  • V * 10 – pas de ; car dans une expression
  • X+5.0*Y – fort typage => X et Y sont de type réels
  • Opérateurs booléens
  • And,or,not
  • ECRITURE : expression op_bool expression

Structure d’un programme :

  • Le point d’entrée d’un programme est une unité dont les instructions compilées seront invoquées au lancement du dit programme
  • Un programme peut s’appuyer sur d’autres unités
  • Il faut déclarer les références à ces unités
  • Un langage peut imposer des convention sur les manières d’identifier le point d’entreée
  • Un nom particulier
  • Structure type
  • Liste des unités dont on a besoin
  • Déclaration locales
  • Suites d’instruction[pic 1]

Exemple :

With Ada,Text_Io,Ada.Integer_Text_IO ;
Use Ada.Text_Io, Ada_integer_Text_IO ;

Procedure Hello is

A : Integer ;

Begin

Get(A) ;

Put(« Hello word avec a= ») :

New_Line ;

End Hello ;

  • Source contenu dans le fichier hello.adb
  • Si on compile hello.adb on obtient le fichier exécutable hello
  • Pour compiler : gnatmake hello

Types et variables

  • Variables, espace mémoire, contenant une valeur
  • Type : Ensemble de valeurs licites + des opérations
  • Certaines opérations peuvent être définie implicitement
  • Arithmétique pour les types entiers et réels
  • Assemblage (concaténation) pour les tableaux
  • Besoin minimum en général admis
  • Affectation                recopie d’une zone mémoire
  • Comparaison d’égalité      comparaison de zones mémoires
  • Remarque : on souhaite parfois s’en passer
  • Opérations d’un type
  • Les opérations définies par le programmeur s’il y a lieu
  • Les opérations implicites si elles existent à un type

Déclaration de type :

type nom_de_type is declaration de type

Type prédéfinis

  • Objectif : disposer d’un mécanisme de type intégré au langage
  • Avatange : on ne les déclare pas
  • Inconvénient : on ne maitrise pas leurs représentation
  • Booleens
  • Ensemble de deux valeurs False, True, (Fasle
  • Nombres entiers
  • Integer, Long_Integer, Short_Integer (opérateurs arithmétiques)
  • Natural (0 à +oo), Positif (1 à +oo)
  • Méfiance : la représentation dépend du compilateur
  • Nombres réels
  • Float(opérateurs arithmétique)
  • Caractères
  • Character vu commeun type énuméré prédéfinis
  • Chaines de caractères
  • String tableau de caractères (opérateurs de concaténation &)

Utilisation du String

  • Utilisation de l’unité prédéfinie Ada.Text_IO
  • Déclaration d’une variable
  • La_Chaine : String(1…15) ;
  • Chaine de 15 caractères au maximum
  • Saisie d’une chaine de caractère
  • La_Longueur : Natural ;
  • Get_Line(La_Chaine, La_Longueur) ;
  • La longueur = nombre de caractères effectivement saisis
  • Sélection d’une partie de la chaine
  • La_Chaine(3) /=’2’
  • Comparaison du 3e caractères avec le 2e 
  • Put_Line(La_Chaine(4,8)) ;
  • Affichage de la chaine a partir du 4e caractère jusqu’au 8e 

Utilisation des types non prédéfinis

  • Permet de tailler un type pour un usage particulier
  • Il faut les déclarer

Type énumérer

  • Liste d’identificateurs
  • Types couleur = {rouge, vert, bleu}
  • Opérateurs associés
  • Affectation, comparaison d’égalité (et d’inégalité)
  • Comparaison d’ordre

Types entiers

  • Permet de précser les caractéristiques sur les valeurs admises par une variable entière
  • Intervalles de valeurs
  • Les types entiers sont toujours bornés par la représentation machine

Types réels

  • Deux mode de représetntation
  • Virgule fixe (marge d’érrerur fixe sur l’intervalle de valeurs)
  • Valeur = partie entière.Partie Décimale
  • Virgule flottante
  • Valeur= Mantisse*Bexposant
  • Permet de préciser des caractéristiques sur la représentation d’un nombre réel
  • Précision
  • Partie entière, partie décimale
  • Intervalle de valeur
  • Mantisse, exposant
  • Les types réels sont toujours bornés par la représentation machine

Exemple :

Def_réel         type ident is delta expression range intervalle ;
def_réel         type ident is digits expression [range intervalle] ;
def_reel         type ident is delta expression digits expression [range intervalle] ;

Note complémentaire sur les types

  • Manipulation des caractéristiques d’un type
  • Ada s’appuie sur le naotion d’attributs prédéfinis

Nom_Type’First
Nom_Type’Last
Nom_Type’Image(Variable_Discrète)

Déclaration de variable

  • Grammaire :
  • Def_var                identificateur{, identificateur} : identiifcateur [ :=expression] ;
  • Exemple

Structures de constrole :

Conditionnelle :

  • Sémantique : execution d’une unique séquence parmi celles qui sont gardées

If N mod 4 /= 0 then
    Non_Bissextile
elsif N mod 100 … then
Bissexitle
elsfi N mod 400 then
Bissextile
Endif

...

Télécharger au format  txt (9.7 Kb)   pdf (256.9 Kb)   docx (15.3 Kb)  
Voir 6 pages de plus »
Uniquement disponible sur LaDissertation.com