Unreadable network protocol implementations got you down? |
|||||||||||
An Object-Oriented Protocol LanguageProlac is a programming language designed for writing readable, modular, extensible, and efficient network protocol implementations. It was designed pragmatically, for implementation, rather than as a prescriptive specification language with interesting theoretical properties. Object-oriented languages, functional languages, C, and Yacc are the strongest influences on its design. This combination of influences -- and a focus on minimal, elegant syntax -- led to some novel features (module operators, for instance), despite a general preference for time-tested techniques. Prolac language design is essentially complete, and we have a stable Prolac compiler. A readable, extensible Prolac TCP implementation, designed for integration with Linux 2.2, is partially complete. The Prolac project is no longer maintained. Source codeThe Prolac distribution includes the reference manual, an Emacs mode, the compiler, and two half-working TCP implementations -- one that plugs in to Linux 2.2 as a drop-in replacement for Linux’s default TCP, and an older one that could run in a Linux 2.0 environment (but doesn’t have good kernel integration). The Prolac compiler should work on any UNIXlike system. The TCPs probably won’t compile unless you have a Linux source tree lying around. This is an alpha release. The compiler is stable; the TCPs are not. In fact, neither TCP fully compiles. (The Linux 2.0 TCP works in our environment, but we have not put in the effort required to make it work from the distribution.) Prolac is distributed under the GNU General Public License. Changes: Version 0.0.5 has a couple bug fixes. Documentation
Prolac was a project at MIT LCS in the PDOS group. People: Eddie Kohler, Frans Kaashoek, David Montgomery. |
|||||||||||
Eddie Kohler |