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...
Saved in:
Main Authors: | , , |
---|---|
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 |