| See: https://en.m.wikipedia.org/wiki/Ometa (including reference section) Or go to:
http://www.vpri.org/writings.php If I recall correctly you want: "STEPS Toward the Reinvention of Programming, 2012 Final Report Submitted to the National Science Foundation (NSF) October 2012" (and earlier reports) Discussed on hn:
https://news.ycombinator.com/item?id=11686325 And:
https://news.ycombinator.com/item?id=585360 Notable for implementing tcp/ip by parsing the rfc. "A Tiny TCP/IP Using Non-deterministic Parsing
Principal Researcher: Ian Piumarta For many reasons this has been on our list as a prime target for extreme reduction.
(...)
See Appendix E for a more complete explanation of how this “Tiny TCP” was realized in well
under 200 lines of code, including the definitions of the languages for decoding header format
and for controlling the flow of packets." (...) "Appendix E: Extended Example: A Tiny TCP/IP Done as a Parser (by Ian Piumarta)
Elevating syntax to a 'first-class citizen' of the programmer's toolset suggests some unusually expres-
sive alternatives to complex, repetitive, opaque and/or error-prone code. Network protocols are a per-
fect example of the clumsiness of traditional programming languages obfuscating the simplicity of the
protocols and the internal structure of the packets they exchange. We thought it would be instructive
to see just how transparent we could make a simple TCP/IP implementation.
Our first task is to describe the format of network packets. Perfectly good descriptions already exist in
the various IETF Requests For Comments (RFCs) in the form of "ASCII-art diagrams". This form was
probably chosen because the structure of a packet is immediately obvious just from glancing at the
pictogram. For example: +-------------+-------------+-------------------------+----------+----------------------------------------+
| 00 01 02 03 | 04 05 06 07 | 08 09 10 11 12 13 14 15 | 16 17 18 | 19 20 21 22 23 24 25 26 27 28 29 30 31 |
+-------------+-------------+-------------------------+----------+----------------------------------------+
| version | headerSize | typeOfService | length |
+-------------+-------------+-------------------------+----------+----------------------------------------+
| identification | flags | offset |
+---------------------------+-------------------------+----------+----------------------------------------+
| timeToLive | protocol | checksum |
+---------------------------+-------------------------+---------------------------------------------------+
| sourceAddress |
+---------------------------------------------------------------------------------------------------------+
| destinationAddress |
+---------------------------------------------------------------------------------------------------------+
If we teach our programming language to recognize pictograms as definitions of accessors for bit
fields within structures, our program is the clearest of its own meaning. The following expression cre-
ates an IS grammar that describes ASCII art diagrams." |