2005 · 920 citations · 85 references
ComputingComputer ScienceCompilersProgramming LanguagesSystems ProgrammingCode GenerationType CheckingType SystemsData Type InferencePartial EvaluationProgram TransformationSpecialized Code GenerationType Inference
Software engineers are faced with a dilemma. They want to write general and wellstructured programs that are flexible and easy to maintain. On the other hand, generality has a price: efficiency. A specialized program solving a particular problem is often significantly faster than a general program. However, the development of specialized software is time-consuming, and is likely to exceed the production of today’s programmers. New techniques are required to solve this so-called software crisis. Partial evaluation is a program specialization technique that reconciles the benefits of generality with efficiency. This thesis presents an automatic partial evaluator for the Ansi C programming language. The content of this thesis is analysis and transformation of C programs. We develop several analyses that support the transformation of a program into its generating extension. A generating extension is a program that produces specialized programs when executed on parts of the input. The thesis contains the following main results.
85
William H. Press, Saul A. Teukolsky, William T. Vetterling et al. · 1994 · 15.4K citations
Patrick Cousot, Radhia Cousot · 1977 · 6.2K citations
Fast Pattern Matching in Strings
Donald E. Knuth, James H. Morris, Vaughan Pratt · SIAM Journal on Computing · 1977 · 2.9K citations
A Structural Approach to Operational Semantics
Gordon Plotkin · 2004 · 2K citations