L'embarqué > Normes & spécifications > Programmation > Langages : avec JerryScript, Samsung propose un interpréteur JavaScript compact pour l’IoT

Langages : avec JerryScript, Samsung propose un interpréteur JavaScript compact pour l’IoT

Publié le 23 août 2016 à 12:13 par François Gauthier        Programmation  Samsung

JerryScript

Le géant coréen Samsung a mis en open source cet été IoT.js, une plate-forme pour les applications de l’Internet des objets, et JerryScript, un interpréteur JavaScript compact et portable dédié à la programmation sur microcontrôleurs dans le cadre d’applications IoT. L’objectif étant de populariser l’utilisation de JavaScript pour la création de services logiciels capables de communiquer entre eux ou avec l’extérieur.

Rappelons que JavaScript est un langage de programmation de scripts, orienté objet, utilisé notamment pour des pages Web interactives mais aussi pour des travaux sur des serveurs (via Node.js notamment). Une des idées sous-jacentes à JavaScript, inventé en 1995, est de manipuler de façon simple des objets au sens informatique du terme. D'autre part, selon Samsung, JavaScript est adapté pour la programmation de systèmes embarqués car il prend en charge les appels de fonctions asynchrones très utiles pour la programmation orienté événement (event-driven programming).

Désormais, via la mouture de JavaScript dédiée aux objets connectés proposée par Samsung, il sera possible d’utiliser cette approche de programmation sur des microcontrôleurs à très faibles ressources mémoire, les besoins en RAM étant inférieurs à 64 Ko (auquel il faut ajouter 200 Ko pour le stockage en ROM du code). La solution avancée par Samsung utilise du bytecode et une machine virtuelle capable de l’exécuter, une technique qui permet de gagner en espace de stockage.

Exemple de code JerryScript

 

D’ores et déjà, les microcontrôleurs STM32F4 de STMicroelectronics et les cartes Raspberry Pi 2 sont supportés et Samsung devrait à terme proposer JerryScript sur ses propres modules Artik, basés sur des cœurs ARM Cortex-A7 et A15, et sur les modules Edison d'Intel.

Sur le même sujet