DOI QR코드

DOI QR Code

Implementation of a Scheme Mobile Programming Application and Performance Evaluation of the Interpreter

Scheme 프로그래밍 모바일 앱 구현과 인터프리터 성능 평가

  • 김동섭 (부산대학교 정보융합공학과) ;
  • 한상곤 (부산대학교 정보융합공학과) ;
  • 우균 (부산대학교 정보컴퓨터공학부)
  • Received : 2024.01.17
  • Accepted : 2024.02.26
  • Published : 2024.03.31

Abstract

Though programming education has been stressed recently, the elementary, middle, and high school students are having trouble in programming education. Most programming environments for them are based on block coding, which hinders them from moving to text coding. The traditional PC environment has also troubles such as maintenance problems. In this situation, mobile applications can be considered as alternative programming environments. This paper addresses the design and implementation of coding applications for mobile devices. As a prototype, a Scheme interpreter mobile app is proposed, where Scheme is used for programming courses at MIT since it supports multi-paradigm programming. The implementation has the advantage of not consuming the network bandwidth since it is designed as a standalone application. According to the benchmark result, the execution time on Android devices, relative to that on a desktop, was 131% for the Derivative and 157% for the Tak. Further, the maximum execution times for the benchmark programs on the Android device were 19.8ms for the Derivative and 131.15ms for the Tak benchmark. This confirms that when selecting an Android device for programming education purposes, there are no significant constraints for training.

최근 프로그래밍 교육의 중요성이 강조되고 있지만, 초·중·고교 학생들은 프로그래밍 교육에 어려움을 겪고 있다. 대부분의 프로그래밍 환경이 블록 코딩을 바탕으로 이루어지고 있는데 이는 텍스트 코딩으로의 이행에 방해가 된다. 전통적인 PC 환경도 유지 관리 문제 등 어려움이 있다. 이러한 상황에서 모바일 앱은 대안적 프로그램 교육환경으로 생각해 볼 수 있다. 이 논문에서는 이동형 기기에서 프로그램을 작성할 수 있는 모바일 앱 설계하고 구현하였다. 첫 사례로 Scheme 인터프리터 모바일 앱을 구현하였는데, Scheme은 다중 패러다임 프로그래밍을 지원하는 교육용 언어로 MIT의 프로그래밍 교과에 사용되고 있다. 구현된 앱은 독립형 앱으로 설계되어 네트워크를 사용하지 않아도 된다는 장점이 있다. 벤치마크 수행결과, PC 수행 시간에 대한 안드로이드 기기 수행 시간은 Derivative 벤치마크 131%와 Tak 벤치마크 157%로 나타났다. 또한, 안드로이드 기기에서 벤치마크 프로그램의 수행 시간 최댓값은 Derivative 벤치마크 19.8ms, Tak 벤치마크 131.15ms로 나타났다. 이는 안드로이드 기기를 프로그래밍 교육용으로 선택 시 실습에 큰 제약이 되지 않음을 나타낸다.

Keywords

Acknowledgement

이 과제는 2021학년도부산대학교교수국외장기파견지원비에 의하여 연구되었음.

References

  1. B. Kim, "Revision and implementation of App Inventor open source," Journal of the Korea Institute of Information and Communication Engineering, Vol.22, No.2, pp.221-226, 2018.
  2. H. Kim, "For improving quality of classes in liberal arts programming classes analysis of role of instructor and learning achievement and satisfaction," The Journal of the Convergence on Culture Technology, Vol.9, No.3, pp. 745-752, 2023.
  3. K. Palin, A. M. Feit, S. Kim, P. O. Kristensson, and A. Oulasvirta, "How do people type on mobile devices? Observations from a study with 37,000 volunteers," Proceedings of the 21st International Conference on Human-Computer Interaction with Mobile Devices and Services, 2019.
  4. M. M. T. Chakravarty and G. Keller, "The risks and benefits of teaching purely functional programming in first year," Journal of Functional Programming, Vol.14, No.1, pp. 113-124, 2004.
  5. C. T. Haynes, R. K. Dybvig, D. P. Friedman, L. Sadler, and G. Springer, "CISE educational infrastructure: Tools and techniques for use of the Scheme programming language in undergraduate education," Computer Science Department in Indiana University, 1993.
  6. G. J. Sussman and G. L. Steele Jr, "Scheme: A interpreter for extended lambda calculus," Higher-Order and Symbolic Computation, Vol.11, No.4, pp.405-439, 1998.
  7. D. Kolbly, RScheme: Design and Implementation [Internet], https://www.rscheme.org.
  8. K.-C. Son, "The predictor of android application speed up by using Android NDK," Master's thesis, The Graduate School of Electronics Engineering in Chonbuk National University, 2012.
  9. Google for Developers, Android NDK [Internet], https://developer.android.com/ndk.
  10. R. P. Gabriel, "Performance and Evaluation of Lisp Systems," Vol.263, Cambridge, MIT press, 1985.
  11. J. McCarthy, "An interesting LISP function," ACM Lisp Bulletin, Iss.3, pp.6-8, 1979.
  12. Evilbinary, RScheme for Android [Internet], https://github.com/evilbinary/RScheme-for-android.
  13. J.-K. Lee, J.-M. Choi, S-Y. Lee, H.-S. Choi, and C.-D. Lee, "A performance improvement study on Android application using NDK," Journal of the Korean Information Processing Society, Vol.19, No.2, pp.750-751, 2012.
  14. C. Lee and S. Oh, "Design and Implementation of JPP (JNI PreProcessor)," Journal of the Korean Information Processing Society, Vol.9, No.1, pp.129-136, 2002.
  15. C. Lee, "Java preprocessor for integration of Java and C," PhD thesis, Graduate School of Computer Science in Dongguk University, 2002.
  16. E. Koh, N. Kim, S. Hwang, and J. Lee, "Porting and implementation of a 3D cube game using Android NDK (Native Development Kit)," Journal of Digital Contents Society, Vol.14, No.3, pp.381-390, 2013.
  17. T. R. Beelders and J.-P. L. du Plessis, "Syntax highlighting as an influencing factor when reading and comprehending source code," Journal of Eye Movement Research, Vol.9, No.1, pp.1-11, 2016.
  18. K. Keipert, et al., "Energy-efficient computational chemistry: Comparison of x86 and ARM systems," Journal of Chemical Theory and Computation, Vol.11, No.11, pp.5505-5061, 2015.
  19. C.-M. Lin, J.-H. Lin, C.-R. Dow, and C.-M. Wen, "Benchmark Dalvik and native code for Android system," In Proceedings of 2011 Second International Conference on Innovations in Bio-inspired Computing and Applications, pp.320-323, IEEE, 2011.
  20. T. Kato, "Implementing R7RS on an R6RS Scheme system," In Proceedings of 2014 Scheme and Functional Programming Workshop (Scheme '14), Washington DC, pp. 1-7, 2014.