{'fraction_non_alphanumeric': 0.016039481801357187, 'fraction_numerical': 0.0, 'mean_word_length': 5.59349593495935, '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}}
An interface-based Ada programming support environment

Programming Support Environments (PSEs) have recently been the focus of much research directed at producing new methods for developing software more efficiently and reliably. The traditional approach to developing PSEs has been to create a number of novel tools, and then integrate the tools together by adding a common database and modifying the interfaces between the tools until they can work together. Recently, however, it has been recognized that the interfaces between the tools and the rest of the environment are critical, and perhaps more important, than the tools themselves. To be useful in solving the larger problems currently associated with software, a PSE must be able to adapt and provide new capabilities, and be available to a relatively large number of users on a variety of machines.The goal of this research was to determine whether PSEs based on abstract interfaces provide enhanced portability and extensibility over traditionally designed environments. To accomplish this goal, a prototype interface-based PSE was developed and then compared against traditional environments to determine which had better portability and extensibility. First, an interface model was developed to define exactly what types of interface assumptions must be specified to define an appropriate abstract interface. Next, a prototype APSE based on that interface model was designed, specified, and implemented. Finally, this prototype APSE was measured against traditionally designed environments using original environment portability and extensibility metrics.