Skip to main content

2016 | OriginalPaper | Buchkapitel

On the Prevalence of Function Side Effects in General Purpose Open Source Software Systems

verfasst von : Saleh M. Alnaeli, Amanda Ali. Taha, Tyler Timm

Erschienen in: Software Engineering Research, Management and Applications

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

A study that examines the prevalence and distribution of function side effects in general-purpose software systems is presented. The study is conducted on 19 open source systems comprising over 9.8 Million lines of code (MLOC). Each system is analyzed and the number of function side effects is determined. The results show that global variables modification and parameters by reference are the most prevalent side effect types. Thus, conducting accurate program analysis or many adaptive changes processes (e.g., automatic parallelization to improve their parallelizability to better utilize multi-core architectures) becomes very costly or impractical to conduct. Analysis of the historical data over a 7-year period for 10 systems shows that there is a relatively large percentage of affected functions over the lifetime of the systems although trend is flat in general, thus posing further problems for inter-procedural analysis.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Literatur
1.
Zurück zum Zitat Alnaeli, S. M., Alali, A., & Maletic, J. I. (2012). Empirically Examining the Parallelizability of Open Source Software System. In Proceedings of the 2012 19th Working Conference on Reverse Engineering (pp. 377–386). IEEE Computer Society. Alnaeli, S. M., Alali, A., & Maletic, J. I. (2012). Empirically Examining the Parallelizability of Open Source Software System. In Proceedings of the 2012 19th Working Conference on Reverse Engineering (pp. 377–386). IEEE Computer Society.
2.
Zurück zum Zitat Alnaeli, S., Maletic, J., & Collard, M. (2015). An empirical examination of the prevalence of inhibitors to the parallelizability of open source software systems. Empirical Software Engineering, 1–30. Alnaeli, S., Maletic, J., & Collard, M. (2015). An empirical examination of the prevalence of inhibitors to the parallelizability of open source software systems. Empirical Software Engineering, 1–30.
3.
Zurück zum Zitat Alomari, H. W., Collard, M. L., Maletic, J. I., Alhindawi, N., & Meqdadi, O. (2014). srcSlice: very efficient and scalable forward static slicing. Journal of Software: Evolution and Process. Alomari, H. W., Collard, M. L., Maletic, J. I., Alhindawi, N., & Meqdadi, O. (2014). srcSlice: very efficient and scalable forward static slicing. Journal of Software: Evolution and Process.
4.
Zurück zum Zitat Bacon, D. F., & Sweeney, P. F. (1996). Fast static analysis of C++ virtual function calls. SIGPLAN Not., 31(10), 324–341.CrossRef Bacon, D. F., & Sweeney, P. F. (1996). Fast static analysis of C++ virtual function calls. SIGPLAN Not., 31(10), 324–341.CrossRef
5.
Zurück zum Zitat Banning, J. P. (1979). An efficient way to find the side effects of procedure calls and the aliases of variables. In Proceedings of the 6th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (pp. 29–41). San Antonio, Texas: ACM. Banning, J. P. (1979). An efficient way to find the side effects of procedure calls and the aliases of variables. In Proceedings of the 6th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (pp. 29–41). San Antonio, Texas: ACM.
6.
Zurück zum Zitat Cheng, B.-C., & Hwu, W. (2000). An empirical study of function pointers using SPEC benchmarks. In Proceedings of the 12th International Workshop on Languages and Compilers for Parallel Computing (pp. 490–493). Springer-Verlag. Cheng, B.-C., & Hwu, W. (2000). An empirical study of function pointers using SPEC benchmarks. In Proceedings of the 12th International Workshop on Languages and Compilers for Parallel Computing (pp. 490–493). Springer-Verlag.
7.
Zurück zum Zitat Collard, M. L., Maletic, J. I., & Marcus, A. (2002). Supporting document and data views of source code. In Proceedings of ACM Symposium on Document Engineering (p. 8). Collard, M. L., Maletic, J. I., & Marcus, A. (2002). Supporting document and data views of source code. In Proceedings of ACM Symposium on Document Engineering (p. 8).
8.
Zurück zum Zitat Collard, M. L., Kagdi, H. H., & Maletic, J. I. (2003). An XML-based lightweight C++ fact extractor. In 11th IEEE International Workshop on Program Comprehension, 2003. Collard, M. L., Kagdi, H. H., & Maletic, J. I. (2003). An XML-based lightweight C++ fact extractor. In 11th IEEE International Workshop on Program Comprehension, 2003.
9.
Zurück zum Zitat Collard, M. L., Decker, M. J., & Maletic, J. I. (2011). Lightweight Transformation and Fact Extraction with the srcML Toolkit. In Proceedings of the 2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulation (pp. 173–184). IEEE Computer Society. Collard, M. L., Decker, M. J., & Maletic, J. I. (2011). Lightweight Transformation and Fact Extraction with the srcML Toolkit. In Proceedings of the 2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulation (pp. 173–184). IEEE Computer Society.
10.
Zurück zum Zitat Cooper, K. D., & Kennedy, K. (1988). Interprocedural side-effect analysis in linear time. SIGPLAN Not., 23(7), 57–66.CrossRef Cooper, K. D., & Kennedy, K. (1988). Interprocedural side-effect analysis in linear time. SIGPLAN Not., 23(7), 57–66.CrossRef
12.
Zurück zum Zitat Ghezzi, C., & Jazayeri, M. (1982). Programming language concepts. Wiley. Ghezzi, C., & Jazayeri, M. (1982). Programming language concepts. Wiley.
14.
Zurück zum Zitat Mock, M., Atkinson, D. C., Chambers, C., & Eggers, S. J. (2005). Program slicing with dynamic points-to sets. IEEE Transactions on Software Engineering, 31(8), 657–678.CrossRef Mock, M., Atkinson, D. C., Chambers, C., & Eggers, S. J. (2005). Program slicing with dynamic points-to sets. IEEE Transactions on Software Engineering, 31(8), 657–678.CrossRef
16.
Zurück zum Zitat Richardson, S., & Ganapathi, M. (1987). Interprocedural analysis useless for code optimization. Stanford University. Richardson, S., & Ganapathi, M. (1987). Interprocedural analysis useless for code optimization. Stanford University.
17.
Zurück zum Zitat Shah Anand, R. B. G. (1995). Function pointers in C—An empirical study. Technical report LCSR-TR-244, p. 11. Shah Anand, R. B. G. (1995). Function pointers in C—An empirical study. Technical report LCSR-TR-244, p. 11.
18.
Zurück zum Zitat Spuler, D. A., & Sajeev, A. S. M. (1994). Compiler detection of function call side effects. Technical report 94/01. Spuler, D. A., & Sajeev, A. S. M. (1994). Compiler detection of function call side effects. Technical report 94/01.
19.
Zurück zum Zitat Zhang, S., & Ryder, B. G. (1994). Complexity of single level function pointer aliasing analysis. Rutgers University, Department of Computer Science, Laboratory for Computer Science Research. Zhang, S., & Ryder, B. G. (1994). Complexity of single level function pointer aliasing analysis. Rutgers University, Department of Computer Science, Laboratory for Computer Science Research.
Metadaten
Titel
On the Prevalence of Function Side Effects in General Purpose Open Source Software Systems
verfasst von
Saleh M. Alnaeli
Amanda Ali. Taha
Tyler Timm
Copyright-Jahr
2016
DOI
https://doi.org/10.1007/978-3-319-33903-0_9