Design and compilation of an object-oriented macroprogramming language for wireless sensor networksShow others and affiliations
2014 (English)In: Proceedings - Conference on Local Computer Networks, LCN, IEEE Computer Society , 2014, no November, p. 574-582Conference paper, Published paper (Refereed)
Abstract [en]
Wireless sensor network (WSN) programming is still largely performed by experts in a node-centric way using low-level languages such as C. Although numerous higher-level abstractions exist, each simplifying a specific aspect of distributed programming, real applications often require to combine multiple abstractions into a single program. Using current programming frameworks, this represents a difficult task. In previous work, we therefore defined a conceptual framework that facilitates abstraction composition by defining sound compositional rules among few fundamental abstraction categories. The framework is extensible: programmers can add new abstractions within the boundaries determined by the compositional rules. In this paper we describe the design of a language - called MPL - that instantiates this conceptual framework. To support the extensible nature of the framework, the language is object-oriented, which allows programmers to add new abstractions by inheriting from existing classes that implement predefined interfaces. We modeled the syntax after Java, to make it more palatable to inexperienced embedded programmers. Compared to Java, we modified the language to enable efficient execution on WSN devices. We designed and implemented a compiler that translates MPL language into executable C code, which spares the overhead of a virtual machine. By comparing MPL implementations against functionally-equivalent Contiki/C implementations of several benchmark applications, we determined that the performance overhead of MPL is limited, and yet the programming task is simplified.
Place, publisher, year, edition, pages
IEEE Computer Society , 2014. no November, p. 574-582
Keywords [en]
Compilers, Java, object-oriented languages, wireless sensor networks, Abstracting, Application programs, Benchmarking, Computational linguistics, Computer networks, Computer systems programming, Distributed computer systems, Java programming language, Object oriented programming, Program compilers, Sensor nodes, Benchmark applications, Conceptual frameworks, Current programming, Distributed programming, Higher-level abstraction, Programming tasks, Real applications, C (programming language)
National Category
Engineering and Technology
Identifiers
URN: urn:nbn:se:ri:diva-45597DOI: 10.1109/LCNW.2014.6927705Scopus ID: 2-s2.0-84932599752OAI: oai:DiVA.org:ri-45597DiVA, id: diva2:1456778
Conference
39th Annual IEEE Conference on Local Computer Networks, LCN 2014, 8 September 2014 through 11 September 2014
Note
Conference code: 112575
2020-08-062020-08-062023-05-25Bibliographically approved