Communications of the ACM
Specification statements and refinements
IBM Journal of Research and Development
ACM Transactions on Programming Languages and Systems (TOPLAS)
Formal Program Construction by Transformations-Computer-Aided, Intuition-Guided Programming
IEEE Transactions on Software Engineering
Draco: a method for engineering reusable software systems
Software reusability: vol. 1, concepts and models
The Z notation: a reference manual
The Z notation: a reference manual
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
IEEE Transactions on Software Engineering - Special issue: best papers of the sixth international workshop on Petri nets and performance models (PNPM'95)
Future directions in program transformations
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Software engineering with B
Journal of Software Maintenance: Research and Practice
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Structured Programming with go to Statements
ACM Computing Surveys (CSUR)
Program Transformation Systems
ACM Computing Surveys (CSUR)
Syntactic source to source transforms and program manipulation
Communications of the ACM
Program development by stepwise refinement
Communications of the ACM
The B Language and Method: A Guide to Practical Formal Development
The B Language and Method: A Guide to Practical Formal Development
Software Reengineering
A Discipline of Programming
Semi-automatic grammar recovery
Software—Practice & Experience
On the Refinement Calculus
Successful Evolution of Software Systems
Successful Evolution of Software Systems
IEEE Software
Cracking the 500-Language Problem
IEEE Software
Weakest Precondition for General Recursive Programs Formalized in Coq
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
More Powerful Z Data Refinement: Pushing the State of the Art in Industrial Refinement
ZUM '98 Proceedings of the 11th International Conference of Z Users on The Z Formal Specification Notation
Mechanized Operational Semantics of WSL
SCAM '02 Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation
Using informal and formal techniques for the reverse engineering of C programs
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
Reverse Engineering is Reverse Forward Engineering
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
Reverse Engineering from Assembler to Formal Specifications via Program Transformations
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
Do Program Transformations Help Reverse Engineering?
ICSM '98 Proceedings of the International Conference on Software Maintenance
Assembler to C Migration Using the FermaT Transformation System
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Proving program refinements and transformations
Proving program refinements and transformations
An alternative to current looping syntax
ACM SIGPLAN Notices
Architectural modifications to deployed software
Science of Computer Programming
Towards lightweight checks for mass maintenance transformations
Science of Computer Programming
Automated mass maintenance of a software portfolio
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
Slicing as a program transformation
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Multiple-Clause Folding Rule Using Instantiation and Generalization
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Conditioned semantic slicing for abstraction; industrial experiment
Software—Practice & Experience
Feasibility study of software reengineering towards role-based access control
International Journal of Computer Applications in Technology
A Multiple-Clause Folding Rule Using Instantiation and Generalization
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Hi-index | 0.01 |
Software reengineering has been described as being "about as easy as reconstructing a pig from a sausage" (Comput. Canada 18 (1992) 35). But the development of program transformation theory, as embodied in the FermaT transformation system, has made this miraculous feat into a practical possibility. This paper describes the theory behind the FermaT system and describes a recent migration project in which over 544,000 lines of assembler "sausage" (part of a large embedded system) were transformed into efficient and maintainable structured C code.