Thomas Ball
#160,762
Most Influential Person Now
Thomas Ball's AcademicInfluence.com Rankings
Thomas Ballcomputer-science Degrees
Computer Science
#9221
World Rank
#9687
Historical Rank
Software Engineering
#247
World Rank
#251
Historical Rank
Database
#6200
World Rank
#6428
Historical Rank

Download Badge
Computer Science
Thomas Ball's Degrees
- PhD Computer Science University of California, Berkeley
- Masters Computer Science University of California, Berkeley
- Bachelors Computer Science University of California, Berkeley
Similar Degrees You Can Earn
Why Is Thomas Ball Influential?
(Suggest an Edit or Addition)Thomas Ball's Published Works
Number of citations in a given year to any of this author's works
Total number of citations to an author for the works they published in a given year. This highlights publication of the most important work(s) by the author
Published Works
- The SLAM project: debugging system software via static analysis (2002) (992)
- Use of relative code churn measures to predict system defect density (2005) (821)
- Mining metrics to predict component failures (2006) (809)
- Feedback-Directed Random Test Generation (2007) (782)
- Automatically validating temporal safety properties of interfaces (2001) (687)
- Finding and Reproducing Heisenbugs in Concurrent Programs (2008) (575)
- Exploiting hardware performance counters with flow and context sensitive profiling (1997) (501)
- Software Visualization in the Large (1996) (430)
- Thorough static analysis of device drivers (2006) (427)
- Bebop: A Symbolic Model Checker for Boolean Programs (2000) (426)
- Automatic predicate abstraction of C programs (2001) (401)
- Optimally profiling and tracing programs (1992) (375)
- Boolean and Cartesian abstraction for model checking C programs (2001) (372)
- From symptom to cause: localizing errors in counterexample traces (2003) (343)
- The SLAM Toolkit (2001) (338)
- SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft (2004) (334)
- The concept of dynamic analysis (1999) (323)
- Branch prediction for free (1993) (315)
- The use of program profiling for software maintenance with applications to the year 2000 problem (1997) (308)
- Static analysis tools as early indicators of pre-release defect density (2005) (307)
- A decade of software model checking with SLAM (2011) (228)
- Visualizing Interactions in Program Executions (1997) (218)
- Using Software Dependencies and Churn Metrics to Predict Field Failures: An Empirical Case Study (2007) (218)
- Optimally profiling and tracing programs (1994) (201)
- Rewriting executable files to measure program behavior (1994) (192)
- Slicing Programs with Arbitrary Control-flow (1993) (181)
- VeriCon: towards verifying controller programs in software-defined networks (2014) (179)
- Boolean Programs: A Model and Process for Software Analysis (2000) (144)
- If your ver-sion control system could talk (1997) (138)
- SLIC: A Specification Language for Interface Checking (of C) (2002) (133)
- A Theory of Predicate-Complete Test Coverage and Generation (2004) (122)
- Relative Completeness of Abstraction Refinement for Software Model Checking (2002) (114)
- On the limit of control flow analysis for regression test selection (1998) (107)
- Righting software (2004) (105)
- Edge profiling versus path profiling: the showdown (1998) (102)
- Type-directed completion of partial expressions (2012) (102)
- Modular and verified automatic program repair (2012) (102)
- Finding errors in .net with feedback-directed random testing (2008) (91)
- Using Version Control Data to Evaluate the Impact of Software Tools: A Case Study of the Version Editor (2002) (87)
- Bebop: a path-sensitive interprocedural dataflow engine (2001) (84)
- Mawl: A Domain-Specific Language for Form-Based Services (1999) (84)
- SLAM2: Static driver verification with under 4% false alarms (2010) (83)
- Zapato: Automatic Theorem Proving for Predicate Abstraction Refinement (2004) (82)
- Refining Approximations in Software Predicate Abstraction (2004) (79)
- Using Historical In-Process and Product Metrics for Early Estimation of Software Failures (2006) (78)
- Generating Abstract Explanations of Spurious Counterexamples in C Programs (2002) (78)
- Testing, abstraction, theorem proving: better together! (2006) (72)
- Parameterized Verification of Multithreaded Software Libraries (2001) (71)
- Coping with type casts in C (1999) (63)
- The Static Driver Verifier Research Platform (2010) (61)
- Two for the price of one: a model for parallel and incremental computation (2011) (60)
- What's in a region?: or computing control dependence regions in near-linear time for reducible control flow (1993) (56)
- Using version control data to evaluate the impact of software tools (1999) (55)
- Using Paths to Measure, Explain, and Enhance Program Behavior (2000) (54)
- Visualizing program slices (1994) (53)
- Synthesizing Monitors for Safety Properties: This Time with Calls and Returns (2008) (52)
- Assessing the Relationship between Software Assertions and Faults: An Empirical Investigation (2006) (50)
- MakeCode and CODAL: intuitive and efficient embedded systems programming for education (2018) (49)
- Predicate Abstraction via Symbolic Decision Procedures (2005) (47)
- Abstraction for Falsification (2005) (46)
- Experience with a Domain Specific Language for Form-based Services (1997) (46)
- Polymorphic predicate abstraction (2005) (41)
- State generation and automated class testing (2000) (41)
- Preemption Sealing for Efficient Concurrency Testing (2010) (40)
- Intelligent Systems and Formal Methods in Software Engineering (2006) (39)
- Microsoft Touch Develop and the BBC micro:bit (2016) (39)
- Zap: Automated Theorem Proving for Software Analysis (2005) (37)
- ARcadia: A Rapid Prototyping Platform for Real-time Tangible Interfaces (2018) (32)
- Physical Computing: A Key Element of Modern Computer Science Education (2020) (32)
- Vacuity in Testing (2008) (30)
- Deconstructing Dynamic Symbolic Execution (2015) (29)
- An Abstraction-Refinement Framework for Multi-Agent Systems (2006) (27)
- Speeding Up Dataflow Analysis Using Flow-Insensitive Pointer Analysis (2002) (27)
- Visualizing Message Patterns in Object-Oriented Program Executions (1996) (26)
- Programs Follow Paths (1999) (26)
- Towards Scalable Modular Checking of User-Defined Properties (2010) (25)
- Model Checking Software (2003) (25)
- Efficiently counting program events with support for on-line queries (1994) (23)
- Practical parallel and concurrent programming (2011) (23)
- Optimally Profiling and Tracing (1994) (23)
- Leaping Loops in the Presence of Abstraction (2007) (23)
- Abstraction-guided Test Generation: A Case Study (2003) (22)
- The use of control-flow and control dependence in software tools (1993) (21)
- Teach foundational language principles (2015) (20)
- Storm Watch: A Tool for Visualizing Memory System Protocols (1995) (20)
- Checking Temporal Properties of Software with Boolean Programs (2000) (19)
- An Automata-Theoretic Approach to Hardware/Software Co-verification (2010) (19)
- Reasoning About Systems with Transition Fairness (2005) (19)
- Efficient modular SAT solving for IC3 (2013) (19)
- Efficient Tracing of Cold Code via Bias-Free Sampling (2014) (18)
- ARcadia: A Rapid Prototyping Platform for Real-time Tangible Interfaces (2018) (18)
- Automatic Creation of Environment Models via Training (2004) (17)
- Microsoft MakeCode: embedded programming for education, in blocks and TypeScript (2019) (16)
- Deconstructing concurrency heisenbugs (2009) (16)
- Formalizing hardware/software interface specifications (2011) (15)
- Automatic predicate abstraction of C programs (2001) (15)
- FORMALIZING COUNTEREXAMPLE-DRIVEN REFINEMENT WITH WEAKEST PRECONDITIONS (2005) (14)
- Editorial: AE introduction (2004) (14)
- Constructing Control Flow From Control Dependence (1992) (13)
- Efficient evaluation of pointer predicates with Z3 SMT Solver in SLAM2 (2010) (13)
- Explaining Failures Using Software Dependences and Churn Metrics (2006) (12)
- The Verified Software Challenge: A Call for a Holistic Approach to Reliability (2005) (12)
- Correctness of an Algorithm for Reconstituting a Program From a Dependence Graph (1990) (11)
- Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages (2011) (10)
- Beyond Open Source: The Touch Develop Cloud-Based Integrated Development Environment (2015) (10)
- Rethinking the Runway: Using Avant-Garde Fashion To Design a System for Wearables (2021) (8)
- Predictable and Progressive Testing of Multithreaded Code (2011) (7)
- The BBC micro : bit Coded by Microsoft Touch Develop (2016) (6)
- Static TypeScript: an implementation of a static compiler for the TypeScript language (2019) (6)
- Assessing the Relationship between Software Assertions and Code Quality : An Empirical Investigation (2006) (6)
- What ’ s in a Region ?-or-Computing Control Dependence Regions in Linear Time and Space (1992) (5)
- MakerArcade: Using Gaming and Physical Computing for Playful Making, Learning, and Creativity (2019) (5)
- Physical computing for everyone (2017) (5)
- Evidence-Based Failure Prediction (2011) (5)
- Efficient Reachability Analysis of Büchi Pushdown Systems for Hardware/Software Co-verification (2010) (5)
- Beyond Open Source: The TouchDevelop Cloud-based Integrated Development and Runtime Environment (2014) (4)
- Visualizing Message Patterns in Object-OrientedProgram (1996) (4)
- CloudSDV Enabling Static Driver Verifier Using Microsoft Azure (2016) (4)
- Plug-and-play Physical Computing with Jacdac (2022) (4)
- Paths between imperative and functional programming (1999) (4)
- TileCode: Creation of Video Games on Gaming Handhelds (2020) (3)
- Proceedings of the 2nd conference on Domain-specific languages (1999) (3)
- Increasing human-tool interaction via the web (2013) (3)
- Computer Aided Verification, 18th International Conference, CAV 2006, Seattle, WA, USA, August 17-20, 2006, Proceedings (2006) (3)
- Multi-platform Computing for Physical Devices via MakeCode and CODAL (2018) (3)
- Beyond First-Order Satisfaction: Fixed Points, Interpolants, Automata and Polynomials (2012) (2)
- Proceedings of the 1998 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering (1998) (2)
- A brief history of software - from Bell Labs to Microsoft Research (2009) (2)
- Better Under-Approximation of Programs by Hiding Variables (2007) (2)
- Correctness via compilation to logic: a decade of verification at microsoft research (2014) (2)
- Secrets of Software Model Checking (2002) (2)
- Real-time operating system performance issues and techniques with RISC (1991) (1)
- Theoretical Computer Science (2012) (1)
- Proceedings of the 18th international conference on Computer Aided Verification (2006) (1)
- Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation (2006) (1)
- Automated Abstraction of Software (2006) (1)
- Model Checking B ¨ uchi Pushdown Systems (2011) (1)
- Model Checking Büchi Pushdown Systems (2011) (1)
- 05261 Summary - Multi-Version Program Analysis (2005) (1)
- First-class Concurrency Testing and Debugging (2008) (1)
- Model checking software : 10th International SPIN Workshop, Portland, OR, USA, May 9-10, 2003 : proceedings (2003) (1)
- Lightweight Log-based Code Coverage (2012) (0)
- Proceedings of the ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation, Ottawa, Ontario, Canada, June 11-14, 2006 (2006) (0)
- SIGPLANet - A Modest Proposal for SIGPLAN in the 21 st Century. (2001) (0)
- Predicting Defects in SAP Products: A Replicated Study (2007) (0)
- 09411 Abstracts Collection - Interaction versus Automation: The two Faces of Deduction (2009) (0)
- Session details: Invited talk (2011) (0)
- KEYNOTE. Push, Pull, Partner: A Few Models for Working with Industry (2018) (0)
- Multi-Version Program Analysis, 26. June - 1. July 2005 (2006) (0)
- Web-based Programming for Low-cost Gaming Handhelds (2021) (0)
- Interaction versus Automation: The two Faces of Deduction, 04.10. - 09.10.2009 (2009) (0)
- TouchDevelop: create rich mobile apps on touch devices (tutorial) (2014) (0)
- State Generation and Automated Class Testing : a Case Study (1998) (0)
- Identifying the Dissimilarities based on Working of Programs among versions in DVCS (Distributed Version Control Systems) (2020) (0)
- Session details: Medley (2006) (0)
- 2014 CAV award announcement (2016) (0)
- 09411 Executive Summary - Interaction versus Automation: The two Faces of Deductions (2009) (0)
- Trial of Satanta and Big Tree, July 5 & 6, 1871; Pageant trial, July 4 & 5, 1940. (1943) (0)
- Welcome to the 1st International Games and Software Engineering Workshop (GAS 2011) (2011) (0)
- 2014 CAV award announcement (2016) (0)
- Tutorial: Create Rich Mobile Apps on Touch Devices (2014) (0)
- A Diff-powered Programming Tutorial Engine (2013) (0)
- Tap Here: A Diff-powered Programming Tutorial Engine (2014) (0)
- TwoCortex-M 0 microcontroller-based educational devices : ( a ) the BBC micro : bit ; ( b ) Adafruit ’ s Circuit Playground Express 1 Introduction (2019) (0)
- The Micro:bit: Hands-on Computing for the New Generation (Abstract Only) (2017) (0)
- Proceedings of the 10th international conference on Model checking software (2003) (0)
- 05261 Abstracts Collection - Multi-Version Program Analysis (2005) (0)
- Theoretical computer science : 7th IFIP TC1/WG2.2 international conference, TCS 2012 : Amsterdam, The Netherlands, September 2012 : proceedings (2012) (0)
- Boolean andCartesian abstraction formodel checking Cprograms (0)
- Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation (2006) (0)
- Proceedings of the 7th IFIP TC 1/WG 202 international conference on Theoretical Computer Science (2012) (0)
- Multi-Version Program Analysis Dagstuhl Seminar (2006) (0)
- A modest proposal for SIGPLAN in the 21st century (2001) (0)
This paper list is powered by the following services: