0

次のようなブール式を単純化するためのオープンソースのJavaライブラリまたはJavaソースコードはありますか

!((A.B+C).(!A+BC))

どこ、

! - represents NOT
+ - represents OR
. - represents AND

この点であなたの助けをいただければ幸いです

4

4 に答える 4

1

SQLのようなにおい?!、。、+を簡単にNOT、AND、ORに変換し、特定のマジックキーワードを除外して、それらを従来のJDBCバックエンドに渡すことができます。"SELECT 1WHERE"+式

それ以外の場合は、完全な論理AST +パーサー(antlr)が必要であるように思われます。これは、式を表すDOMを作成するだけではそれほど役に立たないためです(したがって、一般に式オブジェクトを使用するツールはそれほど多くありません)。 -一般的な公理をグラフ化して適用します)。これには非常に特殊なバリエーションがいくつかあります-droolsのようなルックアップルールエンジン。しかし、それはあなたが望んでいることを正確に行っていないのではないかと思います。

于 2012-06-29T11:19:19.230 に答える
1

いいえ、そうは思いませんが、ANTLR(宣言型)またはJParsec(プログラム型)を使用して、そのような言語のパーサーを作成するのは非常に簡単なはずです。

ANTLRの場合、開始点として一階述語論理文法を使用します。

JParsecの場合、JParceC計算機のチュートリアルは必要なものに近づきます。

于 2012-06-29T11:07:24.260 に答える
0

私はJavaのAPIを知りません。ただし、式を分割して、各部分の述語を作成することはできます。あなたはこれを見て興味があるかもしれません

于 2012-06-29T11:08:55.677 に答える
0

まず最初に、私があなたの質問を正しく受け取ったかどうかを確認させてください-あなたは単純化された方法で与えられた式をコーディングする能力を見ていますか?

はいの場合は、Xtendを試すことができます:http://eclipse.org/xtend/およびXtext http://www.eclipse.org/Xtext/

Xtendは静的に型付けされたプログラミング言語であり、理解しやすいJavaソースコードにコンパイルされます。XtendはXtextを使用して開発されています。

Xtextは、プログラミング言語とドメイン固有言語を開発するためのフレームワークです。

上記の情報は、与えられた式を単純に表現するアルゴリズムを見ている場合には当てはまりません。

情報がお役に立てば幸いです。

于 2012-06-29T11:15:03.787 に答える