{'fraction_non_alphanumeric': 0.02027027027027027, 'fraction_numerical': 0.0, 'mean_word_length': 5.3882352941176475, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, '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}}
Towards Example-Guided Network Synthesis

In recent years, there has been a proliferation in network domain-specific languages (DSL). These languages enable us to exploit the programmability of these networks, while still providing correctness guarantees through verification and analysis of DSLs. However, none of these DSLs have received widespread adoption. First these new languages require a learning curve among operators who may not be trained programmers. Second, these new SDN applications sometimes rely on functionality in legacy networks that cannot be easily migrated or analyzed.
 To address these challenges, we propose Facon, a new tool that enables us to automatically generate programs in arbitrary DSLs, based on input/output examples. Since input/output examples applies to any network protocols, this approach can be generalized, hence enabling us to migrate legacy networks to new DSLs, or to transform one DSL to another. As an initial feasibility study, we apply Facon to a family of logic-based network DSLs based on declarative networking. Facon takes as examples input/output examples either provided by an operator or observed from a legacy system. Facon then automatically generates a declarative networking program faithful to these examples. We propose an efficient search algorithm that exploits syntactic constraints in declarative networking to prune the search space, and semantics as heuristics to guide the search direction. Our initial results are promising. Facon successfully synthesizes declarative networking programs at a scale beyond previous logic program synthesis tools can handle.