ABSTRACT
The diff utility is an important basic tool, providing a foundation for many of the fundamental practices of software development, such as source code management. While there are many file differencing tools for textual programming languages, including some that look at more than simple textual variations, there are few for visual programming languages. We present an algorithm for semantic comparison of programs in controlled visual dataflow languages; that is, languages in which dataflow diagrams are embedded in control structures. This algorithm performs depth-first search of call structures comparing embedded diagrams using subgraph isomorphism, to determine if two programs are semantically equivalent, and if they are not, discovers the differences. We use the visual language Prograph for illustration; however, the mechanism we propose could be applied to any controlled dataflow language, such as LabVIEW.
- }}Anderson, P. and Teitelbaum, T., Software inspection using Codesurfer, in Workshop on Inspection in Software Engineering, 2001.Google Scholar
- }}Angus, R. B. and Hulbert, T. E., VEE Pro: Practical Graphical Programming, Springer-Verlag, London, 2005.Google Scholar
- }}Baudet G. M., An analysis of the full alpha-beta pruning algorithm, Proceedings of the tenth annual ACM Smposium on Theory of Computing, pp. 296--313, 1978. Google ScholarDigital Library
- }}Bitter, R., Mohiuddin, T., and Nawrocki, M., LabVIEW: Advanced Programming Techniques, 2e, CRC Press, 2001. Google ScholarDigital Library
- }}Blackwell, A. F., First steps in programming: A rationale for Attention Investment models, Proceedings of the IEEE Symposia on Human-Centric Computing Languages and Environments, Washington DC, Sept. 2002, pp. 2--10. Google ScholarDigital Library
- }}Burstall, R. M. and Darlington, J., A Transformation System for Developing Recursive Programs, Journal of the ACM 24(1), 1977, pp. 44--67. Google ScholarDigital Library
- }}Cordella, L. P., Foggia, P., Sansone, C. and Vento, M., Performance evaluation of the VF graph matching algorithm, Proc. 10th International Conference on Image Analysis and Processing, Venice, Italy, 1999, pp. 1172--1177. Google ScholarDigital Library
- }}Cox, P. T., Visual Programming Languages, in Encyclopedia of Computer Science and Engineering, B. W. Wah (Ed.), John Wiley & Sons Inc., June 2008.Google Scholar
- }}Cox, P. T., Giles, F. R. and Pietrzykowski, T. Prograph: a step towards liberating programming from textual conditioning, Proc. 1989 IEEE Workshop on Visual Programming, Rome (Oct 1989), 150--156.Google ScholarCross Ref
- }}ENSOFT, SimDiff 2.3 User Manual, 2008.Google Scholar
- }}Ferrante, J., Ottenstein, K., and Warren, J., The program dependence graph and its use in optimization, ACM Transactions on Programming Languages and Systems, vol. 9, pp. 319--349, 1987. Google ScholarDigital Library
- }}Grass, J. E., Cdiff: A Syntax Directed Diff for C++ Programs, in USENlX C++ Conference, Portland, OR, 1992, pp. 181--193.Google Scholar
- }}Horwitz, S., Identifying the semantic and textual differences between two versions of a program, ACM SIGPLAN Notices, vol. 25, no. 6, pp. 234--245, Jun. 1990. Google ScholarDigital Library
- }}Hunt, J. W. and McIlroy, M. D., An algorithm for differential file comparison, Technical Memo 75-1271-11, Bell Laboratories, October 1975.Google Scholar
- }}Jackson, D. and Ladd, D. A., Semantic Diff: A tool for summarizing the effects of modifications, Proceedings of the International Conference on Software Maintenance, Victoria, BC, Canada, 1994, pp. 243--252. Google ScholarDigital Library
- }}Johnston, W. M., Hanna, J. R. P. and Millar, R. J., Advances in dataflow programming languages, ACM Computing Surveys (CSUR), vol. 36, no. 1, pp. 1--34, Mar. 2004. Google ScholarDigital Library
- }}Karris, S. T., Introduction to Simulink with Engineering Applications, 2e, Orchard Publications, 2008. Google ScholarDigital Library
- }}McGregor, J. J., Backtrack search algorithms and the maximal common subgraph problem, Software: Practice and Experience, vol. 12, no. 1, pp. 23--34, 1982.Google ScholarCross Ref
- }}Miller, W. and Myers, E. W., A file comparison program, Software Practice & Experience, vol. 15, no. 11, pp. 1025--1040, Nov. 1985.Google ScholarCross Ref
- }}Myers, E. W., An O(ND) difference algorithm and its variations, Algorithmica 1(2), 1986, pp. 251--266.Google ScholarCross Ref
- }}Prograph CPX User Guide. Halifax, Canada: Pictorius Incorporated, 1996.Google Scholar
- }}Rowe, R. and Burns, J., Prograph CPX Qualitative Research, Riley Rowe and Associates, (1995)Google Scholar
- }}Ukkonen, E., Algorithms for Approximate String Matching, Information and Control, vol. 64, no. 1--3, pp. 100--118, 1985. Google ScholarDigital Library
- }}Wilson, S. 1997. Building a Visual Programming Language. Mac-Tech, 13, 4 (1997). Available at: http://www.mactech.com/articles/mactech/Vol. 13/13.04/Spreadsheet2000/Google Scholar
Index Terms
- Semantic comparison of structured visual dataflow programs
Recommendations
Web-based Visual Programming for Media Computation Using Blockly (Abstract Only)
SIGCSE '16: Proceedings of the 47th ACM Technical Symposium on Computing Science EducationTunely and Pixly are web-based programming environments for media computation built using the Blockly visual programming editor library. These language environments were inspired by Georgia Tech's Media Computation approach and allow images (Pixly) and ...
Cognitive Load Comparison of Traditional and Distributed Pair Programming on Visual Programming Language
EITT '15: Proceedings of the 2015 International Conference of Educational Innovation through TechnologyResearch results from computer science education show that pair programming is an effective teaching strategy on learning performance for computer science education in K-12. However, pair programming is not popularly used in K-12. One important issue is ...
A Study on Knowledge Transfer Between Programming Languages by Programs Meanings Facets
IHC '17: Proceedings of the XVI Brazilian Symposium on Human Factors in Computing SystemsThis paper presents a study about how different ways of representing meanings in programs can help in knowledge transfer of programming logic from a visual programming language to a textual programming language. These representations were carried out ...
Comments