Allen grew up on a farm in Peru, New York, near Lake Champlain, as the oldest of six children. Her father was a farmer, and her mother an elementary schoolteacher.[9] Her early elementary education took place in a one-room school house a mile away from her home, and she later attended a local high school.[10]
Deeply in debt with student loans, she joined IBM Research in Poughkeepsie, New York, as a programmer in 1957, where she taught incoming employees the basics of Fortran. She planned to return to teaching once her student loans had been paid, but ended up staying with IBM for her entire 45-year career. In 1959, Allen was assigned to the Harvest project for code breaking with the National Security Agency, and worked on a programming language called Alpha.[7] She managed the compiler-optimization team for both Harvest and the Stretch project.
In 1962, she was transferred to Thomas J. Watson Research Center, where she contributed to the ACS-1 project, and later in the 1970s, to PL/I. During these years, she worked with fellow researcher John Cocke to write a series of seminal papers on optimizing compilers, helping to improve the efficiency of machine code translated from high-level languages.[2]
From 1980 to 1995, Allen led IBM's work in the developing parallel computing area, and helped to develop software for the IBM Blue Gene project.[12] Allen became the first female IBM Fellow in 1989. She retired from IBM in 2002, but remained affiliated with the corporation as a Fellow Emerita. In 2007, the IBM Ph.D. Fellowship Award was created in her honor.[13] After retiring, she remained active in programs that encourage women and girls to seek careers in science and computing.[14]
Her A. M. Turing Award citation reads:
Fran Allen's work has had an enormous impact on compiler research and practice. Both alone and in joint work with John Cocke, she introduced many of the abstractions, algorithms, and implementations that laid the groundwork for automatic program optimization technology. Allen's 1966 paper, "Program Optimization," laid the conceptual basis for systematic analysis and transformation of computer programs. This paper introduced the use of graph-theoretic structures to encode program content in order to automatically and efficiently derive relationships and identify opportunities for optimization. Her 1970 papers, "Control Flow Analysis" and "A Basis for Program Optimization" established "intervals" as the context for efficient and effective data flow analysis and optimization. Her 1971 paper with Cocke, "A Catalog of Optimizing Transformations," provided the first description and systematization of optimizing transformations. Her 1973 and 1974 papers on interprocedural data flow analysis extended the analysis to whole programs. Her 1976 paper with Cocke describes one of the two main analysis strategies used in optimizing compilers today.
Allen developed and implemented her methods as part of compilers for the IBM STRETCH-HARVEST and the experimental Advanced Computing System. This work established the feasibility and structure of modern machine- and language-independent optimizers. She went on to establish and lead the PTRAN project on the automatic parallel execution of FORTRAN programs. Her PTRAN team developed new parallelism detection schemes and created the concept of the program dependence graph, the primary structuring method used by most parallelizing compilers.
In 2009 she was awarded an honorary doctor of science degree from McGill University for "pioneering contributions to the theory and practice of optimizing compiler techniques that laid the foundation for modern optimizing compilers and automatic parallel execution".[29]
Allen, Frances E.; Cocke, John (1971). Rustin, Randall (ed.). A Catalogue of Optimizing Transformations. Design and Optimization of Compilers. Thomas J. Watson IBM Research Center. Prentice Hall.
Allen, Frances E., "Interprocedural data flow analysis", Proceedings of Information Processing 74, IFIP, Elsevier / North-Holland (1974), 398–402.
Allen, Frances E. and J. Cocke, "A program data flow analysis procedure", Communications of the ACM, Vol. 19, No. 3 (March 1976), 137–147.
Allen, Frances E. et al., "The Experimental Compiling System", IBM Journal of Research and Development, Vol. 24, No. 6, (November 1980), 695–715.
Allen, Frances E., "The history of language processor technology at IBM", IBM Journal of Research and Development, Vol. 25, No. 5 (September 1981), 535–548.