Générateur
Javascript
H3120 v2 Article de référence

Générateur
Javascript

Auteur(s) : Christian Queinnec

Date de publication : 10 févr. 2017

Logo Techniques de l'Ingenieur Cet article est réservé aux abonnés
Pour explorer cet article plus en profondeur Consulter l'extrait gratuit

Déjà abonné ?

Présentation

1 - Historique et emplois

2 - Syntaxe

3 - Valeurs

4 - Instructions

5 - Environnement global

6 - Héritage et prototypes

7 - Concurrence

8 - Générateur

9 - Conclusions

Sommaire

Présentation

RÉSUMÉ

Javascript est un langage de programmation pour les applications Web. Quoique assez jeune, puisque né en 1995, l’essor du Web a conféré à Javascriptune position dominante tant dans les navigateurs que maintenant côté serveurs. Cet article présente ce langage dans sa version standardisée de 2015.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

Auteur(s)

INTRODUCTION

Javascript est désormais le langage du Web tant du côté des serveurs que du côté des navigateurs qu’il s’exécute sur téléphone, tablette ou ordinateur. Cet article décrit synthétiquement le langage (dans sa version ECMAScript 2015) et ses principales spécificités afin de permettre aux lecteurs, ayant une certaine pratique de l’informatique, d’appréhender les caractéristiques majeures de ce langage de programmation. Tout ne sera bien évidemment pas dit (la norme fait 566 pages) mais l’essentiel le sera.

Les exemples figurant dans cet article n’ont pas une tonalité uniforme, ils varient les styles, emploient parfois des caractéristiques en avance ou des caractéristiques mineures non nécessairement détaillées dans le texte, mais qui illustrent l’éventail des possibilités qu’offre ECMAScript 2015.

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 92 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


VERSIONS

Il existe d'autres versions de cet article :

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v2-h3120

Lecture en cours
Présentation

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

8. Générateur

Parmi les avancées d’ECMAScript 2015, on trouve les générateurs : des sortes de fonctions avec un état de contrôle persistant, pouvant être reprises plusieurs fois et rendre plusieurs résultats. Un générateur est défini avec un nouveau mot-clé : function* et il utilise le mot-clé yield pour interagir avec son appelant.

8.1 Générateur linéaire

Un premier exemple illustrant les pauses qui s’opèrent dans le générateur et les différentes reprises est présenté à la figure 50 a.

C’est le premier appel à next qui démarre l’exécution du générateur qui s’arrête au premier yield et renvoie comme résultat un objet dont la propriété value est la valeur de l’expression qui suit yield. Lors du second appel à next, l’exécution du générateur reprend là où elle s’était arrêtée et s’interrompt au second yield. Le troisième appel à next prend un argument qui devient la valeur de l’expression yield 2 et se trouve donc stockée dans la variable trois. Invoquer une quatrième fois next conduit à exécuter return ce qui interrompt le générateur ce que l’on peut vérifier à l’aide de la propriété done.

HAUT DE PAGE

8.2 Générateur bouclant

On le voit, le générateur possède un état interne qui lui permet d’arrêter puis de reprendre son exécution. Un générateur peut ne pas être linéaire et placer des yield au sein de boucle infinie. La figure 50 b présente un exemple qui calcule la suite de Fibonacci (une suite définie par f 0 = f 1 = 1 et fn +2 = fn +1 + fn ).

Dans l’exemple de la figure 50 b, le premier appel g.next() exécute le corps du générateur jusqu’au premier yield. Le second appel g.next(1) demande le premier nombre de Fibonacci non encore calculé...

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 92 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Lecture en cours
Générateur

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - SELF UNGAR (D.), SMITH (R.B.) -   Self : The Power of Simplicity.  -  OOPSLA ’87 Conference Proceedings, pp. 227-241, Orlando, FL, October 1987

NORMES

  • ECMAScript® 2016 language specification - ECMA-262 - 2016

  • IEEE Standard for the Scheme Programming Language - IEEE Std 1178-1990 - 1990

  • Information technology Universal Coded Character Set (UCS) - ISO/IEC 10646 : 2014 - 2014

  • Standard for Binary Floating – Point Arithmetic - IEEE 754 - 2008

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 93 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Ressources documentaires

Plate-forme .NET

Le .NET Framework, qui permet la création et l’exécution d’applications modernes conçues autour des ...

Linux, noyau et système d’exploitation libre

Le logiciel libre et Linux, son noyau emblématique, se sont démocratisés et il n'est pas un projet ...

Linux embarqué

Linux est un système d'exploitation multitâche de la famille UNIX. Développé initialement sur processeur ...

Langages informatiques

L’informatique permet à des textes d’agir sur le monde tangible. La programmation est l’art d’écrire et ...