William Pugh
#33,651
Most Influential Person Now
American academic
William Pugh 's AcademicInfluence.com Rankings
William Pugh computer-science Degrees
Computer Science
#1506
World Rank
#1559
Historical Rank
#742
USA Rank
Database
#1422
World Rank
#1495
Historical Rank
#379
USA Rank
Download Badge
Computer Science
William Pugh 's Degrees
- PhD Computer Science Carnegie Mellon University
- Masters Computer Science Carnegie Mellon University
Similar Degrees You Can Earn
Why Is William Pugh Influential?
(Suggest an Edit or Addition)According to Wikipedia, William Worthington Pugh Jr. is an American computer scientist who invented the skip list and the Omega test for deciding Presburger arithmetic. He was the co-author of the static code analysis tool FindBugs, and was highly influential in the development of the current memory model of the Java language. Pugh received a Ph.D. in computer science, with a minor in acting, from Cornell University.
William Pugh 's Published Works
Published Works
- Skip lists: a probabilistic alternative to balanced trees (1989) (1312)
- The Omega test: A fast and practical integer programming algorithm for dependence analysis (1991) (962)
- Finding bugs is easy (2004) (713)
- A practical algorithm for exact array dependence analysis (1992) (606)
- Using Static Analysis to Find Bugs (2008) (483)
- Finding bugs is easy (2004) (300)
- Evaluating static analysis defect warnings on production software (2007) (230)
- The Omega Library interface guide (1995) (215)
- Incremental computation via function caching (1989) (198)
- An Exact Method for Analysis of Value-based Array Data Dependences (1993) (185)
- Symbolic Model Checking of Infinite State Systems Using Presburger Arithmetic (1997) (175)
- Counting solutions to Presburger formulas: how and why (1994) (170)
- Fixing the Java memory model (1999) (162)
- Experiences with marmoset: designing and using an advanced submission and testing system for programming courses (2006) (154)
- Model-checking concurrent systems with unbounded integer variables: symbolic representations, approximations, and experimental results (1999) (145)
- Code generation for multiple mappings (1995) (138)
- Eliminating false data dependences using the Omega test (1992) (135)
- A framework for unifying reordering transformations (1993) (133)
- The Google FindBugs fixit (2010) (132)
- Concurrent maintenance of skip lists (1990) (126)
- Constraint-based array dependence analysis (1998) (124)
- Finding more null pointer bugs, but not too many (2007) (120)
- Evaluating and tuning a static analysis to find null pointer bugs (2005) (112)
- Compressing Java class files (1999) (101)
- The Java memory model is fatally flawed (2000) (99)
- Parametric Dispatching of Hard Real-Time Tasks (1995) (98)
- Uniform techniques for loop optimization (1991) (93)
- A skip list cookbook (1990) (86)
- Non-Linear Array Dependence Analysis (1994) (81)
- Iteration space slicing and its application to communication optimization (1997) (75)
- Helping students appreciate test-driven development (TDD) (2006) (70)
- Using FindBugs on production software (2007) (70)
- Tracking defect warnings across versions (2006) (69)
- Static analysis of upper and lower bounds on dependences and parallelism (1994) (67)
- What do high-level memory models mean for transactions? (2006) (65)
- A unifying framework for iteration reordering transformations (1995) (64)
- An Eclipse-based course project snapshot and submission system (2004) (59)
- A report on a survey and study of static analysis users (2008) (57)
- Improving your software using static analysis to find bugs (2006) (56)
- Two-directional record layout for multiple inheritance (1990) (56)
- Going Beyond Integer Programming with the Omega Test to Eliminate False Data Dependences (1995) (54)
- Optimization within a unified transformation framework (1996) (51)
- Unit testing concurrent software (2007) (51)
- Software repository mining with Marmoset: an automated programming project snapshot and testing system (2005) (50)
- Iteration Space Slicing for Locality (1999) (48)
- Finding Legal Reordering Transformations Using Mappings (1994) (47)
- MPJava: High-Performance Message Passing in Java Using Java.nio (2003) (46)
- SIPR: A New Framework for Generating Efficient Code for Sparse Matrix Computations (1998) (45)
- Partial evaluation of high-level imperative programming languages with applications in hard real-time systems (1992) (45)
- Incremental Computation and the Incremental Evaluation of Functional Programs (1988) (42)
- Minimizing communication while preserving parallelism (1996) (41)
- Simplifying Polynominal Constraints Over Integers to Make Dependence Analysis More Precise (1994) (38)
- An improved replacement strategy for function caching (1988) (36)
- Transitive Closure of Infinite Graphs and Its Applications (1996) (35)
- Semantics of Multithreaded Java (2001) (35)
- Parallel finite automata for modeling concurrent software systems (1994) (34)
- Core semantics of multithreaded Java (2001) (31)
- Evaluating the Impact of Programming Language Features on the Performance of Parallel Applications on Cluster Architectures (2003) (31)
- Experiences with Constraint-based Array Dependence Analysis (1994) (29)
- Experiences Using Static Analysis to Find Bugs (2008) (28)
- A partial evaluator for the Maruti hard real-time system (1991) (25)
- Determining schedules based on performance estimation (1993) (25)
- RUBiS revisited: why J2EE benchmarking is hard (2004) (22)
- Software repository mining with Marmoset (2005) (22)
- Using checklists to review static analysis warnings (2009) (19)
- Definitions of dependence distance (1992) (18)
- Improving software quality with static analysis (2007) (18)
- The Marmoset project: an automated snapshot, submission, and testing system (2006) (18)
- Status report on JSR-305: annotations for software defect detection (2007) (17)
- Null dereference analysis in practice (2010) (17)
- ALEX an Alexical Programming Language (1987) (16)
- Fine-grained analysis of array computations (1998) (15)
- Atomic Instructions in Java (2002) (14)
- Generating schedules and code within a unified reordering transformation framework (1992) (12)
- The Java Memory Model Simulator (2002) (12)
- Selecting Affine Mappings Based on Performance Estimation (1994) (11)
- A New Language Independent Prettyprinting Algorithm (1987) (10)
- Finding the ith largest of n for small i,n (1996) (8)
- Learning from defect removals (2009) (7)
- Marmoset: a programming project assignment framework to improve the feedback cycle for students, faculty and researchers (2006) (7)
- On Object Layout for Multiple Inheritance (2002) (6)
- Transitive Closure Of In nite Graphs And Its Applications (1996) (4)
- Technical perspectiveA methodology for evaluating computer system performance (2008) (4)
- Multithreaded semantics for Java (1999) (3)
- Exploiting Monotone Convergence Functions in Parallel Programs (1996) (3)
- Identifying reordering transformations that minimize idle processor time (1995) (3)
- Two-dimensional bidirectional object layout (2008) (3)
- Slow Optimally Balanced Search Strategies VS. Cached Fast Uniformly Balanced Search Strategies (1990) (3)
- More Efficient Network Class Loading Through Bundling (2001) (3)
- Symbolic Model Checking of Infinite State Programs Using Presburger Artihmetic (1998) (2)
- Finding bugs is easy : Track (2004) (2)
- Requirements for Programming Language Memory Models (2004) (2)
- The definition of dependence distance (1992) (2)
- Efficient Concatenable Ordered Lists (1987) (1)
- Languages and Compilers for Parallel Computing: 13th International Workshop, LCPC 2000, Yorktown Heights, NY, USA, August 10-12, 2000, Revised Papers (2001) (1)
- Appendix A . Raw Benchmark Data (1)
- Experiences with Constraint-based Array Dependence Analysis Experiences with Constraint-based Array Dependence Analysis (1994) (1)
- Probabilistic Analysis of Set Operations with Constant-Time Set Equality Test (1991) (1)
- Using affine closure to find legal reordering transformations (1995) (0)
- [TR] tr3 Alternator Conversion Kit (2011) (0)
- RETAIN ANTITRUST IMMUNITY FOR MOTOR FREIGHT CLASSIFICATION (1997) (0)
- Efficient Distribution Analysis via Graph Contraction (1996) (0)
- SHIPPER AND CARRIER LIABILITY FOR TRANSPORTATION: PANEL.. (1993) (0)
- Proceedings of the 13th International Workshop on Languages and Compilers for Parallel Computing-Revised Papers (2000) (0)
- Keynote talk: Advice to bug hunters (2005) (0)
- Finding bugs in eclipse (2007) (0)
- Multithreading in C and C++ (2007) (0)
- On Fast Array Data Dependence Tests (2007) (0)
- Nonlinear Array Dependence Analysis Nonlinear Array Dependence Analysis (1991) (0)
- LTL PRICING HURTS INDUSTRY. (1999) (0)
- Re: [TR] [6pack] TR6 radiator shroud (2011) (0)
- Re: [TR] Works TR3s at Goodwood Revival 2013 (2013) (0)
- ALEX-AN ALEXI CAL PROGRAMMING LANGUAGE (1990) (0)
- Racial Discrimination in Church Schools (1978) (0)
- Skip lists use probabilistic balancing rather than strictly enforced balancing and as a result the algorithms for insertion and deletion in skip lists are much simpler and significantly faster than equivalent algorithms for balanced trees (1990) (0)
- Evaluating Research on Software Design and Productivity (2001) (0)
- Code Generation for Multiple MappingsWayne (1994) (0)
- Re: [TR] TR3 Aluminum Radiators (2012) (0)
- [TR] TR3 Aluminum Radiators (2012) (0)
- [TR] Cost to replace TR6 clutch (2011) (0)
- Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation 2004, Washington, DC, USA, June 9-11, 2004 (2004) (0)
- Concurrency Mistakes That Matter (discussion topic) (2010) (0)
This paper list is powered by the following services:
Other Resources About William Pugh
What Schools Are Affiliated With William Pugh ?
William Pugh is affiliated with the following schools: