ABSTRACT
Many large mainframe based business applications were developed with proprietary macro-based generator systems. To maintain these applications the legacy generators employed to generate them have to be maintained as well. This is a problem because of the generator code that is often hard to understand. A solution would be to replace the old generator technology with a new one. However, this requires a deep understanding of the old generators and the features of the programs they generate. This understanding is currently not available. We propose program slicing as a technique to support program understanding of generators and show its application in four use cases in that domain. We show the feasibility of the technique using real-world generators.
- fsp-gmbh.com.Google Scholar
- ibm.com/software/awdtools/vapacbase.Google Scholar
- d-s-t-g.com, 2013.Google Scholar
- C. Allauzen, M. Riley, J. Schalkwyk, W. Skut, and M. Mohri. Openfst: A general and efficient weighted finite-state transducer library. In J. Holub and J. Ždárek, editors, Implementation and Application of Automata, volume 4783 of LNCS, pages 11--23. Springer, 2007. Google ScholarDigital Library
- M. Aung, S. Horwitz, R. Joiner, and T. Reps. Specialization Slicing. Technical Report TR-1776.Google Scholar
- D. Binkley and M. Harman. A survey of empirical results on program slicing. In Advances in Computers, volume 62. Elsevier, 2004.Google ScholarCross Ref
- E. Bodden, M. Mezini, C. Brabrand, T. Tolêdo, M. Ribeiro, and P. Borba. Spllift -- statically analyzing software product lines in minutes instead of years. In Proc. Conf. Programming Language Design and Implementation. ACM, 2013. Google ScholarDigital Library
- C. Brabrand, M. Ribeiro, T. Tolêdo, and P. Borba. Intraprocedural dataflow analysis for software product lines. In Proc. Int. Conf. Aspect-oriented Software Development, pages 13--24. ACM, 2012. Google ScholarDigital Library
- C. Brabrand and M. I. Schwartzbach. Growing languages with metamorphic syntax macros. SIGPLAN Notices, 37: 31--40, 2002. Google ScholarDigital Library
- J. R. Cordy. The txl source transformation language. Sci. Comput. Program., 61: 190--210, 2006. Google ScholarDigital Library
- B. Dit, M. Revelle, M. Gethers, and D. Poshyvanyk. Feature location in source code: a taxonomy and survey. Journal of Software: Evolution and Process, 25: 53--95, 2013.Google ScholarCross Ref
- Driscoll, Thakur, Burton, and Reps. WALi: Nested-Word Automata. Technical Report.Google Scholar
- J. Esparza, D. Hansel, P. Rossmanith, and S. Schwoon. Efficient algorithms for model checking pushdown systems. In E. Emerson and A. Sistla, editors, Computer Aided Verification, volume 1855 of LNCS. Springer, 2000. Google ScholarDigital Library
- S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing using dependence graphs. SIGPLAN Not, 23: 35--46, 1988. Google ScholarDigital Library
- J. Kamischke, M. Lochau, and H. Baller. Conditioned model slicing of feature-annotated state machines. In Proc. Int. Workshop Feature-Oriented Software Development, FOSD '10. ACM, 2012. Google ScholarDigital Library
- C. Kästner, P. G. Giarrusso, T. Rendel, S. Erdweg, K. Ostermann, and T. Berger. Variability-aware parsing in the presence of lexical macros and conditional compilation. SIGPLAN Notices, 46, 2011. Google ScholarDigital Library
- J. Liebig, A. von Rhein, C. Kästner, S. Apel, J. Dörre, and C. Lengauer. Scalable analysis of variable software. In Proc. EuroSys Conf., 2013.Google ScholarDigital Library
- M. Ribeiro, F. Queiroz, P. Borba, T. Tolêdo, C. Brabrand, and S. Soares. On the impact of feature dependencies when maintaining preprocessor-based software product lines. In Proc. Int. Conf. Generative Programming and Component Engineering, GPCE '08, pages 23--32. ACM, 2011. Google ScholarDigital Library
- J. M. Triance and P. J. Layzell. Macro processors for enhancing high-level languages - some design principles. Comput. J., 28: 34--43, 1985.Google ScholarCross Ref
- L. Vidács, J. Jász, Á. Beszédes, and T. Gyimóthy. Combining preprocessor slicing with c/c++ language slicing. In Proc. Int. Conf. Program Comprehension. IEEE, 2008. Google ScholarDigital Library
- B. Xu, J. Qian, X. Zhang, Z. Wu, and L. Chen. A brief survey of program slicing. SIGSOFT Softw. Eng. Notes, 30: 1--36, 2005. Google ScholarDigital Library
Index Terms
- Program slicing to understand software generators
Recommendations
Detection of code clones in software generators
FOSD '14: Proceedings of the 6th International Workshop on Feature-Oriented Software DevelopmentMacro-based generators are in use for more than 40 years to generate Cobol source code and implement variability. Over the course of time, the systems were extended with many similar functionalities by copying and adapting existing pieces of code. The ...
Composition Validation and Subjectivity in GenVoca Generators
GenVoca generators synthesize software systems by composing components from reuse libraries. GenVoca components are designed to export and import standardized interfaces, and thus be plug-compatible, interchangeable, and interoperable with other ...
Bit-Wise Behavior of Random Number Generators
In 1985, G. Marsaglia proposed the m-tuple test, a runs test on bits, as a test of nonrandomness of a sequence of pseudorandom integers. We try this test on the outputs from a large set of pseudorandom number generators and discuss the behavior of the ...
Comments