{'fraction_non_alphanumeric': 0.02112676056338028, 'fraction_numerical': 0.0030181086519114686, 'mean_word_length': 5.306553911205074, '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}}
Engineering software using automation

Gedae has developed automated software engineering technology for computers and software. This paper presents the research, prototypes, and documented software engineering improvements from real-world case studies that led to the Gedae technology. Gedae's technology is based on the creation and analysis of software models, specifically dataflow software models. The dataflow software model is implemented using the Gedae Dataflow Language. Some of the most important concepts we employ are drawn from historical dataflow literature and other dataflow efforts such as Signal Processing Graph Network (SPGN) and Ptolemy (UC-Berkeley). The language evolved to fit customer needs in reduced memory footprint and overhead and to enable them to specify concepts difficult to express with basic dataflow. As a result, the language now includes over 50 modifiers that are not part of traditional dataflow languages. For example, while developing language support for modal software (or multitasking), a customer required memory sharing between modes to meet their embedded memory requirements. This need led to the development of the language modifier “exclusive” which specifies only one mode executes at a time. The benefit of this innovation is that it allows the compiler to optimally share memory between modes. The structure of Gedae and how it creates and uses the software model is shown in figure 1. The structure was devised and developed to fit customers' needs of portability, productivity, and maintainability without adding the overhead of complex software layers. The Idea Language is a high-level language similar to MATLAB script. Gedae's Idea Builder™ converts the code into the dataflow software model. The Gedae Core Technologies analyze the purely functional software model and modify it to match the hardware model. Gedae's Auto Builder™ converts the resulting software model into code for each processor/core, compiles and links it using historical (C) programming tools. The focus of the research behind the compiler is to work with customers as they develop complex programs using the language, and based on their prototypes, drive to simplify the language and move complexity from the language to the compiler's Core Technologies. The Gedae Core Technologies implement the automated software engineering concepts to: 1) modify the dataflow software model to match the hardware target 2) decompose the application into threads 3) schedule kernels for execution within the threads 4) plan memory use within the threads 5) plan the sharing of memory among the threads, and 6) implement thread control within the application to control the dynamic execution and memory plan. This paper is an overview of the concepts behind these core technologies, the Gedae Dataflow Language and how it enables these technologies, and the research, trials and errors, and customer needs that led to the creation of this technology foundation.