8 research outputs found

    What does this notation mean anyway? Interpreting BNF-style notation as it is used in practice

    Get PDF
    BNF (Backus Naur Form) notation, as introduced in the Algol 60 report, was followed by numerous notational variants (EBNF ISO (1996), ABNF Crocker et al. (2008), etc.), and later by a new metalanguage which is used for discussing structured objects in Computer Science and Mathematical Logic. We call this latter offspring of BNF MBNF (Math BNF). MBNF is sometimes called “abstract syntax”. MBNF can express structured objects that cannot be serialised as finite strings. What MBNF and other BNF variants share is the use of production rules, whose form is given below, which state that “every instance of ◦i for i ∈ {1, . . . , n} is also an instance of •”. • ::= ◦1 | · · · | ◦n This thesis studies BNF and its variant forms and contrasts them with MBNF production rules. We show via a series of detailed examples and lemmas that MBNF, differs substantially from BNF and its variants in how it is written, the operations it allows, and the sets of entities it defines. We demonstrate with an example and a proof that MBNF has features that, when combined, could make MBNF rule sets inconsistent. Readers do not have a document which tells them how to read MBNF and have to learn MBNF through a process of cultural initiation. We propose a framework, MathSyn, that handles most uses of MBNF one might encounter in the wild

    New Formal Methods for Automotive Configuration

    Get PDF
    Die Komplexität der Automobilkonfiguration hat in den letzten Jahrzehnten extrem zugenommen. Ein typischer deutscher Premiumhersteller kann bis zu 10^80 Varianten eines einzigen Fahrzeugmodells bauen. Dieser Variantenreichtum muss jedoch entlang der gesamten Prozesskette—vom Produktentstehungsprozess bis hin zur Fertigung im Werk—verwaltet und beherrscht werden. Hierzu müssen von Experten einerseits die vom Kunden bestellbaren Fahrzeuge dokumentiert werden (High Level Regelwerk), andererseits müssen diesen Fahrzeugen physikalische Teile, Steuergeräte und Softwarekonfigurationen zugeordnet werden (Low Level Regelwerk). Die vorliegende Arbeit führt einen neuen generischen Formalismus für Konfigurationsdaten in der Automobilindustrie ein und präsentiert einen ausführlichen Überblick über die in der Industrie vorkommenden Prüfmöglichkeiten. In verschiedenen Industriekooperationen mit z.B. Audi, BMW, Daimler, Opel und VW wurde verifiziert, dass dieser Formalismus auf diese Hersteller übertragbar ist. Viele der bestehenden Prüfalgorithmen werden in dieser Dissertation entscheidend optimiert und werden im Rahmen des neuen generischen Frameworks formuliert. Es werden neue Prüf- und Analysemöglichkeiten auf Konfigurationsdaten vorgestellt. Dies sind unter anderem das Zählen baubarer Fahrzeuge, die Berechnung minimaler und maximaler Kundenorders oder die Berechnung von direkten Zwängen in der Konfigurationsbasis. Ein Hauptbeitrag dieser Arbeit ist die Einführung der Booleschen Quantorenelimination in der Automobilkonfiguration. Während die Quantorenelimination bisher vor allem im Bereich des symbolischen Modelcheckings zu finden war, werden hier zwei Anwendungen in der Automobilindustrie identifiziert, die großes Interesse in den industriellen Kooperationen erweckt haben. Es werden verschiedene Ansätze zur Booleschen Quantorenelimination vorgestellt und bezüglich der Anwendungen evaluiert. Im Rahmen dieser Arbeit entstand die Softwarebibliothek AutoLib, die die vorgestellten Algorithmen implementiert und vor allem einen neuen SAT Solver mit sich bringt, der sowohl Inkrementalität und Dekrementalität, als auch das sogenannte Proof Tracing, also das Aufzeichnen von Beweisen bei Nicht-Erfüllbarkeit, implementiert. Nach unserem Wissen ist dies der einzige SAT Solver, der diese beiden Funktionen auch in Kombination unterstützt. AutoLib wird aktuell in einem Produktivsystem bei BMW sowie in Prototypen bei Audi/VW und bei Daimler eingesetzt. Alle Algorithmen, die in dieser Arbeit präsentiert werden, wurden in einer Mach- barkeitsstudie bei BMW in den Jahren 2012 und 2013 implementiert und auf ihre industrielle Einsetzbarkeit hin verifiziert. Ein Produktivsystem, das Teile dieser Algorithmen umfasst und auf AutoLib basiert, hatte im Mai 2014 GoLive bei BMW
    corecore