AnnoDomini: from type theory to Year 2000 conversion tool
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Aggregate structure identification and its application to program analysis
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Identifying objects using cluster and concept analysis
Proceedings of the 21st international conference on Software engineering
AnnoDomini in Practice: A Type-Theoretic Approach to the Year 2000 Problem
TLCA '99 Proceedings of the 4th International Conference on Typed Lambda Calculi and Applications
Term rewriting with traversal functions
ACM Transactions on Software Engineering and Methodology (TOSEM)
Architectural modifications to deployed software
Science of Computer Programming
Documenting software systems using types
Science of Computer Programming - Software analysis, evolution and re-engineering
WYSINWYX: What you see is not what you eXecute
ACM Transactions on Programming Languages and Systems (TOPLAS)
DIVINE: discovering variables in executables
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Enumeration refactoring: a tool for automatically converting Java constants to enumerated types
Proceedings of the IEEE/ACM international conference on Automated software engineering
Hi-index | 0.00 |
Types are a good starting point for various software-reengineering tasks. Unfortunately, programs requiring reengineering most desperately are written in languages without an adequate type system (such as COBOL). To solve this problem, we propose a method of automated type inference for these languages. The main ingredients are that if variables are compared using some relational operator their types must be the same; likewise, if an expression is assigned to a variable, the type of the expression must be a subtype of that of the variable. We present the formal type system and inference rules for this approach, show their effect on various real life COBOL fragments, describe the implementation of our ideas in a prototype type inference tool for COBOL, and discuss a number of applications.