Developing a Back-end Compatibility Check for the BNF Converter

Hämtar...
Bild (thumbnail)

Publicerad

Typ

Examensarbete för masterexamen
Master's Thesis

Modellbyggare

Tidskriftstitel

ISSN

Volymtitel

Utgivare

Sammanfattning

There exist various architectural models for structuring large-scale software projects. A common pattern employed in various systems involves decomposing the application into a user-facing front-end component, responsible for input validation, and several back-end components, which perform subsequent processing and generate output. In such a system, each back-end may target a distinct output format. Communication between the front-end and the back-ends is typically conducted by means of a well-defined interface. It is often desired that the front-end be responsible for all input validation, so as to promote encapsulation and enforce uniform communication to the user. However, difficulties may arise when the back-ends impose different requirements on the input that they process. This thesis examines this problem in the context of the BNF Converter – a compiler construction tool that transforms a common grammar specification into software components used for implementing a compiler for the language of said grammar. The BNF Converter adheres to the aforementioned architectural model and supports multiple back-ends that target various output formats and are characterized by distinct capabilities and requirements with respect to the input. In order to address these discrepancies, a so-called back-end compatibility check was developed. This check enables the front-end to validate whether a given input conforms to the requirements imposed by a particular back-end. The methodology used for this purpose is expected to generalize to other systems exhibiting a similar structure. Additionally, a new back-end was implemented, both to evaluate the usefulness of the interface and to contribute to the development of the BNF Converter itself.

Beskrivning

Ämne/nyckelord

BNF, Programming Languages, Lexing, Parsing, Parser Generators

Citation

Arkitekt (konstruktör)

Geografisk plats

Byggnad (typ)

Byggår

Modelltyp

Skala

Teknik / material

Index

Endorsement

Review

Supplemented By

Referenced By