{'fraction_non_alphanumeric': 0.0264, 'fraction_numerical': 0.004, 'mean_word_length': 5.38265306122449, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Handling IoT platform heterogeneity with COISA, a compact OpenISA virtual platform

In face of the high number of different hardware platforms we need to program with Internet‐of‐Things (IoT), virtual machines (VMs) pose as a promising technology to allow a program once, deploy everywhere strategy. Unfortunately, existing VMs are either too heavy or use a stripped‐down version to work on resource‐constrained IoT devices. We present COISA, a compact virtual platform that relies on OpenISA, an instruction set architecture (ISA) that strives for easy emulation, to allow a single program to be deployed on many platforms, including tiny microcontrollers. By exploring the benefits of using a concrete ISA as our VM language, our experimental results indicate that COISA is easily portable and is capable of running unmodified guest applications in highly heterogeneous host platforms, including one with only 2 kB of RAM. For time‐critical IoT applications on constrained platforms where extracting performance is of paramount importance, we propose the use of cloud‐assisted translations, which employ static binary translation to deliver a binary fully converted to the native ISA used in the IoT device. Copyright © 2016 John Wiley & Sons, Ltd.