MNI Proposition Analyzer (MPA)

The MNI Proposition Analyzer (MPA) is a tool for analyzing expressions of propositional logic. MPA can check the satisfiability of a proposition, transform it to conjunctive normal form, and much more. MPA's embedded macro processor MMP allows to express complex formulae with the help of the M4 macro language.
MPA is an Eclipse Rich Client Platform (RCP) Application and uses the SAT4J Sat solver.

To install MPA, download the distribution, unzip and start. MPA requires Java 6.
For a quick start with MPA, you'll find a short tutorial in the help menu of MPA and the distribution comprises some examples.

Software engineering project group: MNI Proposition Analyzer (Win32). Fachhochschule Gießen-Friedberg University of Applied Sciences
Zip Archivdatei, 28139 KB, Stand 19.12.2008
Software engineering project group: MNI Proposition Analyzer (Linux). Fachhochschule Gießen-Friedberg University of Applied Sciences
Zip Archivdatei, 27121 KB, Stand 19.12.2008

Der MNI Proposition Analyzer (MPA) ist ein kleines Programm, mit dem man Ausdrücke der Aussagenlogik analysieren kann. Man kann z.B. die Erfüllbarkeit einer Aussage prüfen, man kann sie in die konjunktive Normalform transformieren und vieles mehr. MPA verwendet den MNI Macro Processor (MMP) als eingebetteten Macro-Prozessor.
MPA basiert auf der Eclipse Rich Client Platform (RCP) und verwendet den SAT4J-Sat-Solver.

Installation: Download der obigen Zip-Datei, entpacken und starten. Voraussetzung ist Java 6. Die Hilfe von MPA hat eine kurze Anleitung, es sind auch einige Beispiele dabei.

Mehr Beispiele, auch eine Anwendung aus dem Bereich des Software-Engineerings, werden in folgendem Technischen Bericht vorgestellt und im Detail erläutert:

Burkhardt Renz: Lösungen mit dem MNI Proposition Analyzer MPA - Logeleien, Kartenfärbung, Sudoku, Variabilitätsmodelle. Technischer Bericht Fachhochschule Gießen-Friedberg University of Applied Sciences
Portable Document Format, 2516 KB, Stand 21.11.2008

The technical report above describes more examples of MPA, in particular the application of MPA to variability models in software engineering. The paper is written in German.

MNI Macro Processor (MMP)

The MNI Macro Processor (MMP) is an embeddable, extensible, M4-compatible macro processor written in the Java programming language. The M4 macro processor is the macro processor in the Unix tool set. It was first described and implemented by Brian W. Kernighan and Dennis M. Ritchie. There is a sophisticated implementation of M4 as part of GNU, see GNU M4, accompanied by a terrific user's manual.

MMP adds the following features:
- MMP provides an application programming interface (API) in Java that allows Java programs to use macro processing facilities directly.
- MMP uses Java objects to implement builtin macros as well as the user defined macros given in the M4 language. This mechanism is available via an abstract class and an API that allows to control the macro processing engine of MMP. This means that it is possible to implement M4 macros in tha Java programming language and register them with the MMP processing engine. This mechanism provides new applications of macro processing within Java applications. MPA, e.g., uses some special macros written in Java.

A paper on the design and usage of MMP will soon be available here.

Software engineering project group: MNI Macro Processor MMP. Fachhochschule Gießen-Friedberg University of Applied Sciences
Jar Archivdatei, 131 KB, Stand 19.03.2009
Software engineering project group: MNI Macro Processor MMP -- Source code and API documentation. Fachhochschule Gießen-Friedberg University of Applied Sciences
Zip Archivdatei, 239 KB, Stand 19.03.2009

The implementation of M4's eval in MMP is the MNI Integer Calculator.

Software engineering project group: MNI Integer Calculator MIC -- Source code and API documentation. Fachhochschule Gießen-Friedberg University of Applied Sciences
Zip Archivdatei, 142 KB, Stand 19.03.2009

Der MNI Macro Processor MMP ist ein einbettbarer, erweiterbarer Makroprozessor, der kompatibel mit M4 ist und in Java geschrieben ist. Der M4 Makroprozessor ist der Makroprozessor unter den Unix-Werkzeugen – universell einsetzbar und nicht so bekannt, wie er es verdiente. Er stammt von Brian W. Kernighan und Dennis M. Ritchie. Eine erweiterte Version des M4 ist Teil des Gnu-Projekts, siehe GNU M4. Dazu gibt es ein ganz ausgezeichnetes Handbuch.

MMP ist eine Implementierung von M4 in Java und bietet dadurch folgende Zusatzeigenschaften:
- MMP hat eine API in Java, wodurch Java-Programme die Möglichkeiten von M4 direkt nutzen können.
- Die in M4 eingebauten Makros wie auch benutzerdefinierte Makros sind in MMP als Java-Objekte implementiert. Dadurch ist es möglich, Makros nicht nur in der M4-Sprache, sondern in Java zu schreiben. MMP stellt eine abstrakte Klasse zur Verfügung und hat eine API zur Steuerung der eigentlichen Maschine, die die Makroersetzung durchführt. Durch diesen Mechanismus kann man ganz neue Anwendungen von Makrotechniken in Java-Programmen erreichen. MPA benutzt z.B. spezielle Makros, die in Java geschrieben sind.

Eine detaillierte Beschreibung demnächst hier.

[Aktuell] [Veranstaltungen] [Projekte & Publikationen] [Literatur & Links] [Miscellanea] [Impressum] [<][^][>]