Computational lambda-calculus and monads
Proceedings of the Fourth Annual Symposium on Logic in computer science
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Notions of computation and monads
Information and Computation
Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Algebra of programming
Fusion of recursive programs with computational effects
Theoretical Computer Science
Composing monads using coproducts
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
Proceedings of the 1992 Glasgow Workshop on Functional Programming
Monads for Functional Programming
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Merging Monads and Folds for Functional Programming
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
ICSE '81 Proceedings of the 5th international conference on Software engineering
Reverse Program Calculation Supported by Code Slicing
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Towards a Clone Detection Benchmark Suite and Results Archive
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Formal Program Reversing by Conditioned Slicing
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
Path, a program transformation system for haskell
Path, a program transformation system for haskell
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Does the "Refactor to Understand" Reverse Engineering Pattern Improve Program Comprehension?
CSMR '05 Proceedings of the Ninth European Conference on Software Maintenance and Reengineering
Theories, tools and research methods in program comprehension: past, present and future
Software Quality Control
Design patterns as higher-order datatype-generic programs
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
The Haskell Refactorer, HaRe, and its API
Electronic Notes in Theoretical Computer Science (ENTCS)
Clone detection and elimination for Haskell
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Combining datatypes and effects
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Program optimizations and transformations in calculation form
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Fission for program comprehension
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
A framework for point-free program transformation
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
Hi-index | 0.00 |
One affective way to carry out a program comprehension process is by refactoring the source code. In this paper we explore this approach in the functional programming paradigm, on Haskell programs specifically. As result, we have identified many correlations between the traditional (procedural and object-oriented) program comprehension process and the so called understanding-oriented refactorings, in the functional programming context. Besides, we have identified a catalog of refactorings used to improve program efficiency which, applied in reverse order, are valuable for program understanding purposes. Coupled to these refactorings, there is a calculational process by (means of) which we obtain a full formal description of program functionality. All together, a bottom-up program comprehension strategy in the functional setting is described.