Christian Mossin

Learn More
A number of useful optimisations are enabled if we can determine when a value is accessed at most once. We extend the Hindley-Milner type system with uses, yielding a type-inference based program analysis which determines when values are accessed at most once. Our analysis can handle higher-order functions and data structures, and admits principal types for(More)
AnnoDomini is a source-to-source conversion tool for making COBOL programs Year 2000 compliant. It is technically and conceptually built upon type-theoretic techniques and methods: type-based specification, program analysis by type inference and type-directed transformation. These are combined into an integrated software reengineering tool and method for(More)
The combination of parameter polymorphism, subtyping extended to qualified and polymorphic types, and polymorphic recursion is useful in standard type inference and gives expressive type-based program analyses, but raises difficult algorithmic problems. In a program analysis context we show how Mycroft's iterative method of computing principal types for a(More)
Applications of partial evaluation have so far mainly focused on generation of compilers from interpreters for programming languages. We partially evaluate a simple general <italic>LR(k)</italic> parsing algorithm. To obtain good results, we rewrite the algorithm using a number of binding-time improvements. The final LR(1) parser has been specialized using(More)
The concepts of value-and control-ow graphs are important for program analysis of imperative programs. An imperative value ow graph can be constructed by a single pass over the program text. No similar concepts exist for higher-order languages: we propose a method for constructing value ow graphs for typed higher-order functional languages. A higher-order(More)
AnnoDomini is a commercially available source-to-source conversion tool for nding and xing Year 2000 problems in COBOL programs. AnnoDomini uses type-based speciication, analysis, and transformation to achieve its main design goals: exibility, completeness, cor-rectness, and a high degree of safe automation.
A number of useful optimisations are enabled if we can determine when a value is accessed at most once. We extend the Hindley-Milner type system with uses, yielding a type-inference based program analysis which determines when values are accessed at most once. Our analysis can handle higher-order functions and data structures, and admits principal types for(More)