{'fraction_non_alphanumeric': 0.01592356687898089, 'fraction_numerical': 0.0, 'mean_word_length': 5.735714285714286, '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}}
Modular Formal Islands: Embed theory in your practice

Motivated by the proliferation and usefulness of Domain Specific Languages as well as the demand in enriching well established languages by high level capabilities like modularity, pattern matching or strategic rewriting, we have introduced in previous works the Formal Islands framework. The main idea consists in integrating, in existing programs, formally defined parts called Islands, on which proofs and tests can be meaningfully developed. Then, Formal Islands could be safely dissolved into their hosting language to be transparently integrated in the existing user environment. We present this generic framework and we show that language extensions like Mhtml—providing modular constructions for html— or Tom—a Java language extension allowing for pattern matching and rewriting—are indeed Islands and can therefore be used to embed formal software developments into legacy code.