Specifying representations of machine instructions
ACM Transactions on Programming Languages and Systems (TOPLAS)
PNG: The Definitive Guide
DataScript - A Specification and Scripting Language for Binary Data
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Programming by sketching for bit-streaming programs
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
PADS: a domain-specific language for processing ad hoc data
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
High-level views on low-level representations
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Bit-level binaries and generalized comprehensions in Erlang
Proceedings of the 2005 ACM SIGPLAN workshop on Erlang
The next 700 data description languages
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficient manipulation of binary data using pattern matching
Journal of Functional Programming
Programming in Lua, Second Edition
Programming in Lua, Second Edition
Cryptol: high assurance, retargetable crypto development and validation
MILCOM'03 Proceedings of the 2003 IEEE conference on Military communications - Volume II
Hi-index | 0.00 |
Writing code that manipulates bit streams is a painful and error-prone programming task, often performed via bit twiddling techniques such as explicit bit shifts and bit masks in programmer-allocated buffers. Still, this kind of programming is necessary in many application areas ranging from decoding streaming media files to implementing network protocols. In this paper we employ high-level constructs from declarative programming, such as pattern matching at the bit level and bit stream comprehensions, and show how a variety of bit stream programming applications can be written in a succinct, less error-prone, and totally memory-safe manner. We also describe how these constructs can be implemented efficiently. The resulting performance is superior to that of other (purely) functional languages and competitive to that of low-level languages such as C.