Nail - a practical tool for parsing and generating data formats

Thesis: S.M., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2015.

Bibliographic Details
Main Author: Bangert, Julian (Julian Oliver Benedikt)
Other Authors: Nickolai Zeldovich.
Format: Thesis
Language:eng
Published: Massachusetts Institute of Technology 2016
Subjects:
Online Access:http://hdl.handle.net/1721.1/101579
_version_ 1826210493075816448
author Bangert, Julian (Julian Oliver Benedikt)
author2 Nickolai Zeldovich.
author_facet Nickolai Zeldovich.
Bangert, Julian (Julian Oliver Benedikt)
author_sort Bangert, Julian (Julian Oliver Benedikt)
collection MIT
description Thesis: S.M., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2015.
first_indexed 2024-09-23T14:50:26Z
format Thesis
id mit-1721.1/101579
institution Massachusetts Institute of Technology
language eng
last_indexed 2024-09-23T14:50:26Z
publishDate 2016
publisher Massachusetts Institute of Technology
record_format dspace
spelling mit-1721.1/1015792019-04-11T07:31:49Z Nail - a practical tool for parsing and generating data formats Practical tool for parsing and generating data formats Bangert, Julian (Julian Oliver Benedikt) Nickolai Zeldovich. Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science. Electrical Engineering and Computer Science. Thesis: S.M., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2015. Cataloged from PDF version of thesis. Includes bibliographical references (pages 53-56). 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. by Julian Bangert. S.M. 2016-03-03T21:10:12Z 2016-03-03T21:10:12Z 2015 2015 Thesis http://hdl.handle.net/1721.1/101579 940968230 eng 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. http://dspace.mit.edu/handle/1721.1/7582 56 pages application/pdf Massachusetts Institute of Technology
spellingShingle Electrical Engineering and Computer Science.
Bangert, Julian (Julian Oliver Benedikt)
Nail - a practical tool for parsing and generating data formats
title Nail - a practical tool for parsing and generating data formats
title_full Nail - a practical tool for parsing and generating data formats
title_fullStr Nail - a practical tool for parsing and generating data formats
title_full_unstemmed Nail - a practical tool for parsing and generating data formats
title_short Nail - a practical tool for parsing and generating data formats
title_sort nail a practical tool for parsing and generating data formats
topic Electrical Engineering and Computer Science.
url http://hdl.handle.net/1721.1/101579
work_keys_str_mv AT bangertjulianjulianoliverbenedikt nailapracticaltoolforparsingandgeneratingdataformats
AT bangertjulianjulianoliverbenedikt practicaltoolforparsingandgeneratingdataformats