ABSTRACT
Com o surgimento de dispositivos móveis de poder computacional cada vez maior, novas linguagens de programação também surgem de modo a dar suporte ao desenvolvimento de sistemas cada vez mais complexos que atendam aos desafios crescentes do mercado e às necessidades dos usuários. Cada linguagem de programação possui características específicas e a escolha da mais adequada depende de um conjunto de fatores associados aos requisitos do projeto a ser implementado, bem como à plataforma em que será executado. Neste trabalho foi investigado o desempenho de smartphones, que são considerados sistemas embarcados móveis devido possuírem configuração específica de hardware e software, em relação ao tempo de execução e aos consumos de energia e de memória, na execução de aplicativos móveis Android desenvolvidos em linguagens de programação clássicas, sendo C, C++, Java, Python, e também Kotlin, uma das linguagens oficiais do Android e Google, recentemente proposta e ainda pouco investigada, através de códigos abertos de algoritmos de benchmark multilinguagem.
- 2022. Stack overflow developer survey 2022. https://survey.stackoverflow.co/2022/#programming-scripting-and-markup-languages Online; accessed 20 January 2023.Google Scholar
- Akinlolu Adekotujo, Adedoyin Odumabo, Ademola Adedokun, and Olukayode Aiyeniko. 2020. A Comparative Study of Operating Systems: Case of Windows, UNIX, Linux, Mac, Android and iOS. International Journal of Computer Applications 176, 39 (2020), 16–23.Google ScholarCross Ref
- Doug Bagley. 2022. The Computer Language Benchmarks Game. https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/simple.html Online; accessed 25 January 2023.Google Scholar
- Emery D Berger, Celeste Hollenbeck, Petr Maj, Olga Vitek, and Jan Vitek. 2019. On the impact of programming languages on code quality: A reproduction study. ACM Transactions on Programming Languages and Systems (TOPLAS) 41, 4 (2019), 1–24.Google ScholarDigital Library
- Subham Bose 2018. A comparative study: java vs kotlin programming in android application development. International Journal of Advanced Research in Computer Science 9, 3 (2018), 41–45.Google ScholarCross Ref
- William Bugden and Ayman Alahmar. 2022. Rust: The programming language for safety and performance. arXiv preprint arXiv:2206.05503 (2022).Google Scholar
- Pierre Carbonnelle. 2018. Popularity of Programming Language Index. https://pypl.github.io/PYPL.html Online; accessed 25 January 2023.Google Scholar
- Lujing Cen, Ryan Marcus, Hongzi Mao, Justin Gottschlich, Mohammad Alizadeh, and Tim Kraska. 2020. Learned garbage collection. In Proceedings of the 4th ACM SIGPLAN International Workshop on Machine Learning and Programming Languages. 38–44.Google ScholarDigital Library
- Tej Bahadur Chandra, Pushpak Verma, and Anuj Kumar Dwivedi. 2019. Impact of programming languages on energy consumption for sorting algorithms. In Software Engineering. Springer, 93–101.Google Scholar
- Marco Couto, Rui Pereira, Francisco Ribeiro, Rui Rua, and João Saraiva. 2017. Towards a green ranking for programming languages. In Proceedings of the 21st Brazilian Symposium on Programming Languages. 1–8.Google ScholarDigital Library
- Ivica Crnkovic. 2005. Component-based software engineering for embedded systems. In Proceedings of the 27th international conference on Software engineering. 712–713.Google ScholarDigital Library
- Android developers. 2021. BatteryManager. Retrieved March 21, 2023 from https://developer.android.com/reference/android/os/BatteryManagerGoogle Scholar
- Android developers. 2021. Criar um projeto. Retrieved May 05, 2023 from https://developer.android.com/studio/projects/create-projectGoogle Scholar
- Android developers. 2021. SystemClock. Retrieved April 12, 2023 from https://developer.android.com/reference/android/os/SystemClockGoogle Scholar
- TIOBE Index. 2022. Popularity Indexes of Programming Languages for Embedded Systems. https://www.tiobe.com/tiobe-index/ Online; accessed 24 January 2023.Google Scholar
- Leonardo Kaplan and Roberto Ierusalimschy. 2021. Evaluating Optimizations for a High-Level Language. In Proceedings of the 25th Brazilian Symposium on Programming Languages. 25–32.Google ScholarDigital Library
- Zamira Kholmatova. 2020. Impact of programming languages on energy consumption for mobile devices. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 1693–1695.Google ScholarDigital Library
- Dennis Longley, Michael Shain, Dennis Longley, and Michael Shain. 1985. Compilers, Interpreters and Assemblers. Understanding Microcomputers (1985), 107–114.Google Scholar
- Pratik Mistry. 2022. What is an embedded system? types, characteristics and implementation. https://radixweb.com/blog/embedded-systems-concept-worth-understanding-implementingGoogle Scholar
- Michael Mol. 2007. Rosetta Code. Retrieved October 14, 2022 from https://rosettacode.org/wiki/Rosetta_CodeGoogle Scholar
- Sebastian Nanz and Carlo A Furia. 2015. A comparative study of programming languages in rosetta code. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Vol. 1. IEEE, 778–788.Google ScholarCross Ref
- Debashis Panigrahi, Carla Chiasserini, Sujit Dey, Ramesh Rao, Anand Raghunathan, and Kanishka Lahiri. 2001. Battery life estimation of mobile embedded systems. In VLSI Design 2001. Fourteenth International Conference on VLSI Design. IEEE, 57–63.Google Scholar
- Rui Pereira, Marco Couto, Francisco Ribeiro, Rui Rua, Jácome Cunha, João Paulo Fernandes, and João Saraiva. 2017. Energy efficiency across programming languages: how do energy, time, and memory relate?. In Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering. 256–267.Google ScholarDigital Library
- Stanley Rabinowitz and Stan Wagon. 1995. A spigot algorithm for the digits of π. The American mathematical monthly 102, 3 (1995), 195–203.Google Scholar
- Baishakhi Ray, Daryl Posnett, Vladimir Filkov, and Premkumar Devanbu. 2014. A large scale study of programming languages and code quality in github. In Proceedings of the 22nd ACM SIGSOFT international symposium on foundations of software engineering. 155–165.Google ScholarDigital Library
- Junaid Rehman. 2021. Examples and types of embedded systems. https://www.itrelease.com/2018/07/examples-and-types-of-embedded-systems/Google Scholar
- Patrik Schwermer. 2018. Performance evaluation of kotlin and java on android runtime.Google Scholar
- Matthew J Sottile, Timothy G Mattson, and Craig E Rasmussen. 2009. Introduction to concurrency in programming languages. CRC Press.Google Scholar
- KR Srinath. 2017. Python–the fastest growing programming language. International Research Journal of Engineering and Technology 4, 12 (2017), 354–357.Google Scholar
- Mads Tofte and Jean-Pierre Talpin. 1997. Region-based memory management. Information and computation 132, 2 (1997), 109–176.Google Scholar
- Allen B Tucker and Robert Noonan. 2002. Programming languages: principles and paradigms. McGraw-Hill.Google Scholar
- Ivonne von Nostitz-Wallwitz, Jacob Krüger, and Thomas Leich. 2018. Toward Improving Industrial Adoption: The Choice of Programming Languages and Development Environments. In 2018 IEEE/ACM 5th International Workshop on Software Engineering Research and Industrial Practice (SER&IP). IEEE, 10–17.Google Scholar
- Wayne H Wolf. 1994. Hardware-software co-design of embedded systems. Proc. IEEE 82, 7 (1994), 967–989.Google ScholarCross Ref
- VB Zakharov, MG Mal’kovkij, and AI Mostyaev. 2017. Programming Language Choice Problem in Cross-platform Application Development. International journal of open information technologies 5, 7 (2017), 29–37.Google Scholar
Index Terms
- Análise comparativa entre linguagens de programação em sistemas embarcados móveis Android
Comments