mercredi 27 juin 2007

Corrigé des questions du PT 2007

Corrigé

1)
Il existe des langages de programmation
sans variables.

1.1) citez-en un (ou le nom d'un type
de langage entrant dans cette

catégorie)
Langages fonctionnels, exemple : Caml
1.2) quels en sont les concepts essentiels ?
fonctions, composition de fonctions,
application de fonctions


2)
Il existe des langages de spécification
sans variables.

21) B est-il sans variables ?
non.
Il existe des langages de spécification
qui sont fondamentalement sans

variables, même s'ils sont parfois mixtes
(i.e. utilisent des

variables).
2.2) Citez celui que vous avez utilisé à
l'IUT

FSP avec l'atelier LTSA
2.3) Qu'est-ce qu'un état défini en termes
des concepts de ce langage.

Donnez un exemple illustratif.
Un état est un comportement possible.
Exemple de la lampe :
ETEINTE = (tirage -> ALLUMEE),
ALLUMEE = (tirage --> ETEINTE).
Les états sont ETEINTE et ALLUMEE.

3) Prenez l'exemple de la lampe que
l'on allume en tirant une ficelle et

que l'on éteint en retirant la ficelle
pour illustrer les concepts :

3.1) d'événement
ce qui entraîne un changement d'état.
tirage de la ficelle

3.2) d'état
un comportement possible. Ici dans
l'état ETEINTE, on ne peut que tirer

sur la ficelle. Idem d'ailleurs pour
l'état ALLUMEE.

3.3) utilisez cet exemple que vous
spécifierez en B classique et en B

événementiel (Invariant et les
opérations allumer et éteindre) et en FSP

pour illustrer vos réponses à la question 2.
MACHINE
lampeClassique
SETS
ETAT = {allumee, eteinte}
VARIABLES
etatLampe
INVARIANT
etatLampe : ETAT
INITIALISATION
etatLampe := eteinte
OPERATIONS
allumer =
etatLampe := allumee;
eteindre =
etatLampe := eteinte
END

MACHINE
lampeEvénementiel
SETS
ETAT = {allumee, eteinte}
VARIABLES
etatLampe
INVARIANT
etatLampe : ETAT
INITIALISATION

etatLampe := eteinte
OPERATIONS
allumer =
SELECT etatLampe = eteinte THEN
etatLampe := allumee
END;
eteindre =
SELECT etatLampe = allumee THEN
etatLampe := eteinte
END
END

FSP

ETEINTE = (tirage -> ALLUMEE),
ALLUMEE = (tirage --> ETEINTE).

ou sans expliciter les états :
LAMPE = (tirage -> LAMPE).


3.4) Fournir le diagramme de transition
d'état étiqueté du comportement

de la lampe.
Deux ronds étiquetés l'un par allumée
et l'autre par éteinte.
Des flèches entre les ronds :
- une de éteinte vers allumée
- une de allumée vers éteinte
-selon l'état initial choisi,
une flèche pointant sur un des
ronds et n'ayant pas
de rond au départ de la flèche.
Flèche étiquetées chacune par tirer

4) Soit le texte suivant :
(Il s'agit du percement du tunnel
sous le Mont-Blanc) " [...] C'est

pourquoi, à cette époque, on avait
envisagé que sur les 12 600 mètres de

longueur totale du tunnel, les Italiens
perceraient 6 750 mètres de

galerie et les Français 5 850 mètres,
afin que la rencontre s'effectue

au
même moment." (Article paru dans
L'Economie, n° 826, 14 juin 1962).

4.1) Vos remarques pertinentes
Se rencontrer en même temps est un pléonasme !
Tant que l'autre n'est

pas au rendez-vous, la rencontre n'a pas
lieu (la communication) !

4.2) Utilisez-le pour illustrer le type
de communication qui est utilisé

en FSP (LTSA) et en CCS
C'est le rendez-vous qui est utilisé en FSP.
La communication s'y fait

lorsqu'on trouve le même nom d'événement
dans la spécification de deux

processus.

4.3) Quel est le nom donné à ce type
de communication ?

communication par rendez-vous (synchronisme)
4.4) Donnez un exemple d'un système
ayant un verrou fatal (spécifiez en

FSP)

Exemple de système avec verrou fatal :
P1 = (a -> b -> P1).
P2 = (b -> a -> P2).
||SYS = (P1 || P2).





Commentaires en vrac :
Mes questions portaient sur des choses élémentaires :
- grands types de langages de programmation (y voir un peu clair en find de 1ere année)
- mathématiques (composition de fonctions, application de fonctions)
- état, événement
- communication par rendez-vous
- verrou fatal
Il s'agissait d'illustrer en partant d'un exemple fourni.
Le corrigé vous est fourni.
==========================================


J'ai lu des phrases recopiées (j'espère qu'elles ont été mal recopiées) je ne sais où et particulièrement fumeuses.
Vous disposiez des polycopiés et sinon des cours rédigés par des enseignants compétents. Alors n'allez pas chercher ce qui est très mauvais !

Voici des textes (je n'ai pas corrigé l'orthographe) peu utiles car trop fumeux :

"le type de programmation fonctionnelle consiste en une suite de fonction"
"les états sont tous les états ..."


Il semble que beaucoup ont des difficultés de lecture du français.
A la question "qu'est ce qu'un état défini en termes des concepts de ce langage ? " (le langage est celui que l'étudiant a énoncé comme réponse à la question précédente)
j'ai lu plusieurs fois :

"un état défini est un état ...."
et bien rarement une définition exprimée avec les concepts de ce langage.

Si on a choisi FSP ou CCS, un état est défini en termes des conceps de FSP (à savoir "actions" ou "événements") comme étant la suite d'actions possible quand on est dans cet état.

Cela a été répété et illustré maintes fois, en particulier quand j'ai fait le graphe de transition d'états où je décrivais justement chaque état par une "expression d'agents" (une suite d'actions).

J'ai la preuve ! voir le présent blog spec2 !

J'ai trouvé aussi pas mal de contradictions :

"B est un langage de spécification avec variables.
Un exemple de langage de spécification sans variables est B"

L'orthographe est trop souvent du n'importe quoi. Svp apprenez le minimum d'orthographe française. C'est utile pour pouvoir spécifier en français.

J'ai eu des remarques étonnantes en termes économiques en ce qui concerne le tunnel sous le Mont-Blanc. On m'a parlé de vitesse, de rentabilité, d'efficacité. Il serait bon d'étudier les concepts élémentaires d'économie.

Je rappelle que je demandais d'utiliser le texte pour illustrer un type de communication (et je précisais même "qui est utilisé en FSP et en CCS". Ce faisant je donnais une réponse à une précédente question. Un effet de bord !)

Etonnant : les événements "tirer la ficelle" et "retirer la ficelle" et pourquoi pas "retirer retirer retirer" ?
l'événement en FSP ne se définit pas en termes d'autres événements. L'ensemble des événements est un ensemble d'éléments atomiques.

LAMPE = (tirer -> LAMPE).

ou si on veut nommer les états

ETEINTE = (tirer -> ALLUMEE),
ALLUMEE = (tirer -> ETEINTE).

si on considère deux autres événements : { allumer, éteindre}

ETEINTE = (tirer -> allumer -> ALLUMEE),
ALLUMEE = (tirer -> eteindre -> ETEINTE).

Sans référence à une théorie, il est difficile d'écrire des choses cohérentes. Merci R. Milner, T. Hoare !

lundi 18 juin 2007

Les questions de spec pour le PT

Questions

1)
Il existe des langages de programmation
sans variables.
1.1) citez-en un ou le nom d'un type de
langage entrant dans cette
catégorie)
1.2) quels en sont les concepts essentiels ?

2)
Il existe des langages de spécification
sans variables.
21) B est-il sans variables ?
Il existe des langages de spécification
qui sont fondamentalement sans
variables, même s'ils sont parfois mixtes
(i.e. utilisent des variables).
2.2) Citez celui que vous avez utilisé à l'IUT
2.3) Qu'est-ce qu'un état défini en termes
des concepts de ce langage.
Donnez un exemple illustratif.


3) Prenez l'exemple de la lampe que l'on
allume en tirant une ficelle et
que l'on éteint en retirant la ficelle
pour illustrer les concepts :
3.1) d'événement
3.2) d'état
3.3) de contrainte sur un état
3.4) utilisez cet exemple que vous
spécifierez en B classique et en B
événementiel (Invariant et une opération
principale) et en FSP pour
illustrer vos réponses à la question 2.


4) Soit le texte suivant :
(Il s'agit du percement du tunnel
sous le Mont-Blanc) " [...] C'est
pourquoi, à cette époque, on avait
envisagé que sur les 12 600 mètres de
longueur totale du tunnel, les
Italiens perceraient 6 750 mètres de
galerie et les Français 5 850 mètres,
afin que la rencontre s'effectue au
même moment." (Article paru dans
L'Economie, n° 826, 14 juin 1962).

4.1) Votre remarque pertinente sur
ce texte
4.2) Utilisez ce texte pour illustrer
le type de communication qui est
utilisé
en FSP (LTSA) et en CCS.
4.3) Quel est le nom donné à ce
type de communication ?
4.4) Donnez un exemple d'un système
ayant un verrou fatal (spécifiez en FSP)


Le corrigé et les commentaires sur
les copies seront publiés sur ce
bloc-notes sous peu.

dimanche 17 juin 2007

Ce n'est pas ...


"Les obstacles épistémologiques

  • 1945-1955 : Calculer n'est pas compter
  • 1955-1965 : Effectuer n'est pas expliciter
  • 1965-1975 : Connaître n'est pas comprendre
  • 1975-1985 : Penser n'est pas verbaliser
  • 1985-1994 : Standardiser n'est pas normaliser(1)"
Emmanuel Saint-James, mai 1993 in 3ème colloque Histoire de l'Informatique

(1) norme se traduit par standard en anglais. AFNOR en France, ANSI aux USA. Mais beaucoup de Français font la différence entre standardiser et normaliser. Si nous avons bien compris, ils utilisent "standard" comme dans l'expression "standard de fait" et "norme" dans le sens légal.

S'applique très bien à l'enseignement. Mais c'est bien loin des tendances actuelles dans notre pays.