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: Computer and Information Science

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 for 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 how that there is a relatively large percentage of affected functions over the lifetime of the systems. The trend is flat in general, therefore 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 Ghezzi, C., Jazayeri, M.: Programming Language Concepts. Wiley (1982) Ghezzi, C., Jazayeri, M.: Programming Language Concepts. Wiley (1982)
2.
Zurück zum Zitat Spuler, D.A., Sajeev, A.S.M.: Compiler detection of function call side effects. Technical Report 94/01 (1994) Spuler, D.A., Sajeev, A.S.M.: Compiler detection of function call side effects. Technical Report 94/01 (1994)
6.
Zurück zum Zitat Banning, J.P.: 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. ACM, San Antonio, Texas (1979) Banning, J.P.: 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. ACM, San Antonio, Texas (1979)
7.
Zurück zum Zitat Cheng, B.-C., Hwu, W.: 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 (2000) Cheng, B.-C., Hwu, W.: 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 (2000)
8.
Zurück zum Zitat Shah Anand, R.B.G.: Function pointers in c—an empirical study. Technical Report LCSR-TR- 244, 11 (1995) Shah Anand, R.B.G.: Function pointers in c—an empirical study. Technical Report LCSR-TR- 244, 11 (1995)
9.
Zurück zum Zitat Bacon, D.F., Sweeney, P.F.: Fast static analysis of C ++ virtual function calls. SIGPLAN Not. 31(10), 324–341 (1996)CrossRef Bacon, D.F., Sweeney, P.F.: Fast static analysis of C ++ virtual function calls. SIGPLAN Not. 31(10), 324–341 (1996)CrossRef
10.
Zurück zum Zitat Zhang, S., Ryder, B.G.: Complexity of single level function pointer aliasing analysis. Rutgers University, Department of Computer Science, Laboratory for Computer Science Research (1994) Zhang, S., Ryder, B.G.: Complexity of single level function pointer aliasing analysis. Rutgers University, Department of Computer Science, Laboratory for Computer Science Research (1994)
11.
Zurück zum Zitat Alnaeli, S.M., Maletic, J.I., Collard, M.: An empirical examination of the prevalence of inhibitors to the parallelizability of open source software systems. Empirical Software Engineering, 1–30 (2015) Alnaeli, S.M., Maletic, J.I., Collard, M.: An empirical examination of the prevalence of inhibitors to the parallelizability of open source software systems. Empirical Software Engineering, 1–30 (2015)
12.
Zurück zum Zitat Alnaeli, S.M., Alali, A., Maletic, J.I.: 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 (2012) Alnaeli, S.M., Alali, A., Maletic, J.I.: 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 (2012)
13.
Zurück zum Zitat Chen, K., Lin, J.-Y., Weng, S.-C. Khoo, S.-C.: Designing aspects for side-effect localization. In: Proceedings of the 2009 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, pp. 189–198. ACM, Savannah, GA, USA (2009) Chen, K., Lin, J.-Y., Weng, S.-C. Khoo, S.-C.: Designing aspects for side-effect localization. In: Proceedings of the 2009 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, pp. 189–198. ACM, Savannah, GA, USA (2009)
14.
Zurück zum Zitat Huang, W., Milanova, A.: ReImInfer: method purity inference for Java. In: Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, pp. 1–4. ACM, Cary, North Carolina (2012) Huang, W., Milanova, A.: ReImInfer: method purity inference for Java. In: Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, pp. 1–4. ACM, Cary, North Carolina (2012)
15.
Zurück zum Zitat Richardson, S., Ganapathi, M.: Interprocedural analysis useless for code optimization. Stanford University (1987) Richardson, S., Ganapathi, M.: Interprocedural analysis useless for code optimization. Stanford University (1987)
16.
Zurück zum Zitat Xu, H., Pickett, C.J.F., Verbrugge, C.: Dynamic purity analysis for java programs. In: Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering. ACM, San Diego, California, USA, pp. 75–82 (2007) Xu, H., Pickett, C.J.F., Verbrugge, C.: Dynamic purity analysis for java programs. In: Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering. ACM, San Diego, California, USA, pp. 75–82 (2007)
17.
Zurück zum Zitat Cooper, K.D., Kennedy, K.: Interprocedural side-effect analysis in linear time. SIGPLAN Not. 23(7), 57–66 (1988)CrossRef Cooper, K.D., Kennedy, K.: Interprocedural side-effect analysis in linear time. SIGPLAN Not. 23(7), 57–66 (1988)CrossRef
18.
Zurück zum Zitat Mock, M., Atkinson, D.C., Chambers, C., Eggers, S.J.: Program slicing with dynamic points-to sets. IEEE Trans. Softw. Eng. 31(8), 657–678 (2005)CrossRef Mock, M., Atkinson, D.C., Chambers, C., Eggers, S.J.: Program slicing with dynamic points-to sets. IEEE Trans. Softw. Eng. 31(8), 657–678 (2005)CrossRef
19.
Zurück zum Zitat Alomari, H.W., Collard, M.L., Maletic, J.I., Alhindawi, N., Meqdadi, O.: srcSlice: very efficient and scalable forward static slicing. J. Soft. Evol. Process (2014) Alomari, H.W., Collard, M.L., Maletic, J.I., Alhindawi, N., Meqdadi, O.: srcSlice: very efficient and scalable forward static slicing. J. Soft. Evol. Process (2014)
20.
Zurück zum Zitat Collard, M.L., Decker, M.J., Maletic, J.I.: 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 (2011) Collard, M.L., Decker, M.J., Maletic, J.I.: 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 (2011)
21.
Zurück zum Zitat Collard, M.L., Kagdi, H.H., Maletic, J.I.: 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.: An XML-based lightweight C++ fact extractor. In: 11th IEEE International Workshop on Program Comprehension (2003)
22.
Zurück zum Zitat Collard, M.L., Maletic, J.I., Marcus, A.: Supporting document and data views of source code. In: Proceedings of ACM Symposium on Document Engineering, p. 8 (2002) Collard, M.L., Maletic, J.I., Marcus, A.: Supporting document and data views of source code. In: Proceedings of ACM Symposium on Document Engineering, p. 8 (2002)
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-40171-3_11

Premium Partner