CRA Board Member Highlight: Barbara G. Ryder
By Barbara Ryder
My computer science research career started during my college internship at Bell Laboratories in Murray Hill, New Jersey, during the early 1970s in the center that later produced UNIX and the portable C compiler. This experience taught me that computing was broader than the introduction to scientific programming in my undergraduate studies in applied math. (There was no computer science undergraduate major at the time.)
For most of my career, I was interested in deriving descriptions of program execution behaviors from code in order, for example, to optimize program time and/or memory performance, to validate desirable properties such as correctness or data security, or to refactor code for ease of maintenance. Historically, static program analysis was developed for optimizing compilers, but over time, the term program analysis was broadened to include dynamic analysis, the deriving of program behaviors from execution traces, and blended program analysis, which combined static and dynamic analyses. Interestingly, in blended analysis we can obtain very accurate approximations of program behavior, but only for some executions. This has proved useful for analyzing dynamic programming languages such as JavaScript.
An essential task of program analysis is to trace the flow of data values through program paths, even those including method calls. My research has focused on developing accurate analysis algorithms to handle data flow through indirect accesses (i.e., pointers in C and C++ or reference fields in C++ and Java). Additionally, I have focused on techniques for more accurate interprocedural flow (i.e., tracing values through method calls, including virtual calls for object-oriented programs in Java or C++ or through function properties in JavaScript).
My research group was one of the first to design a usefully accurate interprocedural pointer analysis algorithm for C, in the early 1990s, and showed the basic intractability of multi-level interprocedural pointer analysis at POPL 1990. When the object-oriented languages Java and C++ became popular, programs were designed as sequences of calls to small methods, necessitating more accurate approximations of chains of method calls. My research group invented object-sensitive analysis, which used properties of the receiver object to label and match calls and returns in a program (OOPSLA 2001). This approach, still in use as the standard context-sensitive analysis, was demonstrated to yield more accurate interprocedural analyses than the previous call-site technique.
My later work in the analysis of Java has concentrated on applications of program analysis to identify malware in software. By using accurate interprocedural analyses for Java, we designed approaches for anomaly detection to identify malware. Additional work has focused on combining program analysis with probabilistic techniques to locate malware packaged with benign code in mobile applications.
Most recently, I have worked with my student on a two-stage adaptive interprocedural analysis for JavaScript programs. The first stage extracts characteristic properties from functions after a cheap approximate points-to analysis; the second stage chooses a specialized context-sensitive analysis per function based on heuristics (ECOOP 2015).
Increasing Gender Diversity
Increasing diversity in computing has been my passion throughout my career, mostly through my informal mentoring of female CS students at Rutgers and Virginia Tech, participating in CRA-W mentoring workshops, and leading efforts in CS at Virginia Tech College of Engineering to join with NCWIT to increase the gender diversity of our CS students. As head of the Department of Computer Science at Virginia Tech (2008-2015), I encouraged and led activities that resulted in our growth from 4.2% female CS majors in 2007 to 16.7% CS majors in fall 2015 and 18% in fall 2018. The 2-year average percentage of female CS graduates almost doubled between 2007 and 2011. We also achieved comparable retention rates for males (94.2%) and females (93.5%) in 2014-15, which continues today. Additionally, we grew the number of female CS minors at Virginia Tech from 13 (17.6% of 74 in 2012) to 58 (26% of 223 in 2015).
How did we accomplish these gains? It was an all-hands effort by our department faculty, who reported diversity activities as part of their annual review. Our departmental diversity committee compiled a list of activities ranging from “light effort” (e.g., attending a luncheon with students at the College of Engineering women’s dorm) to “heavy commitment” (e.g., serving as advisor to a co-curricular group focusing on diversity such as our Association for Women in Computing [AWC] grad and undergrad women’s club). We partnered with NCWIT in its Pacesetters program which brought together academics and practitioners to exchange best practices in recruiting and retaining women in computing. We were founding partners and leaders of the NCWIT Virginia Aspirations in Computing Awards for high school women, and organized the annual awards ceremony. We conducted outreach to high schools using our CS undergraduate ambassadors to explain “Why be a computer scientist?” We conducted 5 years of workshops for CS high school teachers in Virginia, offering curricular ideas and helping them to organize in affinity groups around the state. We also lobbied first-year engineering students to consider majoring in CS during a special summer program that attracted large numbers of women and minority students. Throughout these activities, we worked with NCWIT Extension Services personnel to develop and use metrics to evaluate our progress.
For retention, we strengthened AWC and provided funds for student diversity conference travel to the Grace Hopper and Tapia Celebrations. We also held dinners for our female students, faculty, and female distinguished speakers who visited our department. (And we observed that meeting famous people in an informal setting was a very popular activity for our young women!) Our female majors started a very popular peer mentoring program that built community, especially among the undergraduate women.The culmination of this activity was when our department won 2nd place nationally in the NCWIT NEXT Awards in 2016. The monetary award was used to establish an endowment of a diversity fund that is being augmented today to provide for similar student-centered diversity activities.
About the Author
Barbara Ryder received her A.B. degree in Applied Mathematics from Brown University (1969), her Master’s degree in Computer Science from Stanford University(1971) and her Ph.D. degree in Computer Science at Rutgers University (1982). Dr. Ryder was Head of the Department of Computer Science at Virginia Tech from 2008-2015 and J. Byron Maupin Professor of Engineering. She served on the CS faculty of Rutgers from 1982-2008. Dr. Ryder is an ACM Fellow (1998). Her recent awards include the 2018 IEEE Computer Society TCSE Distinguished Women in Science and Engineering Award and the 2015 ACM SIGSOFT Influential Educator Award.
Dr. Ryder is an active advocate for women in computing. She was honored to receive the Virginia 2014 AAUW Woman of Achievement Award. She was a founding organizer of the NCWIT Regional VA/DC Aspirations for Women Awards and served as co-chair in 2014-2015 and 2012-2013. She also served as executive champion for her department in the NCWIT Pacesetters Program (2009-2015).