1. A method for analyzing a plurality of potential bug statements in source code, comprising: obtaining a plurality of static program analyses; recursively reducing the plurality of potential bug statements in the source code by: selecting a static program analysis for each recursion from the plurality of static program analyses in order from least time consuming to most time consuming; evaluating the plurality of potential bug statements using the static program analysis of the plurality of static program analyses to determine a subgroup of bug free statements of the plurality of potential bug statements in each recursion, wherein evaluating the plurality of potential bug statements comprises: evaluating a first potential bug statement using a first static program analysis of the plurality of static program analyses to determine whether the first potential bug statement is a bug free statement, wherein if it cannot be determined whether the first potential bug statement is a bug free statement and subsequent to evaluating the first potential bug statement using the first static program analysis, concurrently: evaluating the first potential bug statement using a second static program analysis of the plurality of static program analyses to determine whether the first potential bug statement is a bug free statement; and evaluating a second potential bug statement using the first static program analysis to determine whether the second potential bug statement is a bug free statement, wherein the first static program analysis is less time consuming than the second static program analysis; and removing the subgroup of the bug free statements from the plurality of potential bug statements to reduce the plurality of potential bug statements in each recursion; thereby filtering at least one subgroup of bug free statements out of the plurality of potential bug statements in the source code.
1. A method for analyzing a plurality of potential bug statements in source code, comprising: obtaining a plurality of static program analyses; recursively reducing the plurality of potential bug statements in the source code by: selecting a static program analysis for each recursion from the plurality of static program analyses in order from least time consuming to most time consuming; evaluating the plurality of potential bug statements using the static program analysis of the plurality of static program analyses to determine a subgroup of bug free statements of the plurality of potential bug statements in each recursion, wherein evaluating the plurality of potential bug statements comprises: evaluating a first potential bug statement using a first static program analysis of the plurality of static program analyses to determine whether the first potential bug statement is a bug free statement, wherein if it cannot be determined whether the first potential bug statement is a bug free statement and subsequent to evaluating the first potential bug statement using the first static program analysis, concurrently: evaluating the first potential bug statement using a second static program analysis of the plurality of static program analyses to determine whether the first potential bug statement is a bug free statement; and evaluating a second potential bug statement using the first static program analysis to determine whether the second potential bug statement is a bug free statement, wherein the first static program analysis is less time consuming than the second static program analysis; and removing the subgroup of the bug free statements from the plurality of potential bug statements to reduce the plurality of potential bug statements in each recursion; thereby filtering at least one subgroup of bug free statements out of the plurality of potential bug statements in the source code. 3. The method of claim 1 , wherein the plurality of static program analyses comprises at least two static program analyses.