<commit_before>P is a language for asynchronous event-driven programming. P allows the programmer to specify the system as a collection of interacting state machines, which communicate with each other using events. P unifies modeling and programming into one activity for the programmer. Not only can a P program be compiled into executable code, but it can also be validated using systematic testing. P has been used to implement and validate the USB device driver stack that ships with Microsoft Windows 8 and Windows Phone. P is also suitable for the design and implementation of networked, embedded, and distributed systems.

Manual
=========

Check the [P manual](https://cdn.rawgit.com/p-org/P/master/Doc/Manual/pmanual.pdf) !

Information for building P framework is available [here](https://github.com/p-org/P/wiki).

Publications
==========================================================

- [P: Safe asynchronous event-driven programming] (http://research.microsoft.com/pubs/191069/pldi212_desai.pdf), ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2013.<commit_msg>updated link to the manual<commit_after>P is a language for asynchronous event-driven programming. P allows the programmer to specify the system as a collection of interacting state machines, which communicate with each other using events. P unifies modeling and programming into one activity for the programmer. Not only can a P program be compiled into executable code, but it can also be validated using systematic testing. P has been used to implement and validate the USB device driver stack that ships with Microsoft Windows 8 and Windows Phone. P is also suitable for the design and implementation of networked, embedded, and distributed systems.

Manual
=========

Check the [P manual](https://github.com/p-org/P/blob/master/Doc/Manual/pmanual.pdf) !

Information for building P framework is available [here](https://github.com/p-org/P/wiki).

Publications
==========================================================

- [P: Safe asynchronous event-driven programming] (http://research.microsoft.com/pubs/191069/pldi212_desai.pdf), ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2013.
{'fraction_non_alphanumeric': 0.11906893464637422, 'fraction_numerical': 0.012533572068039392, 'mean_word_length': 5.295774647887324, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '276915', 'n_tokens_mistral': 564, 'n_tokens_neox': 506, 'n_words': 261}