2011-02-24 8 views
2

부울 표현식을 단순화하고 결과를 제공하는 java에 도구 또는 라이브러리가 있습니까?자바에서 부울 표현의 단순화

입력은, 그와 같은 경우

exp = (a || a') result = 1 

exp = (a || b) && (a' || b) result = b (after simplification) 

식 위에서보다 더 크거나 더 복잡 할 수있다.

+1

'a''는'a가 아닙니다 '를 의미합니까? 그것은 Java에서'! a'이어야합니다. Btw'(a || b) && (! a || b)'는'b'가 아니라'false'로 평가됩니다. 당신은'(a && b) || (! a && b)'? –

+2

그 Péter에 대해 확실한가요? – vickirk

+1

이것은 프로그래밍과 관련이 없습니다 - 논리적 * 표현을 단순화 할 수있는 응용 프로그램을 찾고있는 것처럼 보입니다. –

답변

2

IntelliJ는 편집기 내에서 부울 식을 단순화 할 수있는 "intentions"을 지원합니다. 또는 PMD이 이러한 종류의 오류를보고 할 수 있습니다 (boolean rules 참조)

+0

IntelliJ는 if (a == null || b == null) { } else if (a! = null && b! = null) { }와 같은 명령문이 체인화되어 있는지 확인할 수 있습니다. 조건은 항상 사실이며이를 제거 할 것을 제안합니다. –

+0

은 PMD와 마찬가지로 findbugs가 – MeBigFatGuy

+0

인 Jeff Foster에게 감사하지만 논리적 부울 표현을 단순화하기위한 기대치를 충족시키지 못합니다. 소스 코드 최적화 도구입니다. 코드에 관심이 없습니다. 도구/라이브러리 또는 논리 부울 식을 단순화 할 수있는 코드를 찾고 싶습니다. – sctn