Publication Type
Conference Proceeding Article
Version
acceptedVersion
Publication Date
9-2023
Abstract
Writing code for Arduino poses unique challenges. A developer 1) needs hardware-specific knowledge about the interface configuration between the Arduino controller and the I/Ohardware, 2) identifies a suitable driver library for the I/O hardware, and 3) follows certain usage patterns of the driver library in order to use them properly. In this work, based on a study of real-world user queries posted in the Arduino forum, we propose ArduinoProg to address such challenges. ArduinoProg consists of three components, i.e., Library Retriever, Configuration Classifier, and Pattern Generator. Given a query, Library Retriever retrieves library names relevant to the I/O hardware identified from the query using vector-based similarity matching. Configuration Classifier predicts the interface configuration between the I/O hardware and the Arduino controller based on the method definitions of each library. Pattern Generator generates the usage pattern of a library using a sequence-to-sequence deep learning model. We have evaluated ArduinoProg using real-world queries, and our results show that the components of ArduinoProg can generate accurate and useful suggestions to guide developers in writing Arduino code. Demo video: bit.ly/3Y3aeBe Tool: https://huggingface.co/spaces/imamnurby/ArduinoProg Code and data: https://github.com/imamnurby/ArduProg
Keywords
Arduino programming, code generation, deep learning, information retrieval
Discipline
Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
2023 38th IEEE/ACM International Conference on Automated Software Engineering: Luxembourg, September 11-15: Proceedings
First Page
2030
Last Page
2033
ISBN
9798350329964
Identifier
10.1109/ASE56229.2023.00055
Publisher
IEEE
City or Country
Piscataway, NJ
Citation
IMAM NUR BANI YUSUF; DIYANAH BINTE ABDUL JAMAL; and JIANG, Lingxiao.
ArduinoProg: Towards automating Arduino programming. (2023). 2023 38th IEEE/ACM International Conference on Automated Software Engineering: Luxembourg, September 11-15: Proceedings. 2030-2033.
Available at: https://ink.library.smu.edu.sg/sis_research/8483
Copyright Owner and License
Authors
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1109/ASE56229.2023.00055