Abstract
Weakly-typed languages such as Cobol often force programmers to represent distinct data abstractions using the same low-level physical type. In this paper, we describe a technique to recover implicitly-defined data abstractions from programs using type inference. We present a novel system of dependent types which we call guarded types, a path-sensitive algorithm for inferring guarded types for Cobol programs, and a semantic characterization of correct guarded typings. The results of our inference technique can be used to enhance program understanding for legacy applications, and to enable a number of type-based program transformations.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Canfora, G., Cimitile, A., Lucca, G.A.D.: Recovering a conceptual data model from cobol code. In: Proc. 8th Intl. Conf. on Softw. Engg. and Knowledge Engg (SEKE 1996), pp. 277–284. Knowledge Systems Institute (1996)
Demsky, B., Rinard, M.: Role-based exploration of object-oriented programs. In: Proc. 24th Intl. Conf. on Softw. Engg., pp. 313–324. ACM Press, New York (2002)
Eidorff, P.H., Henglein, F., Mossin, C., Niss, H., Sorensen, M.H., Tofte, M.: Annodomini: from type theory to year 2000 conversion tool. In: Proc. 26th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, pp. 1–14. ACM Press, New York (1999)
Ernst, M.D., Cockrell, J., Griswold, W.G., Notkin, D.: Dynamically discovering likely program invariants to support program evolution. In: Proc. 21st Intl. Conf. on Softw. Engg., pp. 213–224. IEEE Computer Society Press, Los Alamitos (1999)
Jackson, D.: Alloy: A lightweight object modelling notation. ACM Transactions on Software Engineering and Methodology 11(2), 256–290 (2002)
O’Callahan, R., Jackson, D.: Lackwit: a program understanding tool based on type inference. In: Proc. 19th intl. conf. on Softw. Engg., pp. 338–348. ACM Press, New York (1997)
Ramalingam, G., Field, J., Tip, F.: Aggregate structure identification and its application to program analysis. In: Proc. 26th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, pp. 119–132. ACM Press, New York (1999)
Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual, 2nd edn. Addison-Wesley Professional, Reading (2004)
van Deursen, A., Kuipers, T.: Identifying objects using cluster and concept analysis. In: Proc. 21st Intl. Conf. on Softw. Engg., pp. 246–255. IEEE Computer Society Press, Los Alamitos (1999)
van Deursen, A., Moonen, L.: Understanding COBOL systems using inferred types. In: Proc. 7th Intl. Workshop on Program Comprehension, pp. 74–81. IEEE Computer Society Press, Los Alamitos (1999)
Xi, H.: Dependent Types in Practical Programming. PhD thesis, Carnegie-Mellon University (1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Komondoor, R., Ramalingam, G., Chandra, S., Field, J. (2005). Dependent Types for Program Understanding. In: Halbwachs, N., Zuck, L.D. (eds) Tools and Algorithms for the Construction and Analysis of Systems. TACAS 2005. Lecture Notes in Computer Science, vol 3440. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-31980-1_11
Download citation
DOI: https://doi.org/10.1007/978-3-540-31980-1_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25333-4
Online ISBN: 978-3-540-31980-1
eBook Packages: Computer ScienceComputer Science (R0)