Advanced Search
DSpace@MIT

Nail - a practical tool for parsing and generating data formats

Research and Teaching Output of the MIT Community

Show simple item record

dc.contributor.advisor Nickolai Zeldovich. en_US
dc.contributor.author Bangert, Julian (Julian Oliver Benedikt) en_US
dc.contributor.other Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science. en_US
dc.date.accessioned 2016-03-03T21:10:12Z
dc.date.available 2016-03-03T21:10:12Z
dc.date.copyright 2015 en_US
dc.date.issued 2015 en_US
dc.identifier.uri http://hdl.handle.net/1721.1/101579
dc.description Thesis: S.M., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2015. en_US
dc.description Cataloged from PDF version of thesis. en_US
dc.description Includes bibliographical references (pages 53-56). en_US
dc.description.abstract Nail is a tool that greatly reduces the programmer effort for safely parsing and generating data formats defined by a grammar. Nail introduces several key ideas to achieve its goal. First, Nail uses a protocol grammar to define not just the data format, but also the internal object model of the data. Second, Nail eliminates the notion of semantic actions, used by existing parser generators, which reduces the expressive power but allows Nail to both parse data formats and generate them from the internal object model, by establishing a semantic bijection between the data format and the object model. Third, Nail introduces dependent fields and stream transforms to capture protocol features such as size and offset fields, checksums, and compressed data, which are impractical to express in existing protocol languages. Using Nail, we implement an authoritative DNS server in C in under 300 lines of code and grammar, and an un zip program in C in 220 lines of code and grammar, demonstrating that Nail makes it easy to parse complex real-world data formats. Performance experiments show that a Nail-based DNS server can outperform the widely used BIND DNS server on an authoritative workload, demonstrating that systems built with Nail can achieve good performance. en_US
dc.description.statementofresponsibility by Julian Bangert. en_US
dc.format.extent 56 pages en_US
dc.language.iso eng en_US
dc.publisher Massachusetts Institute of Technology en_US
dc.rights M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. en_US
dc.rights.uri http://dspace.mit.edu/handle/1721.1/7582 en_US
dc.subject Electrical Engineering and Computer Science. en_US
dc.title Nail - a practical tool for parsing and generating data formats en_US
dc.title.alternative Practical tool for parsing and generating data formats en_US
dc.type Thesis en_US
dc.description.degree S.M. en_US
dc.contributor.department Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science. en_US
dc.identifier.oclc 940968230 en_US


Files in this item

Name Size Format Description
940968230-MIT.pdf 2.630Mb PDF Full printable version

This item appears in the following Collection(s)

Show simple item record

MIT-Mirage