David Montgomery Background Implementing network protocols correctly and readably with high performance is a difficult problem, one naturally addressed by specialized languages. Prolac, a new language for network protocol implementation, addresses these problems by focusing on actual implementation rather than theoretical specification. Careful consideration of implementation-related problems has led to a flexible, natural, efficient, and readable language.
Theoretical models are invaluable for investigating and proving properties of a network protocol.
Approach Most existing protocol languages concern themselves with provability and machine verification, rather than readability, extensibility, and performance. Specifications in these languages are difficult to read, modify, or make fast. Prolac, in contrast, explicitly addresses the pragmatic issues raised by human programmers' implementation needs, using modern software engineering practice as a base. Prolac mixes aspects of object-oriented programming, functional programming, scripting, and parser generators to create a succinct and readable style. The Prolac language is largely fixed, and we have implemented a stable compiler including some important optimizations.