Article de reference

La construction de Zahn

La construction de Zahn en informatique , également connue sous le nom d'« instruction de cas de situation », est une structure proposée pour un flux de contrôle structuré dans ...

La construction de Zahn en informatique , également connue sous le nom d'« instruction de cas de situation », est une structure proposée pour un flux de contrôle structuré dans les langages de programmation, décrite pour la première fois par boucles permettant de reconnaître plusieurs manières dont une boucle peut se terminer . Par exemple, une boucle de recherche peut se terminer prématurément, lorsque la cible est trouvée ; ou après une recherche infructueuse. La construction de Zahn permet d'éviter GO TOles instructions conditionnelles lors de la détermination du cas rencontré. Zahn y parvient en introduisant un nouveau type de variable, appelée indicateur de situation, dans une structure de type CASE entourant la boucle.

Donald Knuth , dans son article « Programmation structurée avec instructions Go To », décrit deux formes de la construction de Zahn comme suit :

boucle jusqu'à <situation 1> ou ... ou <situation n> : <liste d'instructions 0> répéter; puis <situation 1> => <liste d'instructions 1>; ... <situation n> => <liste d'instructions n>; fi

et:

commencer jusqu'à <situation 1> ou ... ou <situation n> : <liste d'instructions 0>; fin; puis <situation 1> => <liste d'instructions 1>; ... <situation n> => <liste d'instructions n>; fi

Il doit également y avoir une instruction pour définir un indicateur de situation spécifique et sortir du corps de la construction.

L'exemple simple suivant consiste à rechercher un élément particulier dans un tableau bidimensionnel.

sortir lorsqu'il est trouvé ou manquant ; pour I := 1 à N faire pour J := 1 à M faire si table[I,J] = cible alors trouvé ; manquant; sorties trouvé : imprimer ("l'élément est dans le tableau"); manquant : impression ("l'élément n'est pas dans le tableau") ; fin de sortie ;

Les blocs try-catch , utilisés dans les langages de programmation modernes pour la gestion des exceptions , constituent des extensions importantes du concept de Zahn. La principale différence réside dans le fait que la portée des propositions de Zahn se limitait aux boucles individuelles d'un programme, tandis que les mécanismes de gestion des exceptions permettent souvent de lever des exceptions profondément dans la pile d'appels et de les intercepter plus haut dans celle-ci. Le concept de Zahn étant local à une routine, il peut être implémenté très efficacement, sans qu'il soit nécessaire de « dériver » la pile d'appels.

Zahn a implémenté son instruction de cas situationnel dans son langage SKOL. SKOL a été implémenté sous forme d'un ensemble de macros pour le préprocesseur Fortran MORTRAN .

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index