{'fraction_non_alphanumeric': 0.033622559652928416, 'fraction_numerical': 0.0, 'mean_word_length': 5.153333333333333, '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}}
NesJ: A Java to NesC Translation Engine with Runtime Validation for Wireless Sensor Networks

Embedded system application development for Wireless Sensor Networks (WSN) can be challenging, due to the low-power and lean-resource nature of the embedded system hardware, and most embedded system SDKs lack support for Object Oriented Programming (OOP). NesC is the embedded programming language used to develop applications for TinyOS, a widely-used operating system for WSNs, and it suffers from its steep learning curve and complexity of debugging and validation. In this paper, we present NesJ, a translation engine that converts applications written in Java, a widely-used OOP language, to NesC with built-in support for runtime validation. (i) We describe the rules used to guide the translation process. (ii) We present the design of the translation engine. (iii) Finally, we demonstrate our approach with case studies.