.rs .\" Troff code generated by TPS Convert from ITU Original Files .\" Not Copyright ( c) 1991 .\" .\" Assumes tbl, eqn, MS macros, and lots of luck. .TA 1c 2c 3c 4c 5c 6c 7c 8c .ds CH .ds CF .EQ delim @@ .EN .nr LL 40.5P .nr ll 40.5P .nr HM 3P .nr FM 6P .nr PO 4P .nr PD 9p .po 4P .rs \v | 5i' .LP \fB1\fR \fBIntroduction au LED\fR .LP 1.1 \fIIntroduction\fR .LP Le but poursuivi, en recommandant l'utilisation du LDS (langage de description et de sp\*'ecification fonctionnelles), est d'avoir un langage permettant de sp\*'ecifier et de d\*'ecrire sans ambigu\*:it\*'e le comportement des syst\*`emes de t\*'el\*'ecommunication. Les sp\*'ecifications et les descriptions faites \*`a l'aide du LDS doivent \* | tre formelles dans ce sens qu'il doit \* | tre possible de les analyser et de les interpr\*'eter sans ambigu\*:it\*'e. .LP Les termes sp\*'ecification et description sont utilis\*'es dans le sens ci\(hyapr\*`es: .LP a) la sp\*'ecification d'un syst\*`eme est la description du comportement souhait\*'e de celui\(hyci, et .LP b) la description d'un syst\*`eme est la description du comportement r\*'eel de celui\(hyci. .LP .LP \fIRemarque\fR \ \(em\ Etant donn\*'e qu'il n'est pas fait de distinction entre l'utilisation du LDS pour la sp\*'ecification et son utilisation pour la description, le terme sp\*'ecification dans le texte qui suit est utilis\*'e pour d\*'esigner \*`a la fois le comportement souhait\*'e et le comportement r\*'eel. .LP Une sp\*'ecification du syst\*`eme, au sens large, est la sp\*'ecification \*`a la fois du comportement et d'un ensemble de param\*`etres g\*'en\*'eraux du syst\*`eme. Toutefois, le LDS ne vise qu'\*`a d\*'ecrire les aspects relatifs au comportement d'un syst\*`eme; les param\*`etres g\*'en\*'eraux concernant des propri\*'et\*'es telles que la capacit\*'e et le poids doivent \* | tre d\*'ecrits \*`a l'aide de techniques diff\*'erentes. .LP 1.1.1 \fIObjectifs\fR .LP Les objectifs g\*'en\*'eraux qui ont \*'et\*'e pris en compte lors de la d\*'efinition du LDS sont de fournir un langage: .LP \fR a) facile \*`a apprendre, \*`a utiliser et \*`a interpr\*'eter; .LP .LP b) permettant l'\*'elaboration de sp\*'ecifications d\*'epourvues d'ambigu\*:it\*'e pour faciliter la soumission des offres et le partage des commandes; .LP c) extensible pour permettre un d\*'eveloppement ult\*'erieur; .LP d) permettant l'application de plusieurs m\*'ethodologies de sp\*'ecification et de conception de syst\*`eme, sans supposer a priori l'une quelconque de ces m\*'ethodologies. .LP 1.1.2 \fIDomaine d'application\fR .LP Le domaine d'application principal du LDS est la description du comportement des syst\*`emes en temps r\*'eel dans certains de leurs aspects. Ces applications comprennent: .LP .LP a) le traitement des appels (par exemple: \*'ecoulement, signalisation t\*'el\*'ephonique, comptage aux fins de taxation,\ etc.) dans les syst\*`emes de commutation; .LP b) la maintenance et la rel\*`eve des d\*'erangements (par exemple: alarme, rel\*`eve automatique des d\*'erangements, essais p\*'eriodiques,\ etc.) dans les syst\*`emes g\*'en\*'eraux de t\*'el\*'ecommunication; .LP c) la commande du syst\*`eme (par exemple: protection contre les surcharges, proc\*'edures de modification et d'extension,\ etc.); .LP d) les fonctions d'exploitation et de maintenance, la gestion des r\*'eseaux; .LP e) les protocoles de communication de donn\*'ees. .LP Il va de soi que le LDS peut aussi servir \*`a la sp\*'ecification fonctionnelle du comportement d'un objet lorsque celui\(hyci peut \* | tre sp\*'ecifi\*'e au moyen d'un mod\*`ele discret, c'est\(hy\*`a\(hydire un objet communiquant avec son environnement au moyen de messages discrets. .LP .LP Le LDS est un langage particuli\*`erement riche qui peut \* | te utilis\*'e \*`a la fois pour des sp\*'ecifications de haut niveau informelles (et/ou formellement incompl\*`etes), des sp\*'ecifications partiellement formelles et des sp\*'ecifications d\*'etaill\*'ees. L'utilisateur doit choisir les parties appropri\*'ees du LDS en fonction du niveau de communication souhait\*'e et de l'environnement dans lequel le langage sera utilis\*'e. Selon l'environnement dans lequel une sp\*'ecification est utilis\*'ee, certains \*'el\*'ements qui rel\*`event du simple bon sens pour l'\*'emetteur et le destinataire de la sp\*'ecification, ne seront pas explicit\*'es. .LP Ainsi, le LDS peut \* | tre utilis\*'e pour: .LP a) \*'etablir les sp\*'ecifications d'une installation, .LP b) \*'etablir les sp\*'ecifications d'un syst\*`eme, .LP c) \*'etablir des Recommandations du CCITT, .LP d) \*'etablir des sp\*'ecifications de conception d'un syst\*`eme, .LP e) \*'etablir des sp\*'ecifications d\*'etaill\*'ees, .LP .LP f) concevoir un syst\*`eme (\*`a la fois globalement et dans le d\*'etail), .LP g) effectuer des essais d'un syst\*`eme, .LP l'organisation \*`a laquelle appartient l'utilisateur pouvant choisir le niveau d'application du LDS qui convient. .LP .bp .LP 1.1.3 \fISp\*'ecification d'un syst\*`eme\fR .LP Le LDS d\*'ecrit le comportement d'un syst\*`eme sous la forme de stimulus/r\*'eaction, \*'etant admis que les stimuli aussi bien que les r\*'eactions sont des entit\*'es discr\*`etes et contiennent de l'information. En particulier, la sp\*'ecification d'un syst\*`eme est vue comme \*'etant la s\*'equence de r\*'eactions associ\*'ee \*`a une s\*'equence de stimuli. .LP Le mod\*`ele de sp\*'ecification d'un syst\*`eme est fond\*'e sur la notion de machine \*`a \*'etats finis \*'etendue. .LP .LP Le LDS fait appel \*`a des concepts structurels qui facilitent la sp\*'ecification des grands syst\*`emes et des syst\*`emes complexes. Il est ainsi possible de subdiviser la sp\*'ecification d'un syst\*`eme en unit\*'es faciles \*`a g\*'erer qui peuvent \* | tre trait\*'ees et comprises de mani\*`ere ind\*'ependante. La subdivision peut s'op\*'erer en plusieurs \*'etapes qui permettent d'obtenir une structure hi\*'erarchique d'unit\*'es d\*'efinissant le syst\*`eme \*`a diff\*'erents niveaux. .LP 1.2 \fIGrammaires du LDS\fR .LP Le LDS offre le choix entre deux formes syntaxiques diff\*'erentes pour repr\*'esenter un syst\*`eme: une repr\*'esentation graphique (LDS/GR) et une repr\*'esentation textuelle (LDS/PR). Comme ces formes sont toutes les deux des repr\*'esentations concr\*`etes de la m\* | me s\*'emantique du LDS, elles sont \*'equivalentes du point de vue s\*'emantique. En particulier, elles sont toutes les deux \*'equivalentes \*`a une grammaire abstraite en ce qui concerne les concepts correspondants. .LP .LP Un sous\(hyensemble du LDS/PR est commun avec le LDS/GR. Ce sous\(hyensemble est appel\*'e grammaire textuelle commune. .LP La figure\ 1.1 montre les relations qui existent entre le LDS/PR, le LDS/GR, les grammaires concr\*`etes et la grammaire abstraite. .LP .rs .sp 22P .ad r \fBFigure 1.1, p.\fR .ad b .RT .LP A chaque grammaire concr\*`ete, est associ\*'ee sa propre syntaxe et les rapports qu'elle a avec la grammaire abstraite (c'est\(hy\*`a\(hydire la mani\*`ere de la transformer en syntaxe abstraite). Avec cette m\*'ethode, la d\*'efinition de la s\*'emantique du LDS est unique; chacune des grammaires concr\*`etes h\*'eritera de la s\*'emantique par l'interm\*'ediaire de ses relations avec la grammaire abstraite. Cette m\*'ethode permet \*'egalement d'assurer l'\*'equivalence entre le LDS/PR et le LDS/GR. .LP .LP On dispose \*'egalement d'une d\*'efinition formelle du LDS qui d\*'efinit la mani\*`ere de transformer la sp\*'ecification d'un syst\*`eme dans la syntaxe abstraite et comment interpr\*'eter une sp\*'ecification, donn\*'ee en termes de syntaxe abstraite. .LP 1.3 \fID\*'efinitions fondamentales\fR .LP La pr\*'esente Recommandation fait appel \*`a des conventions et \*`a des concepts g\*'en\*'eraux dont les d\*'efinitions sont donn\*'ees ci\(hyapr\*`es: .LP 1.3.1 \fIType, d\*'efinition et instance\fR .LP Dans la pr\*'esente Recommandation, les concepts de type, d'instance de type et les relations qui existent entre elles, jouent un r\* | le fondamental. Le sch\*'ema et la terminologie utilis\*'es sont explicit\*'es ci\(hyapr\*`es et illustr\*'es par la figure\ 1.2. .LP .bp .LP .rs .sp 18P .ad r \fBFigura 1.2, p.\fR .ad b .RT .LP Un type se d\*'efinit par des d\*'efinitions, lesquelles d\*'efinissent toutes les propri\*'et\*'es associ\*'ees \*`a ce type. Un type peut \* | tre d\*'ecompos\*'e en un nombre quelconque d'instances. Toute instance d'un type particulier poss\*`ede toutes les propri\*'et\*'es d\*'efinies pour ce type. .LP Ce sch\*'ema s'applique \*`a plusieurs concepts du LDS, c'est\(hy\*`a\(hydire qu'il existe des d\*'efinitions de syst\*`eme et des instances de syst\*`eme, des d\*'efinitions de processus et des instances de processus. .LP Le type de donn\*'ees constitue une cat\*'egorie sp\*'eciale de type (voir les \(sc\ 2.3 et\ 5). .LP \fIRemarque\fR \ \(em\ Pour \*'eviter d'alourdir le texte, on peut s'abstenir d'utiliser le terme instance. Ainsi, pour exprimer qu'une instance du syst\*`eme est interpr\*'et\*'ee, on \*'ecrira <. .LP .LP 1.3.2 \fIEnvironnement\fR .LP Les syst\*`emes qui sont sp\*'ecifi\*'es en LDS r\*'eagissent d'apr\*`es les stimuli qu'ils re\*,coivent du monde ext\*'erieur. Ce monde ext\*'erieur est appel\*'e environnement du syst\*`eme en cours de sp\*'ecification. .LP On suppose qu'il y a une ou plusieurs instances de processus dans l'environnement et, par cons\*'equent, les signaux circulant de l'environnement en direction du syst\*`eme ont des identit\*'es associ\*'ees \*`a ces instances de processus. Ces processus ont des valeurs\ PId diff\*'erentes des autres valeurs\ PId du syst\*`eme (voir \(sc\ 5.6.10). .LP Bien que le comportement du syst\*`eme soit non d\*'eterministe, il doit ob\*'eir aux contraintes impos\*'ees par la sp\*'ecification du syst\*`eme. .LP .LP 1.3.3 \fIErreurs\fR .LP Une sp\*'ecification de syst\*`eme est une sp\*'ecification de syst\*`eme correcte en LDS seulement si elle r\*'epond aux r\*`egles syntaxiques et aux conditions statiques du LDS. .LP Lorsqu'une sp\*'ecification LDS correcte est interpr\*'et\*'ee et qu'une condition dynamique se trouve viol\*'ee, une erreur appara\* | t. Une interpr\*'etation d'une sp\*'ecification de syst\*`eme qui conduit \*`a une erreur indique que le comportement du syst\*`eme ne peut pas \* | tre d\*'etermin\*'e \*`a partir de la sp\*'ecification. .LP .LP 1.4 \fIPr\*'esentation\fR .LP 1.4.1 \fIStructuration du texte\fR .LP Les \(sc 2, 3, 4 et 5 de la pr\*'esente Recommandation sont structur\*'es par th\*`emes, ils comportent des intitul\*'es pr\*'ec\*'ed\*'es \*'eventuellement par une introduction: ces intitul\*'es sont les suivants: .LP a) \fIGrammaire abstraite\fR \ \(em\ d\*'ecrite par une syntaxe abstraite et des conditions statiques pour d\*'efinitions bien form\*'ees. .LP b) \fIGrammaire textuelle concr\*`ete\fR \ \(em\ qui concerne \*`a la fois la grammaire textuelle courante utilis\*'ee pour le LDS/PR et le LDS/GR et la grammaire uniquement utilis\*'ee pour le LDS/PR. Cette grammaire est d\*'ecrite au moyen d'une syntaxe textuelle, de conditions statiques et de r\*`egles de d\*'efinitions bien form\*'ees, concernant la syntaxe textuelle, et de la relation de la syntaxe textuelle avec la syntaxe abstraite. .LP .LP c) \fIGrammaire graphique concr\*`ete\fR \ \(em\ d\*'ecrite par la syntaxe graphique, les conditions statiques et les r\*`egles de d\*'efinitions bien form\*'ees concernant la syntaxe graphique, la relation de cette syntaxe avec la syntaxe abstraite et quelques r\*`egles de dessin qui viennent en suppl\*'ement (\*`a celles indiqu\*'ees au \(sc\ 2.2.4). .LP .bp .LP d) \fIS\*'emantique\fR \ \(em\ donnant une signification \*`a un type, conf\*`ere les propri\*'et\*'es de ce type, la fa\*,con avec laquelle une instance de ce type est interpr\*'et\*'ee et toutes conditions dynamiques qui doivent \* | tre remplies par l'instance de ce type pour avoir un comportement correct au sens du LDS. .LP e) \fIMod\*`ele\fR \ \(em\ donne la correspondance avec les abr\*'eviations exprim\*'ees en termes de constructions en syntaxe concr\*`ete stricte pr\*'ec\*'edemment d\*'efinies. .LP f) \fIExemples\fR . .LP 1.4.2 \fIIntitul\*'es\fR .LP L'introduction qui pr\*'ec\*`ede \*'eventuellement les intitul\*'es, est uniquement destin\*'ee \*`a faciliter la compr\*'ehension du texte et \*`a ce titre doit \* | tre consid\*'er\*'ee comme \*'etant une partie officieuse de la Recommandation. .LP S'il n'existe pas de texte pour un intitul\*'e, tout l'intitul\*'e est omis. .LP .LP La suite de la pr\*'esente section d\*'ecrit les autres formalismes particuliers utilis\*'es dans chaque intitul\*'e et les titres utilis\*'es. Elle peut \*'egalement \* | tre consid\*'er\*'ee comme un exemple de pr\*'esentation typographique du premier niveau des intitul\*'es d\*'efinis ci\(hydessus, ce texte appartenant \*`a l'introduction. .LP \fIGrammaire abstraite\fR .LP La notation en syntaxe abstraite est d\*'efinie au \(sc\ 1.5.1. .LP L'absence de l'intitul\*'e \fIgrammaire abstraite\fR indique qu'il n'existe pas d'autres syntaxes abstraites pour le sujet trait\*'e et que la syntaxe concr\*`ete correspond \*`a la syntaxe abstraite d\*'efinie par une autre section de texte num\*'erot\*'ee. .LP On peut se r\*'ef\*'erer \*`a une des r\*`egles dans la syntaxe abstraite \*`a partir de tout intitul\*'e en maintenant le nom de la r\*`egle en italique. .LP .LP Les r\*`egles dans la notation formelle peuvent \* | tre suivies par des paragraphes qui d\*'efinissent les conditions qui doivent \* | tre satisfaites par une d\*'efinition LDS bien form\*'ee et qui peuvent \* | tre v\*'erifi\*'ees sans interpr\*'etation d'une instance. Les conditions statiques \*`a ce niveau se r\*'ef\*`erent uniquement \*`a la syntaxe abstraite. Les conditions statiques qui ne concernent seulement que la syntaxe concr\*`ete sont d\*'efinies post\*'erieurement \*`a la syntaxe concr\*`ete. La syntaxe abstraite, associ\*'ee aux conditions statiques applicables \*`a la syntaxe abstraite, d\*'efinit la grammaire abstraite du langage. .LP \fIGrammaire textuelle concr\*`ete\fR .LP La syntaxe textuelle concr\*`ete est sp\*'ecifi\*'ee au moyen de la Backus\(hyNaur Form (BNF) \*'etendue de la description de la syntaxe d\*'efinie au \(sc\ 2.1 de la Recommandation\ Z.200 (voir \*'egalement le \(sc\ 1.5.2). .LP La syntaxe textuelle est suivie par des paragraphes d\*'efinissant les conditions statiques qui doivent \* | tre satisfaites dans un texte bien form\*'e et qui peuvent \* | tre v\*'erifi\*'ees sans interpr\*'etation d'une instance. Cela s'applique \*'egalement aux conditions statiques, si elles existent, pour la grammaire abstraite. .LP .LP Dans de nombreux cas, il y a une simple relation entre la syntaxe concr\*`ete et la syntaxe abstraite \*'etant donn\*'e qu'une r\*`egle de la syntaxe concr\*`ete est simplement repr\*'esent\*'ee par une seule r\*`egle dans la syntaxe abstraite. Lorsque le m\* | me nom est utilis\*'e dans la syntaxe abstraite et dans la syntaxe concr\*`ete, afin d'indiquer qu'il repr\*'esente le m\* | me concept, le texte pr\*'ecisant que << dans la syntaxe concr\*`ete repr\*'esente\ \fIX\fR dans la syntaxe abstraite>> est implicite dans la description du langage et est souvent omis. Dans ce contexte, le cas est ignor\*'e mais les sous\(hycat\*'egories s\*'emantiques soulign\*'ees sont significatives. .LP La syntaxe textuelle concr\*`ete qui ne constitue pas une forme abr\*'eg\*'ee (syntaxe d\*'eriv\*'ee mod\*'elis\*'ee par d'autres constructions LDS) est une syntaxe textuelle concr\*`ete stricte. La relation entre la syntaxe textuelle concr\*`ete et la syntaxe abstraite est seulement d\*'efinie pour la syntaxe textuelle concr\*`ete stricte. .LP La relation entre la syntaxe textuelle concr\*`ete et la syntaxe abstraite est omise si le sujet en cours de d\*'efinition est une forme abr\*'eg\*'ee qui est mod\*'elis\*'ee par d'autres constructions LDS (voir le paragraphe \fImod\*`ele\fR ci\(hyapr\*`es). .LP .LP \fIGrammaire graphique concr\*`ete\fR .LP La syntaxe graphique concr\*`ete est sp\*'ecifi\*'ee dans la forme BNF \*'elargie de la description de la syntaxe d\*'efinie au\ \(sc\ 1.5.3. .LP La syntaxe graphique est suivie par des paragraphes d\*'efinissant les conditions statiques qui doivent \* | tre satisfaites dans une LDS/GR bien form\*'ee et qui peuvent \* | tre v\*'erifi\*'ees sans interpr\*'etation d'une instance. Cela s'applique \*'egalement aux conditions statiques, si elles existent, pour la grammaire abstraite. .LP La relation entre la syntaxe graphique concr\*`ete et la syntaxe abstraite est omise si le sujet en cours de d\*'efinition est une forme abr\*'eg\*'ee qui est mod\*'elis\*'ee par d'autres constructions LDS (voir le paragraphe \fImod\*`ele\fR ci\(hyapr\*`es). .LP Dans de nombreux cas, il existe une simple relation entre les diagrammes de la grammaire graphique concr\*`ete et les d\*'efinitions de la syntaxe abstraite. Lorsque le nom d'un non\(hyterminal commence dans la grammaire concr\*`ete par le mot <> et qu'il y a un nom dans la grammaire abstraite qui en diff\*`ere seulement parce qu'il commence par le mot .LP \fId\*'efinition\fR , les deux r\*`egles repr\*'esentent la m\* | me notion. Par exemple, dans la grammaire concr\*`ete correspond \*`a la \fID\*'efinition\(hyde\(hysyst\*`eme\fR dans la grammaire abstraite. .LP .bp .LP L'expansion dans la syntaxe concr\*`ete provenant de constructions telles les d\*'efinitions diff\*'er\*'ees (\(sc\ 2.4.1), les macros (\(sc\ 4.2) et les mises en correspondance de litt\*'eraux (\(sc\ 5.4.1.15) etc., doit \* | tre examin\*'ee avant la mise en correspondance entre la syntaxe concr\*`ete et la syntaxe abstraite. .LP \fIS\*'emantique\fR .LP Des propri\*'et\*'es sont utilis\*'ees dans les r\*`egles de bonne formation qui font intervenir soit le type soit d'autres types qui se r\*'ef\*`erent \*`a ce type. .LP .LP Un exemple de propri\*'et\*'e est l'ensemble des identificateurs de signaux d'entr\*'ee valides d'un processus. Cette propri\*'et\*'e est utilis\*'ee dans la condition statique <>. .LP .LP Toutes les instances ont une propri\*'et\*'e d'identit\*'e mais \*`a moins que celle\(hyci soit form\*'ee d'une fa\*,con quelque peu inhabituelle, cette propri\*'et\*'e d'identit\*'e est d\*'etermin\*'ee comme \*'etant d\*'efinie par la section g\*'en\*'erale traitant des identit\*'es au \(sc\ 2. Par cons\*'equent, cela n'est pas habituellement mentionn\*'e comme \*'etant une propri\*'et\*'e d'identit\*'e. Il n'est \*'egalement pas n\*'ecessaire d'indiquer les sous\(hycomposantes d'une d\*'efinition contenues par la d\*'efinition \*'etant donn\*'e que l'appartenance de telles sous\(hycomposantes est \*'evidente \*`a partir de la syntaxe abstraite. Par exemple, il est \*'evident qu'une d\*'efinition de bloc <> englob\*'e des d\*'efinitions de processus et \*'eventuellement une d\*'efinition de sous\(hystructure de bloc. .LP Les propri\*'et\*'es sont statiques, si elles peuvent \* | tre d\*'etermin\*'ees sans l'interpr\*'etation d'une sp\*'ecification de syst\*`eme en LDS et sont dynamiques si l'interpr\*'etation de ce syst\*`eme est n\*'ecessaire pour d\*'eterminer la propri\*'et\*'e. .LP .LP L'interpr\*'etation est d\*'ecrite de mani\*`ere op\*'erationnelle. Lorsqu'il y a une liste dans la syntaxe abstraite, cette liste est interpr\*'et\*'ee dans l'ordre donn\*'e. C'est\(hy\*`a\(hydire la Recommandation d\*'ecrit comment les instances sont cr\*'e\*'ees \*`a partir de la d\*'efinition du syst\*`eme et comment celles\(hyci sont interpr\*'et\*'ees dans une <>. .LP Les conditions dynamiques sont des conditions qui doivent \* | tre satisfaites durant l'interpr\*'etation et qui ne peuvent \* | tre v\*'erifi\*'ees sans interpr\*'etation. Les conditions dynamiques peuvent conduire \*`a des erreurs (voir le \(sc\ 1.3.3). .LP .LP \fIMod\*`ele\fR .LP Certaines constructions sont consid\*'er\*'ees comme \*'etant une <> (ou une abr\*'eviation) pour d'autres constructions \*'equivalentes en syntaxe concr\*`ete. Par exemple, l'omission d'une entr\*'ee pour un signal est une syntaxe concr\*`ete d\*'eriv\*'ee pour une entr\*'ee pour ce signal suivi par une transition nulle avec retour vers le m\* | me \*'etat. .LP Dans certains cas, une telle <>, si elle est \*'etendue, donnera lieu \*`a une repr\*'esentation immens\*'ement grande (\*'eventuellement infinie). N\*'eanmoins, la s\*'emantique d'une telle sp\*'ecification peut \* | tre d\*'etermin\*'ee. .LP .LP \fIExemples\fR .LP L'intitul\*'e \fIexemples\fR contient des exemples. .LP 1.5 \fIM\*'etalangages\fR .LP Pour la d\*'efinition des propri\*'et\*'es et des syntaxes du LDS, diff\*'erents m\*'etalangages ont \*'et\*'e utilis\*'es en fonction des besoins particuliers. .LP Dans ce qui suit, on trouvera une introduction aux m\*'etalangages; des r\*'ef\*'erences renvoyant \*`a des livres ou \*`a des publications particuli\*`eres de l'UIT seront donn\*'ees au besoin. .LP 1.5.1 \fILe M\*'eta IV\fR .LP Le sous\(hyensemble suivant du \fIM\*'eta IV\fR est utilis\*'e pour d\*'ecrire la syntaxe abstraite du LDS. .LP Une d\*'efinition dans la syntaxe abstraite peut \* | tre consid\*'er\*'ee comme \*'etant un objet composite nomm\*'e (une arborescence) d\*'efinissant un ensemble de sous\(hycomposantes. .LP .LP Par exemple, la syntaxe abstraite pour la d\*'efinition d'une variable est .LP \fR \fID\*'efinition\(hyde\(hyvariable\fR :: \fINom\(hyde\(hyvariable\fR \fIIdentificateur\(hyde\(hyr\*'ef\*'erence\(hyde\(hysorte\fR .LP qui d\*'efinit le domaine de l'objet composite (arborescence) appel\*'e \fId\*'efinition\(hyde\(hyvariable\fR . Cet objet comporte deux sous\(hycomposantes qui \*`a leur tour peuvent \* | tre des arborescences. .LP La d\*'efinition en M\*'eta IV .LP \fIIdentificateur\(hyde\(hyr\*'ef\*'erence\(hyde\(hysorte\fR = \fIIdentificateur\fR .LP indique qu'un \fIidentificateur\(hyde\(hyr\*'ef\*'erence\(hyde\(hysorte\fR est un \fIidentificateur\fR et ne peut par cons\*'equent \* | tre syntaxiquement distingu\*'e des autres identificateurs. .LP .bp .LP Certains objets peuvent \*'egalement \* | tre constitu\*'es par certains domaines \*'el\*'ementaires (non composites). Dans le cas du LDS, ces objets sont: .LP .LP a) Des objets entiers .LP Exemple: .LP \fINombre\(hyd'instances\fR :: \fIentier entier\fR .LP Le terme \fInombre\(hyd'instances\fR d\*'esigne un domaine composite contenant deux des valeurs enti\*`eres (\fIentier\fR ) indiquant le nombre initial et le nombre maximal d'instances. .LP b) Mots cl\*'es .LP Les mots cl\*'es sont repr\*'esent\*'es par une s\*'equence en caract\*`eres gras de majuscules et de chiffres. .LP Exemple: .LP \fIProcessus\(hyde\(hydestination\fR = \fIIdentificateur\(hyde\(hyprocessus\fR | \fBENVIRONNEMENT\fR .LP Le \fIprocessus\(hyde\(hydestination\fR est soit un \fIidentificateur\(hyde\(hyprocessus\fR soit l'environnement qui est d\*'esign\*'e par le mot\fR cl\*'e \fBENVIRONNEMENT\fR . .LP .LP c) Marques .LP Le terme \fIToken\fR d\*'esigne le domaine des marques. Ce domaine peut \* | tre consid\*'er\*'e comme \*'etant compos\*'e d'un ensemble potentiellement infini d'objets atomiques distincts pour lesquels aucune repr\*'esentation n'est requise. .LP Exemple: .LP \fINom\fR :: \fIToken\fR .LP Un nom est un objet atomique tel que tout nom peut \* | tre distingu\*'e de tout autre nom. .LP d) Objets non sp\*'ecifi\*'es .LP Un objet non sp\*'ecifi\*'e d\*'esigne des domaines qui peuvent avoir une certaine repr\*'esentation, mais pour lesquels la repr\*'esentation n'int\*'eresse pas la pr\*'esente Recommandation. .LP Exemple: .LP \fITexte\(hyinformel\fR :: ... .LP \fITexte\(hyinformel\fR contient un objet qui n'est pas interpr\*'et\*'e. .LP .LP Les op\*'erateurs ci\(hyapr\*`es (constructeurs) dans la forme BNF (voir le \(sc\ 1.5.2) sont \*'egalement utilis\*'es dans la syntaxe abstraite: <<*>> pour d\*'esigner une liste pouvant \* | tre vide; <<+>> pour d\*'esigner une liste non vide; < | > pour repr\*'esenter une alternative, et <<[<<\ >>]>> pour indiquer une option. .LP Les parenth\*`eses sont utilis\*'ees pour regrouper les domaines qui pr\*'esentent un rapport logique. .LP Enfin, la syntaxe abstraite utilise un autre op\*'erateur de suffixe <<\fB\(hyset\fR >> produisant un ensemble (collection non ordonn\*'ee d'objets distincts). .LP Exemple: .LP \fIgraphe\(hyde\(hyprocessus\fR :: \fInoeud\(hyde\(hyd\*'epart\(hyde\(hyprocessus\fR \fInoeud\(hyd'\*'etat\fR \fB\(hyset\fR .LP Un \fIgraphe\(hyde\(hyprocessus\fR est constitu\*'e par un \fInoeud\(hyde\(hyd\*'epart\(hyde\(hyprocessus\fR et d'un ensemble de \fInoeud\(hyde\(hyprocessus\fR . .LP .LP 1.5.2 \fIBackus\(hyNaur Form\fR .LP Dans la Backus\(hyNaur Form (BNF), un symbole terminal est soit celui qui n'est pas mis entre crochets angulaires (c'est\(hy\*`a\(hydire le signe inf\*'erieur \*`a ou le signe sup\*'erieur \*`a, ) ou est l'une des deux repr\*'esentations et . Notons que les deux terminaux sp\*'eciaux et peuvent avoir \*'egalement une s\*'emantique telle que celle qui est d\*'efinie ci\(hyapr\*`es. .LP Les crochets angulaires et le(s) mot(s) sont soit un symbole non\(hyterminal ou l'un des deux terminaux ou . Les cat\*'egories syntaxiques sont les non\(hyterminaux indiqu\*'es par un ou plusieurs mots compris entre des crochets angulaires. Pour chaque symbole non\(hyterminal, une r\*`egle de production est donn\*'ee soit en grammaire textuelle concr\*`ete soit en grammaire graphique. Par exemple: .LP ::= .LP VIEW (, ) .LP .LP Une r\*`egle de production d'un symbole non\(hyterminal consiste \*`a placer le symbole non\(hyterminal sur la partie gauche du symbole\ ::= et, sur la partie droite une ou plusieurs constructions constitu\*'ees par un ou plusieurs symbole(s) non\(hyterminaux et \*'eventuellement un ou plusieurs symbole(s) terminaux. Par exemple , et dans l'exemple ci\(hydessus sont des symboles non\(hyterminaux; VIEW, les parenth\*`eses et le point sont des symboles terminaux. .LP .bp .LP Parfois, le symbole inclut une partie soulign\*'ee. Cette partie soulign\*'ee met en relief un aspect s\*'emantique de ce symbole. Par exemple est syntaxiquement identique \*`a , mais sur le plan s\*'emantique, il sp\*'ecifie que l'identificateur doit \* | tre un identificateur de variable. .LP .LP A la partie droite du symbole\ ::=, il existe plusieurs possibilit\*'es de production de symboles non\(hyterminaux, s\*'epar\*'es par des barres verticales\ | . Par exemple: .LP ::= .LP .LP | .LP indique qu'une est soit une ou un . .LP Les \*'el\*'ements syntaxiques peuvent \* | tre regroup\*'es au moyen d'accolades { | t\ } , analogues aux parenth\*`eses du M\*'eta\ IV (voir le \(sc\ 1.5.1). Un groupe entre accolades peut contenir une ou plusieurs barres verticales, indiquant des \*'el\*'ements syntaxiques possibles. Par exemple: .LP ::= .LP .LP { zone de bloc> | contient au moins une ou une et peut contenir plusieurs autres et . .LP Si les \*'el\*'ements syntaxiques sont regroup\*'es en utilisant des crochets ([ | t | ), cela indique que le groupe est facultatif. Par exemple: .LP .LP ::= .LP PROCESS [] .LP indique qu'un peut, mais pas n\*'ecessairement, contenir des . .LP 1.5.3 \fIM\*'etalangage applicable \*`a la grammaire graphique\fR .LP En ce qui concerne la grammaire graphique, le m\*'etalangage d\*'ecrit au \(sc\ 1.5.2 est compl\*'et\*'e avec les m\*'etasymboles suivants: .LP a) \fBcontains\fR .LP b) \fBis associated with\fR .LP c) \fBis followed by\fR .LP d) \fBis connected to\fR .LP e) \fBset\fR .LP .LP Le m\*'etasymbole \fBset\fR est un op\*'erateur postfix\*'e agissant sur les \*'el\*'ements syntaxiques plac\*'es \*`a l'int\*'erieur d'accolades et qui le pr\*'ec\*`edent imm\*'ediatement, il d\*'esigne un ensemble (non ordonn\*'e) d'\*'el\*'ements. Chaque \*'el\*'ement peut \* | tre un groupe quelconque d'\*'el\*'ements syntaxiques, auquel cas, il faut le d\*'evelopper avant d'appliquer le m\*'etasymbole \fBset\fR . .LP Exemple: .LP { zone de texte de syst\*`eme } { diagramme de macro } ; de z\*'ero, d'un ou plusieurs et une . .LP .LP Tous les autres m\*'etasymboles sont des op\*'erateurs infixes, ayant un symbole graphique non\(hyterminal comme argument de gauche. L'argument de droite est soit un groupe d'\*'el\*'ements syntaxiques situ\*'es \*`a l'int\*'erieur d'accolades ou un seul \*'el\*'ement syntaxique. Si le membre de droite d'une r\*`egle de production comporte un symbole graphique non\(hyterminal comme premier \*'el\*'ement et contient un ou plusieurs de ces op\*'erateurs infixes, le symbole graphique non\(hyterminal est alors l'argument de gauche de chacun de ces op\*'erateurs infixes. Un symbole graphique non\(hyterminal est un nom terminal ayant le mot <> plac\*'e imm\*'ediatement avant le signe\ <. .LP .bp .LP Le m\*'etasymbole \fBcontains\fR indique que son argument de droite doit \* | tre plac\*'e \*`a l'int\*'erieur de son argument de gauche et, le cas \*'ech\*'eant, \*`a l'int\*'erieur du associ\*'e. Par exemple: .LP ::= .LP \fBcontains\fR .LP ::= .LP .rs .sp 05P .ad r \fBFigure, p.\fR .ad b .RT .LP signifie .LP .rs .sp 05P .ad r \fBFigure, p.\fR .ad b .RT .LP Le m\*'etasymbole \fBis associated with\fR indique que son argument de droite est logiquement associ\*'e avec son argument de gauche (comme s'il \*'etait <> dans cet argument, l'association d\*'epourvue d'ambigu\*:it\*'e est obtenue par des r\*`egles appropri\*'ees applicables aux dessins). .LP Le m\*'etasymbole \fBis followed by\fR signifie que son argument de droite suit (tant sur le plan logique que dans le dessin) son argument de gauche. .LP Le m\*'etasymbole \fBis connected to\fR signifie que son argument de droite est reli\*'e (tant sur le plan logique que dans le dessin) \*`a son argument de gauche. .LP .rs .sp 20P .LP .bp .LP \fB2\fR \fBLe LDS de base\fR .LP 2.1 \fIIntroduction\fR .LP Un syst\*`eme LDS poss\*`ede un ensemble de blocs. Les blocs sont connect\*'es entre eux et \*`a l'environnement par des canaux. A l'int\*'erieur de chacun des blocs il y a un ou plusieurs processus. Ces processus communiquent entre eux par des signaux et sont suppos\*'es s'ex\*'ecuter en parall\*`ele. .LP Le \(sc 2 a \*'et\*'e subdivis\*'e en huit principaux sujets: .LP a) \fIR\*`egles g\*'en\*'erales\fR .LP Les concepts de base du LDS tels les r\*`egles lexicales et les identificateurs, les r\*`egles de visibilit\*'e, les textes informels, la subdivision des diagrammes, les r\*`egles applicables aux dessins, les commentaires, les extensions de textes, les symboles de texte. .LP .LP b) \fIConcepts de base concernant les donn\*'ees\fR .LP Les concepts de base concernant les donn\*'ees en LDS telles les valeurs, les variables, les expressions. .LP c) \fIStructure des syst\*`emes\fR .LP Contient les concepts du LDS relatifs aux principes g\*'en\*'eraux de structuration du langage. Il s'agit des concepts de syst\*`eme, de bloc, de processus, de proc\*'edure. .LP d) \fICommunication\fR .LP D\*'ecrit les m\*'ecanismes de communication utilis\*'es dans le LDS tels le canal, l'acheminement du signal, le signal. .LP .LP e) \fIComportement\fR .LP Les constructions qui concernent le comportement d'un processus: r\*`egles de connectivit\*'e g\*'en\*'erales d'un processus ou graphe de proc\*'edure, d\*'efinition de variable, d\*'epart, \*'etat, entr\*'ee, mise en r\*'eserve, \*'etiquette, transition. .LP f) \fIAction\fR .LP Constructions actives tels les t\* | ches, la cr\*'eation de processus, l'appel de proc\*'edure, la sortie, la d\*'ecision. .LP g) \fITemporisateurs\fR .LP D\*'efinition des temporisateurs et primitives des temporisateurs. .LP .LP h) \fIExemples\fR .LP Il s'agit d'exemples concernant les autres points. .LP 2.2 \fIR\*`egles g\*'en\*'erales\fR .LP 2.2.1 \fIR\*`egles lexicales\fR .LP Les r\*`egles lexicales d\*'efinissent des unit\*'es lexicales. Les unit\*'es lexicales sont les symboles terminaux de la syntaxe textuelle concr\*`ete. .LP .LP ::= .LP .LP | .LP | .LP | .LP | .LP | .LP ::= .LP { | soulign\*'e> \ } .LP ::= .LP { alphanum\*'erique> | .LP { alphanum\*'erique> | \ } .LP .LP ::= .LP | .LP | .LP | .LP ::= .LP A | B | C | D | E | F | G | H | I | J | K | L | M .LP | N | O | P | Q | R | S | T | U | V | W | X | Y | Z .LP | a | b | c | d | e | f | g | h | i | j | k | l | m .LP | n | o | p | q | r | s | t | u | v | w | x | y | z .LP .bp .LP ::= .LP 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 .LP .LP ::= .LP \fI##\fR .LP | \s12.\(ga \s9 \fBMontage\fR .RT .LP | \(ci \fBMontage\fR .LP | \fBMontage\fR .LP | .LP | \fBMontage\fR .LP | .LP | .LP | .LP | .LP | .LP | .LP .LP ::= .LP [ .LP ::= .LP ] .LP ::= .LP { .LP ::= .LP | .LP ::= .LP } .LP .LP ::= .LP \s12.~ \s9 \fBMontage\fR .RT .LP ::= .LP \s12.^ \s9 \fBMontage\fR .RT .LP ::= .LP \s12. \s9 .RT .LP ::= .LP \(em .LP .LP ::= .LP { alphanum\*'erique> .LP | .LP | .LP | .LP | .LP | .LP | .LP .LP ::= .LP { alphanum\*'erique> .LP | .LP | .LP | .LP | .LP | .LP | ::= .LP ` .LP ::= .LP ? | & | % .LP ::= .LP + | \(hy | ! | / | > | * | ( | ) | " | , | ; | < | = | : .LP .bp .LP ::= .LP == .LP | ==> .LP | /= .LP | <= .LP | >= .LP | // .LP | := .LP | => .LP | \(hy> .LP | (. .LP | .) .LP .LP ::= .LP /* */ .LP ::= .LP | ACTIVE .LP | ADDING .LP | ALL .LP | ALTERNATIVE .LP | AND .LP | AXIOMS .LP | BLOCK .LP | CALL .LP | CHANNEL .LP | COMMENT .LP | CONNECT .LP | CONSTANT .LP | CONSTANTS .LP | CREATE .LP | DCL .LP | DECISION .LP | DEFAULT .LP | ELSE .LP | ENDALTERNATIVE .LP | ENDBLOCK .LP | ENDCHANNEL .LP | ENDDECISION .LP | ENDGENERATOR .LP | ENDMACRO .LP | ENDNEWTYPE .LP | ENDPROCEDURE .LP | ENDPROCESS .LP | ENDREFINEMENT .LP | ENDSELECT .LP | ENDSERVICE .LP | ENDSTATE .LP | ENDSUBSTRUCTURE .LP | ENDSYNTYPE .LP | ENDSYSTEM .LP | ENV .LP | ERROR .LP | EXPORT .LP | EXPORTED .LP | EXTERNAL .LP | FI .LP | FOR .LP | FPAR .LP | FROM .LP | GENERATOR .LP | IF .LP | IMPORT .LP | IMPORTED .LP | IN .LP | INHERITS .LP | INPUT .LP | JOIN .LP .bp .LP | LITERAL .LP | LITERALS .LP | MACRO .LP | MACRODEFINITION .LP | MACROID .LP | MAP .LP | MOD .LP | NAMECLASS .LP | NEWTYPE .LP | NEXTSTATE .LP | NOT .LP | NOW .LP | OFFSPRING .LP | OPERATOR .LP | OPERATORS .LP | OR .LP | ORDERING .LP | OUT .LP | OUTPUT .LP | PARENT .LP | PRIORITY .LP | PROCEDURE .LP | PROCESS .LP | PROVIDED .LP | REFERENCED .LP | REFINEMENT .LP | REM .LP | RESET .LP | RETURN .LP | REVEALED .LP | REVERSE .LP | SAVE .LP | SELECT .LP | SELF .LP | SENDER .LP | SERVICE .LP | SET .LP | SIGNAL .LP | SIGNALLIST .LP | SIGNALROUTE .LP | SIGNALSET .LP | SPELLING .LP | START .LP | STATE .LP | STOP .LP | STRUCT .LP | SUBSTRUCTURE .LP | SYNONYM .LP | SYNTYPE .LP | SYSTEM .LP | TASK .LP | THEN .LP | TIMER .LP | TO .LP | TYPE .LP | VIA .LP | VIEW .LP | VIEWED .LP | WITH .LP | XOR .LP repr\*'esente le caract\*`ere espace de l'Alphabet n\uo\d 5 du CCITT. .LP Les caract\*`eres sont repr\*'esent\*'es ci\(hydessus de la m\* | me fa\*,con que la version internationale de r\*'ef\*'erence de l'Alphabet\ n\uo\d\ 5 du CCITT (Recommandation\ T.50). La responsabilit\*'e de la definition des repr\*'esentations nationales de ces caract\*`eres rel\*`eve des organismes nationaux de normalisation. .LP .bp .LP Toutes les sont toujours trait\*'ees comme des majuscules sauf celles qui sont \*`a l'int\*'erieur d'une . (Le traitement des peut \* | tre d\*'efini par les organismes nationaux de normalisation.) .LP Une se termine par le premier caract\*`ere qui ne peut pas faire partie de l' conform\*'ement \*`a la syntaxe sp\*'ecifi\*'ee ci\(hydessus. Lorsqu'un caract\*`ere est suivi d'un ou plusieurs caract\*`eres de commande (les caract\*`eres de commande sont d\*'efinis comme dans la Recommandation\ T.50) ou espaces, tous ces caract\*`eres (y compris le ) sont ignor\*'es, par exemple A \(ulB correspond au m\* | me que AB. Cet emploi de permet de r\*'epartir des sur plus d'une ligne. .LP Lorsqu'un caract\*`ere est suivi d'un dans un , il est autoris\*'e \*`a sp\*'ecifier un ou plusieurs caract\*`eres de commande ou espaces, au lieu du caract\*`ere , pour autant que l'un des englobant le caract\*`ere ne forme pas un , par exemple A\ B d\*'esigne le m\* | me que\ A \(ulB. .LP .LP Toutefois, dans certains cas, l'absence de dans les est ambigu\*:e. Les r\*`egles suivantes s'appliquent donc: .LP 1) les dans le dans un <\*'el\*'ement de trajet> doivent \* | tre sp\*'ecifi\*'es explicitement; .LP 2) lorsqu'un ou plusieurs ou peuvent \* | tre suivis directement par une (par exemple, , ), les dans ces ou doivent \* | tre sp\*'ecifi\*'es explicitement; .LP 3) lorsqu'une contient des , les du suivant le mot cl\*'e NEWTYPE doivent \* | tre sp\*'ecifi\*'es explicitement. .LP Un caract\*`ere de commande a la m\* | me signification qu'un espace. .LP .LP Les caract\*`eres de commande et les espaces peuvent appara\* | tre un nombre quelconque de fois entre deux . Un nombre quelconque de caract\*`eres de contr\* | le et d'espaces entre deux ont la m\* | me signification qu'un espace. .LP Le caract\*`ere / imm\*'ediatement suivi par le caract\*`ere * marque toujours le d\*'ebut d'une . Le caract\*`ere\ * imm\*'ediatement suivi par le caract\*`ere / dans une marque toujours la fin d'une . Une peut \* | tre ins\*'er\*'ee avant ou apr\*`es toute . .LP Des r\*`egles lexicales particuli\*`eres s'appliquent dans un (voir le \(sc\ 4.2.1). .LP 2.2.2 \fIR\*`egles de visibilit\*'e et identificateurs\fR .LP \fIGrammaire abstraite\fR .LP .LP \fIIdentificateur\fR :: \fIQualificatif\(hyNom\fR .LP \fIQualificatif\fR = \fIEl\*'ement\(hyde\(hychemin\fR + .LP \fIEl\*'ement\(hyde\(hychemin\fR = \fIQualificatif\(hyde\(hysyst\*`eme\fR | .LP \fIQualificatif\(hyde\(hybloc\fR | .LP \fIQualificatif\(hyde\(hysous\(hystructure\(hyde\(hybloc\fR | .LP \fIQualificatif\(hyde\(hysignal\fR | .LP \fIQualificatif\(hyde\(hyprocessus\fR | .LP \fIQualificatif\(hyde\(hyproc\*'edure\fR | .LP \fIQualificatif\(hyde\(hysorte\fR | .LP .LP \fIQualificatif\(hyde\(hysyst\*`eme\fR :: \fINom\(hyde\(hysyst\*`eme\fR .LP \fIQualificatif\(hyde\(hybloc\fR :: \fINom\(hyde\(hybloc\fR .LP \fIQualificatif\(hyde\(hysous\(hystructure\(hyde\(hybloc\fR :: \fINom\(hyde\(hysous\(hystructure\(hyde\(hybloc\fR .LP \fIQualificatif\(hyde\(hyprocessus\fR :: \fINom\(hyde\(hyprocessus\fR .LP \fIQualificatif\(hyde\(hyproc\*'edure\fR :: \fINom\(hyde\(hyproc\*'edure\fR .LP \fIQualificatif\(hyde\(hysignal\fR :: \fINom\(hyde\(hysignal\fR .LP \fIQualificatif\(hyde\(hysorte\fR :: \fINom\(hyde\(hysorte\fR .LP \fINom\fR :: \fIToken\fR .LP .LP \fIGrammaire textuelle concr\*`ete\fR .LP ::= .LP [] .LP ::= .LP <\*'el\*'ement de chemin> { <\*'el\*'ement de chemin } .LP <\*'el\*'ement de chemin> ::= .LP .LP .bp .LP ::= .LP | SYSTEM .LP | BLOCK .LP | SUBSTRUCTURE .LP | SIGNAL .LP | PROCESS .LP | PROCEDURE .LP | TYPE .LP | SERVICE .LP .LP Il n'y a pas de syntaxe abstraite correspondante pour la indiqu\*'ee par service. Les et d'entit\*'es d\*'efinies dans une sont transform\*'es en uniques ou en uniques d\*'efinis dans la contenant la . .LP Le refl\*`ete la structure hi\*'erarchique \*`a partir du niveau du syst\*`eme vers le contexte de d\*'efinition, et de mani\*`ere telle que le niveau du syst\*`eme est la partie textuelle la plus \*`a gauche. Toutefois, on peut omettre certains <\*'el\*'ement de chemin> les plus \*`a gauche, lorsque le premier <\*'el\*'ement de chemin> restant le plus \*`a gauche dans le est unique \*`a l'int\*'erieur de toute la . .LP .LP Il est permis d'omettre certains <\*'el\*'ement de chemin> les plus \*`a gauche (sauf pour les , voir le \(sc\ 2.4.1) ou bien tout le . Lorsque tout le est omis et que le d\*'esigne une entit\*'e de la classe d'entit\*'e contenant des variables, des synonymes, des litt\*'eraux et des op\*'erateurs (voir la s\*'emantique ci\(hyapr\*`es), l'association du avec une d\*'efinition doit pouvoir \* | tre r\*'esolue par le contexte r\*'eel. Dans d'autres cas, l' est associ\*'e \*`a une entit\*'e qui a son contexte de d\*'efinition dans l'unit\*'e de port\*'ee englobante la plus proche dans laquelle le de l' est le m\* | me que la partie la plus \*`a droite du complet d\*'esignant cette unit\*'e de port\*'ee. Si l' ne contient pas de , la n\*'ecessit\*'e de mise en correspondance des est omise. .LP .LP Un sous\(hysignal doit \* | tre qualifi\*'e par ses signaux parents, \*`a moins qu'aucun autre signal visible n'existe \*`a cet endroit qui porte le m\* | me . .LP La r\*'esolution par contexte est possible dans les cas suivants: .LP a) l'unit\*'e de port\*'ee dans laquelle le est utilis\*'e n'est pas une et contient une d\*'efinition ayant ce . Le sera li\*'e \*`a cette d\*'efinition; .LP b) l'unit\*'e de port\*'ee dans laquelle le est utilis\*'e ne contient pas de d\*'efinition ayant ce ou l'unit\*'e de port\*'ee est une , et dans toute la il existe exactement une d\*'efinition visible d'une entit\*'e qui a le m\* | me et \*`a laquelle le peut \* | tre li\*'e sans violer aucune des propri\*'et\*'es statiques (compatibilit\*'e de sorte,\ etc.) de la construction dans laquelle le appara\* | t. Le sera li\*'e \*`a cette d\*'efinition. .LP .LP Seuls les identificateurs visibles peuvent \* | tre utilis\*'es, \*`a l'exception de l' dans une et de l' utilis\*'e \*`a la place d'un dans une d\*'efinition r\*'ef\*'erenc\*'ee (c'est\(hy\*`a\(hydire une d\*'efinition extraite de la ). .LP \fIS\*'emantique\fR .LP Les unit\*'es de port\*'ee sont d\*'efinies par le sch\*'ema suivant: .LP \fIGrammaire textuelle concr\*`ete\fR \fIGrammaire graphique concr\*`ete\fR .LP .LP .LP .LP .LP .LP .LP .LP .LP .LP .LP .bp .LP Une liste de d\*'efinitions est associ\*'ee \*`a une unit\*'e de port\*'ee. Chaque d\*'efinition d\*'efinit une entit\*'e appartenant \*`a une certaine classe d'entit\*'e et ayant un nom associ\*'e. Pour une , la liste de d\*'efinitions associ\*'ee comprend les , les et toutes et provenant d'une sorte parente, d'un g\*'en\*'erateur d'instance ou impos\*'e par l'utilisation d'abr\*'eviations tel le mot cl\*'e ORDERING (voir le \(sc\ 5.4.1.8). Il faut remarquer qu'une ne d\*'efinit pas une entit\*'e. .LP .LP Bien que les , les avec un point d'exclamation et les aient leur propre notation syntaxique, ils sont en r\*'ealit\*'e des , ils sont repr\*'esent\*'es dans la syntaxe abstraite repr\*'esent\*'ee par un nom . Dans ce qui suit, ils sont \*'etudi\*'es comme s'ils \*'etaient (syntaxiquement aussi) des . Toutefois, les , les , les , les dans les \*'equations, les et les ont des r\*`egles de visibilit\*'e particuli\*`eres et ne peuvent par cons\*'equent \* | tre qualifi\*'es. Leurs r\*`egles de visibilit\*'e sont expliqu\*'ees dans les sections concern\*'ees. .LP Chaque entit\*'e est dite avoir son contexte de d\*'efinition dans l'unit\*'e de port\*'ee qui la d\*'efinit. Les entit\*'es sont r\*'ef\*'erenc\*'ees au moyen d'. .LP Le dans un sp\*'ecifie uniquement le contexte de d\*'efinition du . .LP Les classes d'entit\*'es sont les suivantes: .LP .LP a) syst\*`eme .LP b) blocs .LP c) canal, acheminement de signaux .LP d) signaux, temporisateurs .LP e) processus .LP f) proc\*'edures .LP g) variables (y compris les param\*`etres formels), synonymes, litt\*'eraux, op\*'erateurs .LP h) sortes .LP i) g\*'en\*'erateurs .LP j) entit\*'es import\*'ees .LP k) listes de signaux .LP l) services .LP m) sous\(hystructures de bloc, sous\(hystructures de canal .LP Un est dit \* | tre visible dans une unit\*'e de port\*'ee .LP .LP a) si la partie nom de l' a son contexte de d\*'efinition dans cette unit\*'e de port\*'ee, ou .LP b) s'il est visible dans l'unit\*'e de port\*'ee qui d\*'efinit cette unit\*'e de port\*'ee, ou .LP c) si l'unit\*'e de port\*'ee contient une dans laquelle l' est d\*'efini, ou .LP d) si l'unit\*'e de port\*'ee contient une dans laquelle l' se trouve d\*'efini. .LP On ne peut avoir deux d\*'efinitions dans la m\* | me unit\*'e de port\*'ee et appartenant \*`a la m\* | me classe d'entit\*'es portant le m\* | me . Il existe cependant une exception: les d\*'efinitions de et de dans la m\* | me (voir le \(sc\ 5.2.2): plusieurs op\*'erateurs et litt\*'eraux peuvent avoir le m\* | me avec diff\*'erentes ou diff\*'erentes sortes de . .LP On notera une autre exception: les entit\*'es import\*'ees. Pour cette classe, les paires de (, ) dans dans l'unit\*'e de port\*'ee doivent \* | tre distinctes. .LP .LP Dans la grammaire textuelle concr\*`ete, le nom ou l'identificateur optionnel dans une d\*'efinition apr\*`es le mot cl\*'e de terminaison (ENDSYSTEM, ENDBLOCK,\ etc.) doit \* | tre syntaxiquement le m\* | me que le nom ou l'identificateur qui suit le mot cl\*'e commen\*,cant correspondant (respectivement: SYSTEM, BLOCK,\ etc.). .LP .bp .LP 2.2.3 \fITexte informel\fR .LP \fIGrammaire abstraite\fR .LP \fR \fITexte informel\fR :: ... .LP \fIGrammaire textuelle concr\*`ete\fR .LP ::= .LP .LP \fIS\*'emantique\fR .LP .LP Lorsqu'un texte informel est utilis\*'e dans une sp\*'ecification LDS de syst\*`eme, il signifie que le texte n'est pas en LDS formel, c'est\(hy\*`a\(hydire que le LDS ne donne pas de s\*'emantique. La s\*'emantique du texte informel peut \* | tre d\*'efinie par d'autres moyens. .LP 2.2.4 \fIR\*`egles applicables aux dessins\fR .LP La taille des symboles graphiques est choisie par l'utilisateur. .LP Les fronti\*`eres des symboles ne doivent ni se superposer, ni se couper. Font exception \*`a cette r\*`egle les symboles de ligne, c'est\(hy\*`a\(hydire le , le , le , le , le et le , qui peuvent se couper. Il n'existe pas d'association logique entre les symboles qui se coupent. .LP Le m\*'etasymbole \fBis followed by\fR implique un . .LP .LP Les symboles de ligne peuvent \* | tre constitu\*'es par un ou plusieurs segments de droite en trait plein. .LP Les fl\*`eches sont n\*'ecessaires chaque fois qu'un entre dans un autre , dans un ou dans un . Dans d'autres cas, ces fl\*`eches sont facultatives sur les . Les sont horizontaux ou verticaux. .LP On peut utiliser des images sym\*'etriques verticales des , des , des et des . .LP L'argument de la partie droite du m\*'etasymbole \fBis associated with\fR doit \* | tre plus proche de l'argument de gauche que tout autre symbole graphique. Les \*'el\*'ements syntaxiques de l'argument de droite doivent pouvoir \* | tre distingu\*'es les uns des autres. .LP .LP Le texte situ\*'e \*`a l'int\*'erieur d'un symbole graphique doit \* | tre lu de la gauche vers la droite, en partant du coin sup\*'erieur gauche. La limite droite du symbole est interpr\*'et\*'ee comme un caract\*`ere de nouvelle ligne, indiquant le cas \*'ech\*'eant que la lecture doit continuer au point le plus \*`a gauche de la ligne suivante. .LP 2.2.5 \fISubdivision des diagrammes\fR .LP La d\*'efinition qui suit concernant la division des diagrammes ne fait pas partie de la \fIgrammaire graphique concr\*`ete\fR , n\*'eanmoins, on utilise le m\* | me m\*'etalangage. .LP ::= .LP \fBcontains\fR .LP { zone d'en\(hyt\* | te> .LP { unit\*'e syntaxique } } .LP ::= .LP \fBcontains\fR .LP .LP ::= .LP \fBcontains\fR [ [()] | .LP ::= .LP .LP ::= .LP .LP .bp .LP La est un non\(hyterminal de d\*'epart, par cons\*'equent, il n'est associ\*'e \*`a aucune r\*`egle de production. Un diagramme peut \* | tre subdivis\*'e en un nombre de , auquel cas le d\*'elimitant le diagramme et l' du diagramme est remplac\*'e par un et un pour chaque . .LP L'utilisateur du LDS peut choisir les impos\*'es par la limite du support sur lequel les diagrammes sont reproduits. .LP .LP Afin d'avoir une s\*'eparation nette entre la et la , le n'est pas mat\*'erialis\*'e, il est sous\(hyentendu. La est plac\*'ee au coin sup\*'erieur gauche du , la est situ\*'ee au coin sup\*'erieur droit du . L' et l' d\*'ependent du type de diagramme. .LP 2.2.6 \fICommentaire\fR .LP Un commentaire est une notation qui repr\*'esente des commentaires associ\*'es avec des symboles ou du texte. .LP Dans la \fIgrammaire textuelle concr\*`ete\fR , on utilise deux formes de commentaires. La premi\*`ere forme est la d\*'efinie au \(sc\ 2.2.1. .LP Des exemples sont donn\*'es aux figures 2.9.1 et 2.9.3. .LP La syntaxe concr\*`ete de la deuxi\*`eme forme est: .LP .LP ::= .LP []; .LP ::= .LP COMMENT .LP Un exemple est donn\*'e \*`a la figure 2.9.2. .LP Dans la \fIgrammaire graphique concr\*`ete\fR , la syntaxe suivante est utilis\*'ee: .LP ::= .LP \fBcontains\fR .LP \fBis connected to\fR .LP ::= .LP .rs .sp 05P .ad r \fBFigure, p. 29 (E)\fR .ad b .RT .LP ::= .LP \(hy\(hy\(hy\(hy\(hy\(hy\(hy\(hy\(hy\(hy\(hy\(hy .LP Une des extr\*'emit\*'es du doit \* | tre reli\*'ee au milieu du segment vertical du . .LP Un peut \* | tre reli\*'e \*`a tout symbole graphique au moyen d'un . Le est consid\*'er\*'e comme \*'etant un symbole ferm\*'e en compl\*'etant (par la pens\*'ee) le rectangle afin d'entourer le texte. Il contient le texte du commentaire se rapportant au symbole graphique. .LP Un exemple est donn\*'e \*`a la figure 2.9.4 dans le \(sc 2.9. .LP .bp .LP 2.2.7 \fIExtension de texte\fR .LP ::= .LP \fBcontains\fR .LP \fBis connected to\fR .LP .LP ::= .LP .LP ::= .LP .LP Une des extr\*'emit\*'es du doit \* | tre reli\*'ee au milieu du segment vertical du . .LP .LP Un peut \* | tre reli\*'e \*`a tout symbole graphique au moyen d'un . Le est consid\*'er\*'e comme \*'etant un symbole ferm\*'e en compl\*'etant (par la pens\*'ee) le rectangle. .LP Le texte contenu dans le symbole d'extension de texte> est la suite du texte dans le symbole graphique et est consid\*'er\*'e comme \*'etant contenu dans ce symbole. .LP 2.2.8 \fISymbole de texte\fR .LP Le est utilis\*'e dans tout . Le contenu d\*'epend du diagramme. .LP ::= .LP .rs .sp 05P .ad r \fBFigure, p. 30 (E)\fR .ad b .RT .LP 2.3 \fIConcepts de base concernant les donn\*'ees\fR .LP Le concept de donn\*'ees dans le LDS est expos\*'e dans le d\*'etail au \(sc\ 5; plus pr\*'ecis\*'ement en ce qui concerne la terminologie du LDS pour ce qui est des donn\*'ees et la facilit\*'e \*`a d\*'efinir des nouveaux types de donn\*'ees et les facilit\*'es concernant les donn\*'ees pr\*'ed\*'efinies. .LP Les donn\*'ees apparaissent dans les d\*'efinitions du type de donn\*'ees, les expressions, l'application d'op\*'erateurs, les variables, les valeurs et les litt\*'eraux. .LP 2.3.1 \fID\*'efinitions des types de donn\*'ees\fR .LP Les donn\*'ees dans le LDS sont principalement abord\*'ees sous l'aspect type de donn\*'ees. Un type de donn\*'ees d\*'efinit un ensemble de valeurs, un ensemble d'op\*'erateurs qui peut \* | tre appliqu\*'e \*`a ces valeurs, et un ensemble de r\*`egles alg\*'ebriques (\*'equations) qui d\*'efinissent le comportement de ces op\*'erateurs lorsqu'ils sont appliqu\*'es aux valeurs. Les valeurs, les op\*'erateurs et les r\*`egles alg\*'ebriques d\*'efinissent tous ensemble les propri\*'et\*'es du type de donn\*'ees. Ces propri\*'et\*'es sont d\*'efinies par les d\*'efinitions de types de donn\*'ees. .LP .LP Le LDS permet la d\*'efinition de tout type de donn\*'ees qui est n\*'ecessaire, y compris les m\*'ecanismes de composition (type composite) avec pour seule contrainte qu'une telle d\*'efinition puisse \* | tre sp\*'ecifi\*'ee de mani\*`ere formelle. En revanche, pour les langages de programmation, il y a des consid\*'erations de mise en oeuvre qui n\*'ecessitent que l'ensemble des types de donn\*'ees disponibles et, en particulier, les m\*'ecanismes de composition mis \*`a disposition soient limit\*'es (tableau, structure,\ etc.). .LP 2.3.2 \fIVariables\fR .LP Les variables sont des objets qui peuvent \* | tre associ\*'es \*`a une valeur par une affectation. Quand on acc\*`ede \*`a la variable, on renvoie la valeur associ\*'ee. .LP 2.3.3 \fIValeurs et litt\*'eraux\fR .LP Un ensemble de valeurs avec certaines caract\*'eristiques est appel\*'e sorte. Les op\*'erateurs sont d\*'efinis \*`a partir et vers les valeurs des sortes. Par exemple, l'application de l'op\*'erateur somme (<<+>>) \*`a partir et vers les valeurs de la sorte enti\*`ere est valable, tandis que la somme de la sorte bool\*'eenne ne l'est pas. .LP .bp .LP Toutes les sortes ont au moins une valeur. Chaque valeur appartient \*`a une sorte unique, c'est\(hy\*`a\(hydire que les sortes n'ont jamais de valeurs en commun. .LP Pour la plupart des sortes, il y a des formes litt\*'erales qui d\*'ecrivent les valeurs de la sorte (par exemple, pour les entiers\ <<2>> est utilis\*'e de pr\*'ef\*'erence \*`a <<1+1>>). Il peut y avoir plusieurs litt\*'eraux qui d\*'ecrivent la m\* | me valeur (par exemple, 12 et 012 peuvent \* | tre utilis\*'es pour d\*'ecrire la m\* | me valeur enti\*`ere). La m\* | me description litt\*'erale peut \* | tre utilis\*'ee pour plus d'une sorte; par exemple, `A` est \*`a la fois un caract\*`ere et une cha\* | ne de caract\*`eres de longueur\ 1. Certaines sortes peuvent ne pas avoir de litt\*'eraux; par exemple, une valeur composite n'a souvent pas de litt\*'eraux en propre mais a des valeurs qui sont d\*'efinies par des op\*'erations de composition sur les valeurs de ses composantes. .LP .LP 2.3.4 \fIExpressions\fR .LP Une expression d\*'ecrit une valeur. Si une expression ne contient pas de variable, par exemple, si elle est un litt\*'eral d'une sorte donn\*'ee, chaque occurrence de l'expression d\*'ecrira toujours la m\* | me valeur. Une expression qui contient des variables peut \* | tre interpr\*'et\*'ee comme diff\*'erentes valeurs durant l'interpr\*'etation d'un syst\*`eme LDS selon la valeur associ\*'ee aux variables. .LP 2.4 \fIStructure du syst\*`eme\fR .LP 2.4.1 \fID\*'efinitions diff\*'er\*'ees\fR .LP Une est une d\*'efinition qui a \*'et\*'e supprim\*'ee de son contexte de d\*'efinition pour accro\* | tre la visibilit\*'e. Elle est analogue \*`a .LP une d\*'efinition de macro (voir le \(sc\ 4.2), mais elle est <> d'un seul endroit exactement (le contexte de d\*'efinition) en utilisant une r\*'ef\*'erence. .LP \fIGrammaire concr\*`ete\fR .LP ::= .LP | .LP ::= .LP { d\*'efinition textuelle de syst\*`eme> | ::= .LP .LP | .LP | .LP | .LP | .LP | .LP | .LP .LP ::= .LP .LP | .LP | .LP | .LP | .LP | .LP | .LP Pour chaque , sauf pour des et des , on doit avoir une r\*'ef\*'erence dans la , le , ou une autre . .LP Pour chaque r\*'ef\*'erence on doit avoir une correspondante. .LP .LP Dans chaque , on doit avoir un plac\*'e imm\*'ediatement apr\*`es le mot cl\*'e initial. Dans cet , le doit \* | tre soit complet, soit omis. Si le est omis, le doit \* | tre unique dans la d\*'efinition de syst\*`eme, \*`a l'int\*'erieur de la classe d'entit\*'e pour la . On ne peut pas sp\*'ecifier un qualificatif dans l' apr\*`es le mot cl\*'e initial pour les d\*'efinitions qui ne sont pas des (c'est\(hy\*`a\(hydire qu'un doit \* | tre sp\*'ecifi\*'e pour les d\*'efinitions normales). .LP \fIS\*'emantique\fR .LP Avant de pouvoir analyser une , chaque r\*'ef\*'erence doit \* | tre remplac\*'ee par la correspondante. Dans cette substitution, l' de la est remplac\*'e par le dans la r\*'ef\*'erence. .LP .bp .LP 2.4.2 \fISyst\*`eme\fR .LP \fIGrammaire abstraite\fR .LP \fID\*'efinition\(hyde\(hysyst\*`eme\fR :: \fINom\(hyde\(hysyst\*`eme\fR .LP \fID\*'efinition\(hyde\(hybloc\fR \(hy\fBset\fR .LP \fID\*'efinition\(hyde\(hycanal\fR \(hy\fBset\fR .LP \fID\*'efinition\(hyde\(hysignal\fR \(hy\fBset\fR .LP \fID\*'efinition\(hyde\(hytype\(hyde\(hydonn\*'ees\fR .LP \fID\*'efinition\(hyde\(hytype\(hyde\(hysynonyme\fR \(hy\fBset\fR .LP \fINom\(hyde\(hysyst\*`eme\fR = \fINom\fR .LP Une \fId\*'efinition\(hyde\(hysyst\*`eme\fR a un nom qui peut \* | tre utilis\*'e dans les qualificatifs. .LP La \fId\*'efinition\(hyde\(hysyst\*`eme\fR doit au moins contenir une \fId\*'efinition\(hyde\(hybloc\fR . .LP .LP Les d\*'efinitions de tous les signaux, canaux, types de donn\*'ees, types de synonymes utilis\*'es dans l'interface avec l'environnement et entre les blocs du syst\*`eme sont contenues dans la \fId\*'efinition\(hyde\(hysyst\*`eme\fR . Toutes les donn\*'ees pr\*'ed\*'efinies sont consid\*'er\*'ees comme \*'etant d\*'efinies au niveau du syst\*`eme. .LP \fIGrammaire textuelle concr\*`ete\fR .LP ::= .LP SYSTEM .LP { d\*'efinition de bloc> .LP | .LP | .LP | .LP | .LP | .LP | .LP | ] .LP ::= .LP BLOCK REFERENCED .LP .LP est d\*'efinie au \(sc 4.3.3, au \(sc\ 4.2, au \(sc\ 5.5.1, au \(sc\ 2.4.3, au \(sc\ 2.5.1, au \(sc\ 2.5.4, au \(sc\ 2.5.5. .LP Un exemple de est donn\*'e \*`a la figure\ 2.9.5 du \(sc\ 2.9. .LP \fIGrammaire graphique concr\*`ete\fR .LP ::= .LP \fBcontains\fR .LP { en\(hyt\* | te de syst\*`eme> .LP { { zone texte de syst\*`eme } | .LP { diagramme de macro } .LP { ::= .LP .rs .sp 04P .ad r \fBFigura 6, p.\fR .ad b .RT .LP ::= .LP SYSTEM .LP ::= .LP \fBcontains\fR .LP { d\*'efinition de signal> .LP | .LP | .LP | .LP | ::= .LP { zone de bloc> .LP | ::= .LP .LP | .LP ::= .LP \fBcontains\fR .LP .LP ::= .LP .rs .sp 04P .ad r \fBFigura 7, p.\fR .ad b .RT .LP est d\*'efinie au \(sc\ 4.3.3, au \(sc\ 4.2, au \(sc\ 4.2, au \(sc\ 5.5.1, au \(sc\ 2.4.3, au \(sc\ 2.5.1, au \(sc\ 2.5.4, au \(sc\ 2.5.5. .LP La \fId\*'efinition\(hyde\(hybloc\fR \(hy\fBset\fR dans la \fIgrammaire abstraite\fR correspond aux , la \fId\*'efinition\(hyde\(hycanal\(hy\fR \fBset\fR \*`a la . .LP Un exemple d'un est donn\*'e \*`a la figure\ 2.9.6. .LP \fIS\*'emantique\fR .LP Une \fId\*'efinition\(hyde\(hysyst\*`eme\fR est la repr\*'esentation en LDS d'une sp\*'ecification ou de la description d'un syst\*`eme. .LP .LP Un syst\*`eme est s\*'epar\*'e de son environnement par une fronti\*`ere de syst\*`eme et contient un ensemble de blocs. La communication entre le syst\*`eme et l'environnement, ou entre les blocs int\*'erieurs au syst\*`eme ne peut se faire qu'au moyen de signaux. A l'int\*'erieur d'un syst\*`eme, ces signaux sont v\*'ehicul\*'es dans des canaux. Les canaux relient les blocs entre eux ou \*`a la fronti\*`ere du syst\*`eme. .LP Avant d'interpr\*'eter une \fId\*'efinition\(hyde\(hysyst\*`eme\fR , on choisit un sous\(hyensemble coh\*'erent (voir le \(sc\ 3.2.1). Ce sous\(hyensemble est appel\*'e une instance de la \fId\*'efinition\(hyde\(hysyst\*`eme\fR . Une instance de syst\*`eme est une instanciation d'un type de syst\*`eme d\*'efini par une \fId\*'efinition\(hyde\(hysyst\*`eme\fR . L'interpr\*'etation d'une instance d'une \fId\*'efinition\(hyde\(hy\fR \fIsyst\*`eme\fR est r\*'ealis\*'ee par une machine abstraite LDS qui en cons\*'equence donne la s\*'emantique aux concepts du LDS. Pour interpr\*'eter une instance d'une \fId\*'efinition\(hyde\(hysyst\*`eme\fR , il faut: .LP a) initialiser le temps du syst\*`eme, .LP b) interpr\*'eter les blocs et les canaux qui leur sont reli\*'es et qui sont contenus dans le sous\(hyensemble de subdivision coh\*'erent choisi. .LP 2.4.3 \fIBloc\fR .LP \fIGrammaire abstraite\fR .LP \fID\*'efinition\(hyde\(hybloc\fR :: \fINom\(hyde\(hybloc\fR .LP \fID\*'efinition\(hyde\(hyprocessus\fR \(hy\fBset\fR .LP \fID\*'efinition\(hyde\(hysignal\fR \(hy\fBset\fR .LP \fIConnexion\(hyde\(hycanal\(hyvers\(hyacheminement\fR \(hy\fBset\fR .LP \fID\*'efinition\(hyd'acheminement\(hyde\(hysignal\fR \(hy\fBset\fR .LP \fID\*'efinition\(hyde\(hytype\(hyde\(hydonn\*'ees\fR .LP \fID\*'efinition\(hyde\(hytype\(hyde\(hysynonyme\fR \(hy\fBset\fR .LP [\fID\*'efinition\(hyde\(hysous\(hystructure\(hyde\(hybloc\fR ] .LP \fINom\(hyde\(hybloc\fR = \fINom\fR .LP A moins qu'une \fId\*'efinition\(hyde\(hybloc\fR ne contienne une \fId\*'efinition\(hyde\(hysous\(hystructure\(hyde\(hybloc\fR , on doit avoir au moins une \fId\*'efinition\(hyde\(hyprocessus\fR et une \fId\*'efinition\(hyd'acheminement\(hyde\(hysignal\fR \*`a l'int\*'erieur du bloc. .LP .LP Il est possible de subdiviser les blocs en sp\*'ecifiant la \fId\*'efinition\(hyde\(hysous\(hystructure\(hyde\(hybloc\fR ; cet aspect du langage est \*'etudi\*'e au \(sc\ 3.2.2. .LP .bp .LP \fIGrammaire textuelle concr\*`ete\fR .LP ::= .LP BLOCK { nom de bloc | identificateur de bloc } fin> .LP { d\*'efinition de signal> .LP | .LP | .LP | .LP | .LP | .LP | .LP | .LP | ] .LP ENDBLOCK [] .LP .LP ::= .LP PROCESS [] REFERENCED .LP est d\*'efinie au \(sc\ 2.5.4, au \(sc\ 2.5.5, au \(sc\ 2.4.4, au \(sc\ 2.5.2, au \(sc\ 2.5.3, au \(sc\ 3.2.2, au \(sc\ 3.2.2, au \(sc\ 4.2.2, au \(sc\ 5.5.1. .LP Un exemple de est montr\*'e \*`a la figure 2.9.7 au \(sc\ 2.9. .LP \fIGrammaire graphique concr\*`ete\fR .LP ::= .LP .LP \fBcontains\fR { en\(hyt\* | te de bloc> .LP { { zone texte de bloc } { diagramme de macro } .LP [] [ } \fBset\fR } .LP \fBis associated with\fR { identificateur de canal } .LP .LP L' identifie un canal reli\*'e \*`a un acheminement de signaux dans le . Il se trouve plac\*'e \*`a l'ext\*'erieur du , \*`a proximit\*'e de l'extr\*'emit\*'e du trajet du signal arrivant au . Si le ne contient pas une , il doit alors contenir une . .LP ::= .LP BLOCK { nom de bloc | identificateur de bloc } .LP ::= .LP .LP ::= .LP { zone de processus> .LP | .LP | ::= .LP .LP ::= .LP \fBcontains\fR { nom de processus >[ } .LP ::= .LP .rs .sp 03P .ad r \fBFigura 8, p.\fR .ad b .RT .LP Le terme est d\*'efini au \(sc\ 2.4.4. .LP ::= .LP .LP \fBis connected to\fR { zone de processus> ::= .LP \(hy\(hy\(hy\(hy\(hy\(hy\(hy\(hy\(hy\(hy\(hy\(hy\(hy\(hy\(ra .LP La t\* | te de fl\*`eche plac\*'ee sur le indique la sur laquelle le processus de cr\*'eation a lieu. .LP .bp .LP Le est d\*'efini au \(sc\ 2.4.4, la au \(sc\ 2.5.2, la au \(sc\ 3.2.2, le au \(sc\ 4.2.2. .LP Un exemple de est donn\*'e \*`a la figure 2.9.8 au \(sc\ 2.9. .LP .LP \fIS\*'emantique\fR .LP Une d\*'efinition de bloc contient une ou plusieurs d\*'efinitions d'un syst\*`eme et \*'eventuellement une sous\(hystructure de bloc. La d\*'efinition de bloc permet de regrouper les processus qui tous ensemble assurent une certaine fonction, soit directement soit par l'interm\*'ediaire d'une sous\(hystructure de bloc. .LP Une d\*'efinition de bloc assure une interface statique de communication par laquelle les processus peuvent communiquer avec d'autres processus. De plus, elle donne la port\*'ee pour les d\*'efinitions de processus. .LP Interpr\*'eter un bloc consiste \*`a cr\*'eer les processus initiaux dans le bloc. .LP 2.4.4 \fIProcessus\fR .LP \fIGrammaire abstraite\fR .LP .LP \fID\*'efinition\(hyde\(hyprocessus\fR :: \fINom\(hyde\(hyprocessus\fR .LP \fINombre\(hyd'instances\fR .LP \fIParam\*`etre\(hyformel\(hyde\(hyprocessus\fR | .LP \fID\*'efinition\(hyde\(hyproc\*'edure\(hy\fBset\fR .LP \fID\*'efinition\(hyde\(hysignal\(hy\fBset\fR .LP \fID\*'efinition\(hyde\(hytype\(hyde\(hysignal\fR .LP \fID\*'efinition\(hyde\(hytype\(hyde\(hysynonyme\(hy\fBset\fR .LP \fID\*'efinition\(hyde\(hyvariable\(hy\fBset\fR .LP \fID\*'efinition\(hyde\(hyvisibilit\*'e\(hy\fBset\fR .LP \fID\*'efinition\(hyde\(hytemporisateur\(hy\fR \fBset\fR .LP \fIGraphe\(hyde\(hyprocessus\fR .LP \fINombre\(hyd'instances\fR :: \fIEntier\fR \fIEntier\fR .LP \fINom\(hyde\(hyprocessus\fR = \fINom\fR .LP \fIGraphe\(hyde\(hyprocessus\fR :: \fINoeud\(hyde\(hyd\*'epart\(hyde\(hyprocessus\fR .LP \fINoeud\(hyd'\*'etat\(hy\fR \fBset\fR .LP \fIParam\*`etre\(hyformel\(hyde\(hyprocessus\fR :: \fINom\(hyde\(hyvariable\fR .LP \fIIdentificateur\(hyde\(hyr\*'ef\*'erence\(hyde\(hysorte\fR .LP .LP \fIGrammaire textuelle concr\*`ete\fR .LP ::= .LP PROCESS { identificateur de processus | nom de processus } .LP [] .LP [ ] [] .LP { d\*'efinition de signal> .LP | .LP | .LP | .LP | .LP | .LP | .LP | .LP | .LP | .LP | .LP | ] .LP .LP ::= .LP PROCEDURE REFERENCED .LP ::= .LP SIGNALSET [] .LP ::= .LP ::= .LP FPAR .LP { ::= .LP ([], []) .LP ::= .LP .LP ::= .LP .LP .LP Le nombre initial d'instances et le nombre maximal d'intances contenus dans le nombre\(hyd'instances sont tir\*'es du . Si le est omis, le est 1. Si le est omis, le n'est pas limit\*'e. .LP Le utilis\*'e dans la d\*'erivation est le suivant: .LP a) s'il n'y a pas de pour le processus, le dans la est utilis\*'e. S'il ne contient pas un , on utilise le o\*`u le et le sont omis; .LP b) si \*`a la fois le dans la et le dans une sont omis, on utilise le o\*`u sont omis \*`a la fois le et le ; .LP c) si soit le dans la soit le dans une est omis, le est celui qui est pr\*'esent; .LP .LP d) si \*`a la fois le dans la et le dans une sont sp\*'ecifi\*'es, les deux doivent \* | tre \*'egaux lexicalement et ce est utilis\*'e. .LP Une relation analogue s'applique au sp\*'ecifi\*'e dans le et dans la d\*'efinis ci\(hydessous. .LP .LP est d\*'efinie au \(sc\ 2.5.4, au \(sc\ 2.5.5, au \(sc\ 2.6.1.2, au \(sc\ 2.6.1.1, au \(sc\ 2.4.5, au \(sc\ 2.8, au \(sc\ 4.2.2, au \(sc\ 4.1.3, au \(sc\ 4.3.3, au \(sc\ 4.3.2, au \(sc\ 4.10.1, au \(sc\ 5.5.1. .LP Le d'instances doit \* | tre inf\*'erieur ou \*'egal au et le doit \* | tre sup\*'erieur \*`a z\*'ero. .LP L'utilisation du terme est pr\*'ecis\*'ee au \(sc\ 2.5.2, \fImod\*`ele\fR . .LP .LP Un exemple de est donn\*'e \*`a la figure\ 2.9.9 du \(sc\ 2.9. .LP \fIGrammaire graphique concr\*`ete\fR .LP ::= .LP .LP \fBcontains\fR { en\(hyt\* | te de processus> .LP { zone de texte de processus } .LP { zone de processus } .LP { diagramme de macro } .LP { zone graphique de processus | zone d'interaction de service } \fBset\fR } .LP [\fBis associated with\fR { identificateur d' acheminement de signal } ] .LP L' identifie le trajet externe d'un signal reli\*'e \*`a un trajet de signal dans le . Il est plac\*'e \*`a l'ext\*'erieur du \*`a proximit\*'e de l'extr\*'emit\*'e du trajet du signal au . .LP .bp .LP ::= .LP \fBcontains\fR { .LP [] .LP { d\*'efinition de signal> .LP | .LP | .LP | .LP | .LP | .LP | .LP | .LP | ::= .LP PROCESS { nom de processus | identificateur de processus } .LP [ [] ] .LP [] .LP ::= .LP est d\*'efinie au \(sc\ 2.5.4, au \(sc\ 2.5.5, au \(sc\ 2.6.1.2, au \(sc\ 2.6.1.1, au \(sc\ 2.4.5, au \(sc\ 2.8, et au \(sc\ 4.2.2, au \(sc\ 4.1.3, au \(sc\ 4.3.3, au \(sc\ 5.5.1, au \(sc\ 2.6.2, au \(sc\ 2.6.3, au \(sc\ 2.6.6 et au \(sc\ 4.10.1. .LP Un exemple de est donn\*'e \*`a la figure\ 2.9.10 du \(sc\ 2.9. .LP \fIS\*'emantique\fR .LP Une d\*'efinition de processus introduit le type d'un processus qui est destin\*'e \*`a repr\*'esenter un comportement dynamique. .LP .LP Dans le \fInombre\(hyd'instances,\fR la premi\*`ere valeur repr\*'esente le \fInombre\(hyd'instances\fR du processus qui existe \*`a la cr\*'eation du syst\*`eme, la deuxi\*`eme valeur repr\*'esente le nombre maximal d'instances simultan\*'ees du type de processus. .LP Une instance de processus est une machine \*`a \*'etats finis \*'etendue communicante qui assure un certain nombre d'actions, appel\*'ees transitions, suite \*`a la r\*'eception d'un signal donn\*'e, chaque fois qu'elle se trouve dans un certain \*'etat. La r\*'ealisation de la transition aboutit \*`a l'attente du processus dans un autre \*'etat, qui n'est pas n\*'ecessairement diff\*'erent de l'\*'etat d'origine. .LP Le concept de machine \*`a \*'etats finis a \*'et\*'e \*'etendu en ce sens que l'\*'etat r\*'esultant d'une transition, \*`a c\* | t\*'e du signal provoquant la transition, peut \* | tre affect\*'e par des d\*'ecisions prises \*`a partir de variables connues du processus. .LP Plusieurs instances du m\* | me type de processus peuvent exister au m\* | me instant et s'ex\*'ecuter de mani\*`ere asynchrone et en parall\*`ele les unes aux autres, et avec d'autres instances de diff\*'erents types de processus dans le syst\*`eme. .LP .LP Lorsqu'un syst\*`eme est cr\*'e\*'e, les processus initiaux sont cr\*'e\*'es dans un ordre al\*'eatoire. La communication des signaux entre les processus ne commence que lorsque tous les processus initiaux ont \*'et\*'e cr\*'e\*'es. Les param\*`etres formels de ces processus initiaux sont initialis\*'es avec une valeur non d\*'efinie. .LP Les instances de processus existent \*`a partir du moment o\*`u un syst\*`eme est cr\*'e\*'e ou peuvent \* | tre cr\*'e\*'ees par une des actions de demande de cr\*'eation qui lance les processus \*`a interpr\*'eter; leur interpr\*'etation commence lorsque l'action de d\*'epart est interpr\*'et\*'ee; des actions d'arr\* | t peuvent arr\* | ter leur existence. .LP Les signaux re\*,cus par les instances de processus sont appel\*'es signaux d'entr\*'ee, et les signaux envoy\*'es aux instances de processus sont appel\*'es signaux de sortie. .LP Les signaux peuvent \* | tre trait\*'es par une instance de processus seulement lorsque celle\(hyci se trouve dans un certain \*'etat. L'ensemble complet de signaux d'entr\*'ee valides est l'union de l'ensemble des signaux se trouvant dans tous les trajets des signaux conduisant au processus, de l', des signaux implicites et des signaux de temporisation. .LP .bp .LP Un acc\*`es d'entr\*'ee unique est associ\*'e \*`a chaque instance de processus. Lorsqu'un signal d'entr\*'ee parvient au processus, il est appliqu\*'e \*`a l'acc\*`es d'entr\*'ee de l'instance de processus. .LP Le processus peut \* | tre soit mis en attente, en occupant un \*'etat, soit en activit\*'e, en effectuant une transition. Pour chaque \*'etat, il existe un ensemble de signaux de mise en r\*'eserve (voir \*'egalement le \(sc\ 2.6.5). Dans le cas d'attente dans un \*'etat, le premier signal entrant dont l'identificateur ne figure pas dans l'ensemble des signaux de mise en r\*'eserve est extrait de la file d'attente, et trait\*'e par le processus. .LP L'acc\*`es d'entr\*'ee peut retenir un nombre quelconque de signaux, de sorte que plusieurs signaux entrants sont mis dans une file d'attente pour le processus. L'ensemble des signaux retenus est ordonn\*'e dans la file d'attente, selon l'ordre d'arriv\*'ee. Si deux ou plusieurs signaux arrivent simultan\*'ement, ils sont ordonn\*'es arbitrairement. .LP Lorsqu'un processus est cr\*'e\*'e, on lui attribue un acc\*`es d'entr\*'ee vide, et il y a alors cr\*'eation de variables locales auxquelles on affecte des valeurs. .LP .LP Les param\*`eres formels sont des variables qui sont cr\*'e\*'ees soit lorsque le syst\*`eme est cr\*'e\*'e (mais aucun param\*`etre r\*'eel ne lui est transmis et par cons\*'equent ces param\*`etres ne sont pas initialis\*'es), soit lorsque l'instance de processus est dynamiquement cr\*'e\*'ee. .LP Pour toutes les instances de processus, on peut utiliser quatre expressions produisant un PId (voir le \(sc\ 5.6.10): SELF, PARENT, OFFSPRING et SENDER. Elles donnent un r\*'esultat pour: .LP a) l'instance de processus (SELF); .LP b) l'instance du processus cr\*'eateur (PARENT); .LP c) l'instance de processus la plus r\*'ecente cr\*'e\*'ee par le processus (OFFSPRING); .LP d) l'instance de processus en provenance de laquelle le dernier signal entrant a \*'et\*'e utilis\*'e (SENDER) (voir \*'egalement le \(sc\ 2.6.4). .LP Ces expressions sont expliqu\*'ees dans le d\*'etail au \(sc\ 5.5.4.3. .LP SELF, PARENT, OFFSPRING et SENDER peuvent \* | tre utilis\*'es dans des expressions \*`a l'int\*'erieur des instances de processus. .LP Pour toutes les instances de processus qui se trouvent pr\*'esentes au moment de l'initialisation du syst\*`eme, l'expression pr\*'ed\*'efinie PARENT pr\*'esente toujours la valeur NULL. .LP Pour toutes les instances de processus nouvellement cr\*'e\*'ees, les expressions pr\*'ed\*'efinies SENDER et OFFSPRING ont la valeur NULL. .LP .LP 2.4.5 \fIProc\*'edure\fR .LP Les proc\*'edures sont d\*'efinies au moyen de d\*'efinitions de proc\*'edure. On fait appel \*`a une proc\*'edure au moyen d'un appel de proc\*'edure faisant r\*'ef\*'erence \*`a la d\*'efinition de proc\*'edure. Des param\*`etres sont associ\*'es \*`a un appel de proc\*'edure: on les emploie \*`a la fois pour fournir les valeurs et pour limiter la port\*'ee des variables pour l'ex\*'ecution de la proc\*'edure. C'est du m\*'ecanisme de transfert des param\*`etres que d\*'ependent les variables affect\*'ees par l'interpr\*'etation d'une proc\*'edure. .LP \fIGrammaire abstraite\fR .LP \fID\*'efinition\(hyde\(hyproc\*'edure\fR :: \fINom\(hyde\(hyproc\*'edure\fR .LP \fIParam\*`etre\(hyformel\(hyde\(hyproc\*'edure\fR | .LP \fID\*'efinition\(hyde\(hyproc\*'edure\(hy\fBset\fR .LP \fID\*'efinition\(hyde\(hytype\(hyde\(hydonn\*'ees\fR .LP \fID\*'efinition\(hyde\(hytype\(hyde\(hysynonyme\(hy\fBset\fR .LP \fID\*'efinition\(hyde\(hyvariable\(hy\fBset\fR .LP \fIGraphe\(hyde\(hyproc\*'edure\fR .LP \fINom\(hyde\(hyproc\*'edure\fR = \fINom\fR .LP .LP \fIParam\*`etre\(hyformel\(hyde\(hyproc\*'edure\fR = \fIParam\*`etre\(hyd'entr\*'ee\fR | .LP \fIParam\*`etre\(hyd'entr\*'ee\(hyet\(hyde\(hysortie\fR .LP \fIParam\*`etre\(hyd'entr\*'ee\fR :: \fINom\(hyde\(hyvariable\fR .LP \fIIdentificateur\(hyde\(hyr\*'ef\*'erence\(hyde\(hysorte\fR .LP .bp .LP \fIParam\*`etre\(hyd'entr\*'ee\(hyet\(hyde\(hysortie\fR :: \fINom\(hyde\(hyvariable\fR .LP \fIIdentificateur\(hyde\(hyr\*'ef\*'erence\(hyde\(hysorte\fR .LP \fIGraphe\(hyde\(hyproc\*'edure\fR :: \fINoeud\(hyde\(hyd\*'epart\(hyde\(hyproc\*'edure\fR .LP \fINoeud\(hyd'\*'etat\(hy\fBset\fR .LP \fINoeud\(hyde\(hyd\*'epart\(hyde\(hyproc\*'edure\fR :: \fITransition\fR .LP \fIGrammaire textuelle concr\*`ete\fR .LP ::= .LP PROCEDURE { identificateur de proc\*'edure | nom de proc\*'edure } .LP [ ] .LP { d\*'efinition de donn\*'ees> .LP | .LP | .LP | .LP | .LP | .LP ENDPROCEDURE [] .LP ::= .LP FPAR .LP { ::= .LP [IN/OUT .LP | IN] .LP .LP .LP ::= .LP .LP est d\*'efinie au \(sc\ 2.6.1.1, au \(sc\ 2.4.4, au \(sc\ 4.2, au \(sc\ 4.3.3, au \(sc\ 5.5.1, au \(sc\ 5.2.2. .LP Dans une , la ne peut contenir les expressions REVAELED, EXPORTED, REVAELED EXPORTED, EXPORTED REVEALED (voir le \(sc\ 2.6.1). Un exemple de est donn\*'e \*`a la figure\ 2.9.11. .LP \fIGrammaire graphique concr\*`ete\fR .LP ::= .LP \fBcontains\fR { en\(hyt\* | te de proc\*'edure> .LP { zone de texte de proc\*'edure> .LP | .LP | ::= .LP .LP | .LP ::= .LP \fBcontains\fR .LP { d\*'efinition de variable> .LP | .LP | .LP | ::= .LP \fBcontains\fR .LP ::= .LP .rs .sp 04P .ad r \fBFigura 9, p.\fR .ad b .RT .LP ::= .LP PROCEDURE { nom de proc\*'edure | identificateur de proc\*'edure } .LP [] .LP ::= .LP .LP { zone de d'\*'etat | zone de connecteur d'entr\*'ee> } .LP ::= .LP \fBis followed by\fR .LP ::= .LP .rs .sp 04P .ad r \fBFigura 10, p.\fR .ad b .RT .LP est d\*'efinie au \(sc\ 2.6.1.1, au \(sc\ 2.6.7.1, au \(sc\ 2.6.3, au \(sc\ 2.6.6, et au \(sc\ 4.2, au \(sc\ 4.3.3, au \(sc\ 5.5.1. .LP Un exemple de est montr\*'e \*`a la figure\ 2.9.12 au \(sc\ 2.9. .LP \fIS\*'emantique\fR .LP Une proc\*'edure est un moyen de donner un nom \*`a un assemblage d'objets et de le repr\*'esenter par une r\*'ef\*'erence unique. Les r\*`egles relatives aux proc\*'edures imposent une discipline sur la mani\*`ere dont l'assemblage d'objets est choisi et elles limitent la port\*'ee du nom des variables d\*'efinies dans la proc\*'edure. .LP Une variable de proc\*'edure est une variable locale \*`a la proc\*'edure qui ne peut appara\* | tre, \* | tre visible, \* | tre export\*'ee ou \* | tre import\*'ee. Elle est cr\*'e\*'e lors de l'interpr\*'etation du noeud de d\*'epart de proc\*'edure et cesse d'exister lors de l'interpr\*'etation du noeud de retour du graphe de proc\*'edure. .LP .LP Lorsqu'une d\*'efinition de proc\*'edure est interpr\*'et\*'ee, son graphe de proc\*'edure est \*'egalement interpr\*'et\*'e. .LP Une d\*'efinition de proc\*'edure est interpr\*'et\*'ee seulement lorsqu'une instance de processus l'appelle, et l'interpr\*'etation est faite par l'instance de processus. .LP L'interpr\*'etation d'une d\*'efinition de proc\*'edure provoque la cr\*'eation d'une instance de proc\*'edure et l'interpr\*'etation commence de la mani\*`ere suivante: .LP a) une variable locale est cr\*'e\*'ee pour tout \fIparam\*`etre\(hyd'entr\*'ee\fR , ayant le \fInom\fR et la \fIsorte\fR du \fIparam\*`etre\(hyd'entr\*'ee\fR . A cette variable on affecte la valeur de l'expression donn\*'ee par le param\*`etre effectif correspondant, qui peut ne pas \* | tre d\*'efini; .LP b) lorsqu'un param\*`etre effectif est vide, la valeur attribu\*'ee au param\*`etre formel correspondant n'est pas d\*'efinie; .LP c) un param\*`etre formel n'ayant pas d'attribut explicite, a un attribut IN implicite; .LP .bp .LP d) une variable locale est cr\*'e\*'ee pour chaque \fId\*'efinition\(hyde\(hyvariable\fR dans la \fId\*'efinition\(hyde\(hyproc\*'edure\fR ayant le \fInom\fR et la \fIsorte\fR de la \fId\*'efinition\(hyde\(hyvariable\fR ; .LP e) chaque \fIparam\*`etre\(hyd'entr\*'ee\(hysortie\fR d\*'ecrit un nom de synonyme pour la variable qui est donn\*'ee dans l'expression des param\*`etres effectifs. Ce nom de synonyme est utilis\*'e tout au long de l'interpr\*'etation du \fIgraphe\(hyde\(hyproc\*'edure\fR lorsqu'on se r\*'ef\*`ere \*`a la valeur de la variable ou lorsque l'on affecte une nouvelle valeur \*`a la variable; .LP f) la \fItransition\fR contenu dans le \fInoeud\(hyde\(hyd\*'epart\(hyde\(hyproc\*'edure\fR est interpr\*'et\*'ee. .LP 2.5 \fICommunication\fR .LP 2.5.1 \fICanal\fR .LP \fIGrammaire abstraite\fR .LP \fID\*'efinition\(hyde\(hycanal\fR :: \fINom\(hyde\(hycanal\fR .LP \fIChemin\(hyde\(hycanal\fR .LP [\fIChemin\(hyde\(hycanal\fR ] .LP \fIChemin\(hyde\(hycanal\fR :: \fIBloc\(hyd'origine\fR .LP \fIBloc\(hydestinataire\fR .LP \fIIdentificateur\(hyde\(hysignal\(hy\fBset\fR .LP \fIBloc\(hyd'origine\fR = \fIIdentificateur\(hyde\(hybloc\fR | .LP ENVIRONMENT .LP \fIBloc\(hydestinataire\fR = \fIIdentificateur\(hyde\(hybloc\fR | .LP ENVIRONMENT .LP \fIIdentificateur\(hyde\(hybloc\fR = \fIIdentificateur .LP \fIIdentificateur\(hyde\(hysignal\fR = \fIIdentificateur\fR .LP \fINom\(hyde\(hycanal\fR = \fINom\fR .LP .LP L'\fIidentificateur\(hyde\(hysignal\(hy\fBset\fR doit contenir la liste de tous les signaux qui peuvent \* | tre achemin\*'es sur le ou les chemins\(hyde\(hycanal d\*'efinis par le canal. .LP Une extr\*'emit\*'e du canal doit au moins \* | tre un bloc. .LP Si les deux points extr\* | mes sont des blocs, ceux\(hyci doivent \* | tre diff\*'erents. .LP La ou les extr\*'emit\*'e(s) des blocs doivent \* | tre d\*'efinies dans la m\* | me unit\*'e de port\*'ee que celles o\*`u est d\*'efini le canal. .LP \fIGrammaire textuelle concr\*`ete\fR .LP ::= .LP CHANNEL .LP .LP [] .LP [ .LP | ] .LP ENDCHANNEL [] .LP .LP ::= .LP { FROM TO .LP | FROM TO ENV .LP | FROM ENV TO .LP est d\*'efinie au \(sc\ 2.5.5, et au \(sc\ 3.2.3. .LP Lorsque deux sont d\*'efinis, le sens de l'un doit \* | tre oppos\*'e par rapport au sens de l'autre. .LP .bp .LP \fIGrammaire graphique concr\*`ete\fR .LP ::= .LP .LP \fBis associated with\fR { nom de canal > .LP { { identificateur de canal | identificateur de bloc } .LP [ } \fBset\fR } .LP \fBis connected to\fR { zone de bloc { zone de bloc | symbole de cadre } .LP [ } \fBset\fR .LP L' identifie un canal externe reli\*'e au d\*'elimit\*'e par le . L' identifie un bloc externe comme \*'etant une extr\*'emit\*'e de canal pour le d\*'elimit\*'e par le . .LP ::= .LP .LP | .LP | .LP ::= .LP \fB\ \ \ \ MONTAGE\fR .LP ::= .LP \fB\ \ \ \ MONTAGE\fR .LP ::= .LP \fB\ \ \ \ MONTAGE\fR .LP .LP est d\*'efinie au \(sc\ 2.5.5, et au \(sc\ 2.4.1 et au \(sc\ 3.2.3. .LP Pour chaque fl\*`eche plac\*'ee sur le , il doit y avoir une . Une doit \* | tre suffisamment proche de la fl\*`eche \*`a laquelle elle est associ\*'ee pour \*'eviter toute ambigu\*:it\*'e. .LP \fIS\*'emantique\fR .LP Un canal est un moyen de transport pour les signaux. Un canal peut \* | tre consid\*'er\*'e comme \*'etant un ou deux trajets de canal unidirectionnels ind\*'ependants entre deux blocs ou entre un bloc et son environnement. .LP Les signaux achemin\*'es par les canaux sont v\*'ehicul\*'es jusqu'au point extr\* | me de destination. .LP Au point extr\* | me de destination d'un canal, les signaux se pr\*'esentent dans le m\* | me ordre que celui des signaux au point d'origine. Si deux ou plusieurs signaux arrivent simultan\*'ement sur le canal, ils sont ordonn\*'es arbitrairement. .LP .LP Un canal peut retarder l'acheminement des signaux sur le canal. Cela signifie qu'une file d'attente du type premier\(hyentr\*'e\(hypremier\(hysorti (FIFO) se trouve associ\*'ee \*`a chaque direction dans un canal. Quand un signal se pr\*'esente sur le canal, il est plac\*'e dans la file d'attente. Apr\*`es un intervalle de temps non d\*'etermin\*'e et non constant, la premi\*`ere instance de signal dans la file d'attente est lib\*'er\*'ee et appliqu\*'ee \*`a l'un des canaux ou l'un des trajets de signaux qui se trouvent connect\*'es au canal. .LP Plusieurs canaux peuvent exister entre deux points d'extr\*'emit\*'es. Le m\* | me type de signal peut \* | tre achemin\*'e sur des canaux diff\*'erents. .LP 2.5.2 \fIAcheminement du signal\fR .LP \fIGrammaire abstraite\fR .LP \fID\*'efinition\(hyd'acheminement\(hyde\(hysignal\fR :: \fINom\(hyd'acheminement\(hyde\(hysignal\fR .LP \fITrajet\(hyd'acheminement\(hydu\(hysignal\fR .LP [\fITrajet\(hyd'acheminement\(hydu\(hysignal\fR ] .LP .LP \fITrajet\(hyd'acheminement\(hydu\(hysignal\fR :: \fIProcessus\(hyd'origine\fR .LP \fIProcessus\(hydestinataire\fR .LP \fIIdentificateur\(hyde\(hysignal\(hy\fR \fBset\fR .LP \fIProcessus\(hyd'origine\fR = \fIIdentificateur\(hyde\(hyprocessus\fR | .LP ENVIRONMENT .LP \fIProcessus\(hydestinataire\fR = \fIIdentificateur\(hyde\(hyprocessus\fR | .LP ENVIRONMENT .LP \fINom\(hyd'acheminement\(hyde\(hysignal\fR = \fINom\fR .LP Un des points extr\* | mes au moins du \fItrajet\(hyd'acheminement\(hydu\(hysignal\fR doit \* | tre un processus. .LP Si les deux points extr\* | mes sont des processus, les \fIidentificateur\(hyde\(hyprocessus\fR doivent \* | tre diff\*'erents. .LP Le ou les point(s) extr\* | me(s) du processus doivent \* | tre d\*'efinis dans la m\* | me unit\*'e de port\*'ee que celle de l'acheminement du signal. .LP .bp .LP \fIGrammaire textuelle concr\*`ete\fR .LP ::= .LP SIGNALROUTE .LP .LP [] .LP ::= .LP { FROM TO .LP | FROM TO ENV .LP | FROM ENV TO } .LP WITH .LP La est d\*'efinie au \(sc\ 2.5.5. .LP Lorsque deux sont d\*'efinis, l'un doit \* | tre en sens oppos\*'e \*`a l'autre. .LP \fIGrammaire graphique concr\*`ete\fR .LP ::= .LP .LP \fBis associated with\fR { nom d' acheminement de signal > .LP { ] [ } \fBset\fR } .LP \fBis connected to\fR .LP { zone de processus> { zone de processus> | ::= .LP | .LP ::= .LP \fB\ \ \ \ MONTAGE\fR .LP ::= .LP \fB\ \ \ \ MONTAGE\fR .LP Un symbole d'acheminement de signal comprend une t\* | te de fl\*`eche \*`a une extr\*'emit\*'e (une direction) ou une t\* | te de fl\*`eche \*`a chaque extr\*'emit\*'e (deux directions) pour montrer la direction du flot des signaux. .LP Pour chaque fl\*`eche situ\*'ee sur le , il doit exister une . Une doit \* | tre suffisamment proche de la fl\*`eche \*`a laquelle elle est associ\*'ee afin d'\*'eviter toute ambigu\*:it\*'e. .LP .LP Lorsque le est reli\*'e au , l' identifie un canal auquel l'acheminement de signal est reli\*'e. .LP \fIS\*'emantique\fR .LP Un acheminement de signal est un moyen de transport pour les signaux. Un acheminement de signal peut \* | tre consid\*'er\*'e comme \*'etant un ou deux trajets d'acheminement de signal unidirectionnels et ind\*'ependants entre deux processus ou entre un processus et son environnement. .LP Les signaux achemin\*'es par des acheminements de signaux sont d\*'elivr\*'es au point extr\* | me de destination. .LP Un acheminement de signaux n'apporte aucun retard dans le transport des signaux. .LP Aucun acheminement de signal ne peut relier des instances de processus du m\* | me type. Si tel est le cas, l'interpr\*'etation du noeud\(hyde\(hysortie a pour cons\*'equence implicite que le signal est appliqu\*'e directement \*`a l'acc\*`es d'entr\*'ee du processus de destination. .LP Plusieurs trajets de signaux peuvent exister entre deux points extr\* | mes. Le m\* | me type de signal peut \* | tre achemin\*'e sur diff\*'erents acheminements de signaux. .LP .LP \fIMod\*`ele\fR .LP Un contient les signaux que le processus est autoris\*'e \*`a recevoir. Un ne doit toutefois pas contenir de signaux de temporisateur. Si une contient des , l', s'il y en a un, n'a pas besoin de contenir des signaux dans des acheminements de signaux conduisant au processus. .LP Si une ne contient aucune , toutes les dans cette doivent contenir un . Dans ce cas, les et les sont tir\*'ees de l', des et des canaux qui se terminent \*`a la fronti\*`ere des blocs. Les signaux correspondant \*`a une direction donn\*'ee entre deux processus dans l'acheminement de signal implicite constituent l'intersection des signaux sp\*'ecifi\*'es dans l' du processus de destination et les signaux mentionn\*'es dans une sortie du processus d'origine. Si l'un des points extr\* | mes est l'environnement, l'ensemble d'entr\*'ee/ensemble de sortie est constitu\*'e par les signaux achemin\*'es par le canal dans la direction donn\*'ee. .LP .bp .LP 2.5.3 \fIConnexion\fR .LP \fIGrammaire abstraite\fR .LP \fIConnexion\(hyde\(hycanal\(hy\*`a\(hyacheminement\fR :: \fIIdentificateur\(hyde\(hycanal\fR .LP \fIIdentificateur\(hyd'acheminement\(hyde\(hysignal\(hy\fR \fBset\fR .LP \fIIdentificateur\(hyd'acheminement\(hyde\(hysignal\fR = \fIIdentificateur\fR .LP D'autres constructions sont donn\*'ees au \(sc 3. .LP .LP Chaque \fIidentificateur\(hyde\(hycanal\fR reli\*'e au bloc englobant doit \* | tre mentionn\*'e dans une seule \fIconnexion\(hyde\(hycanal\(hy\*`a\(hyacheminement\fR . L'\fIidentificateur\(hyde\(hycanal\fR dans une \fIconnexion\(hyde\(hycanal\(hy\*`a\(hyacheminement\fR doit d\*'enoter un canal connect\*'e au bloc entre crochets. .LP Chaque \fIidentificateur\(hyd'acheminement\(hyde\(hysignal\fR dans une \fIconnexion\(hyde\(hycanal\(hy\*`a\(hyacheminement\fR doit \* | tre d\*'efini dans le m\* | me bloc o\*`u la \fIconnexion\(hyde\(hycanal\(hy\*`a\(hyacheminement\fR se trouve d\*'efinie et doit avoir la fronti\*`ere de ce bloc situ\*'ee \*`a l'un de ses points extr\* | mes. Chaque\fR \fIidentificateur\(hyd'acheminement\(hyde\(hysignal\fR d\*'efini dans le bloc qui l'entoure et qui a son environnement comme \*'etant l'un de ses points extr\* | mes, doit \* | tre mentionn\*'e dans une seule et unique \fIconnexion\(hyde\(hycanal\(hy\*`a\(hyacheminement\fR . .LP Pour une direction donn\*'ee, l'union des ensembles \fI\fR d'\fIidentificateur de signal\fR dans les acheminements de signaux dans une \fIconnexion\(hyde\(hycanal\(hy\*`a\(hyacheminement\fR doit \* | tre \*'egale aux signaux achemin\*'es par l'\fIidentificateur\(hyde\(hycanal\fR dans la m\* | me \fIconnexion\(hyde\(hycanal\(hy\*`a\(hyacheminement\fR \fI\fR et correspondant \*`a la m\* | me direction. .LP \fIGrammaire textuelle concr\*`ete\fR .LP .LP ::= .LP CONNECT .LP AND { .LP On ne peut mentionner deux fois un . .LP \fIGrammaire graphique concr\*`ete\fR .LP Sur le plan graphique, l'\*'el\*'ement connexion est repr\*'esent\*'e par l' associ\*'e au trajet de signal et contenu dans la (voir le \(sc\ 2.5.2 \fIgrammaire graphique concr\*`ete\fR ). .LP .LP 2.5.4 \fISignal\fR .LP \fIGrammaire abstraite\fR .LP \fID\*'efinition\(hyde\(hysignal\fR :: \fINom\(hyde\(hysignal\fR .LP \fIIdentificateur\(hyde\(hyr\*'ef\*'erence\(hyde\(hysorte\fR | .LP [\fIAffinage\(hyde\(hysignal\fR ] .LP \fINom\(hyde\(hysignal\fR :: \fINom\fR .LP L'\fIidentificateur\(hyde\(hyr\*'ef\*'erence\(hyde\(hysorte\fR est d\*'efini au \(sc 5.2.2. .LP .LP \fIGrammaire textuelle concr\*`ete\fR .LP ::= .LP SIGNAL { nom de signal > [] [ } .LP { [] [ } .LP ::= .LP ( { est d\*'efini au \(sc 3.3, la au \(sc 5.2.2. .LP \fIS\*'emantique\fR .LP .LP Une instance de signal est un flot d'informations entre des processus; c'est une instanciation d'un type de signal d\*'efini par une d\*'efinition de signal. Une instance de signal peut \* | tre envoy\*'ee par l'environnement ou par un processus, elle se dirige toujours vers un processus ou vers l'environnement. .LP On associe \*`a chaque instance de signal deux valeurs de PId (voir le \(sc 5.6.10) indiquant les processus de d\*'epart et de destination, l' sp\*'ecifi\*'e dans la sortie correspondante et les autres valeurs, dont les sortes sont d\*'efinies dans la d\*'efinition d'un signal. .LP .bp .LP 2.5.5 \fID\*'efinition de liste de signaux\fR .LP Un peut \* | tre utilis\*'e dans une , une , une , un et comme moyen abr\*'eg\*'e pour \*'enum\*'erer les identificateurs de signaux et les signaux de temporisation. .LP .LP \fIGrammaire textuelle concr\*`ete\fR .LP ::= .LP SIGNALLIST = .LP ::= .LP { ::= .LP | () | .LP .LP La qui est \*'etablie en rempla\*,cant tous les dans la liste par les qu'ils d\*'ecrivent, correspond \*`a un \fIidentificateur\(hyde\(hysignal\(hy\fR \fBset\fR dans la grammaire abstraite. Dans chaque ainsi \*'etablie, chaque doit \* | tre distinct. .LP \fIGrammaire graphique concr\*`ete\fR .LP ::= .LP \fBcontains\fR .LP ::= .LP .rs .sp 04P .ad r \fBFigura 1, p. 50 (E)\fR .ad b .RT .LP .bp