ArduinoProg: Towards automating Arduino programming

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 l...

Full description

Saved in:
Bibliographic Details
Main Authors: IMAM NUR BANI YUSUF, DIYANAH BINTE ABDUL JAMAL, JIANG, Lingxiao
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2023
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/8483
https://ink.library.smu.edu.sg/context/sis_research/article/9486/viewcontent/arduprog_ase23.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-9486
record_format dspace
spelling sg-smu-ink.sis_research-94862024-01-04T09:04:22Z ArduinoProg: Towards automating Arduino programming IMAM NUR BANI YUSUF, DIYANAH BINTE ABDUL JAMAL, JIANG, Lingxiao 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 2023-09-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/8483 info:doi/10.1109/ASE56229.2023.00055 https://ink.library.smu.edu.sg/context/sis_research/article/9486/viewcontent/arduprog_ase23.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University Arduino programming code generation deep learning information retrieval Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic Arduino programming
code generation
deep learning
information retrieval
Software Engineering
spellingShingle Arduino programming
code generation
deep learning
information retrieval
Software Engineering
IMAM NUR BANI YUSUF,
DIYANAH BINTE ABDUL JAMAL,
JIANG, Lingxiao
ArduinoProg: Towards automating Arduino programming
description 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
format text
author IMAM NUR BANI YUSUF,
DIYANAH BINTE ABDUL JAMAL,
JIANG, Lingxiao
author_facet IMAM NUR BANI YUSUF,
DIYANAH BINTE ABDUL JAMAL,
JIANG, Lingxiao
author_sort IMAM NUR BANI YUSUF,
title ArduinoProg: Towards automating Arduino programming
title_short ArduinoProg: Towards automating Arduino programming
title_full ArduinoProg: Towards automating Arduino programming
title_fullStr ArduinoProg: Towards automating Arduino programming
title_full_unstemmed ArduinoProg: Towards automating Arduino programming
title_sort arduinoprog: towards automating arduino programming
publisher Institutional Knowledge at Singapore Management University
publishDate 2023
url https://ink.library.smu.edu.sg/sis_research/8483
https://ink.library.smu.edu.sg/context/sis_research/article/9486/viewcontent/arduprog_ase23.pdf
_version_ 1787590777916882944