MoMIT: Porting a JavaScript Interpreter on a Quarter Coin - Morales, Rodrigo; Saborido Infantes, Rubén; Guéhéneuc, Yann-Gaël (IEEE (Institute of Electrical and Electronics Engineers), 2020)
The Internet of Things (IoT) is a network of physical, connected devices providing services through private networks and the Internet. The devices connect through the Internet to Web servers and other devices. One of the popular programming languages for communicating Web pages and Web apps is JavaScript (JS). Hence, the devices would benefit from JS apps. However, porting JS apps to the many IoT devices, e.g., System-on-a-Chip (SoCs) devices (e.g., Arduino Uno), is challenging because of their limited memory, storage, and CPU capabilities. Also, some devices may lack hardware/software capabilities for running JS apps “as is”. Thus, we propose MoMIT , a multiobjective optimization approach to miniaturize JS apps to run on IoT devices. We implement MoMIT using three different search algorithms. We miniaturize a JS interpreter and measure the characteristics of 23 apps before/after applying MoMIT . We find reductions of code size, memory usage, and CPU time of 31, 56, and 36 percent, respectively (medians). We show that MoMIT allows apps to run on up to two additional devices in comparison to the original JS interpreter.
Keywords: JavaScript (Lenguaje de programación); Internet de los objetos; Internet of Things; Software miniaturization; Multiobjective optimization; Embedded devices; JavaScript; Evolutionary algorithms