{'fraction_non_alphanumeric': 0.018695154521175122, 'fraction_numerical': 0.0, 'mean_word_length': 5.91820580474934, '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}}
Editorial: Embedded systems—new challenges and future directions

Embedded systems applications are present in several products in modern life ranging from consumer electronics to industrial systems like cell phones, digital televisions and video game consoles. The amount of functionality incorporated in an embedded system is continuously increasing. These applications are migrating from single processor-based systems to heterogeneous multiprocessing in a single chip (MPSoCs) with complex communication infra-structures. Designing embedded systems requires concurrent design of complex embedded software and a sophisticated hardware platform. This platform can contain several different types of processors with a complex interconnection network, the memory system can be heterogeneously distributed around the machine. The lack of early coordination between different teams belonging to different cultures ultimately causes delays and cost overheads that are no longer acceptable for the design of embedded systems. Traditionally, programming models have been used to coordinate software and hardware communities for the design of classic computers. A programming model provides an abstraction of HW–SW interfaces and allows concurrent design of complex systems. Examples include Abstract Programming Interfaces (API), RTOS libraries, and devices drivers, typically summarized as hardware-dependent software. This abstraction smoothes the design flow and eases interaction between different teams belonging to different cultures. The abstract hardware/software interface model defined in the early stage of the design process will then act as a contract between separate teams that can work concurrently to develop the hardware and the software parts. Designing and programming heterogeneous embedded systems is now becoming a major challenge due to real-time requirements. Embedded system applications typically require real concurrence not just the apparent concur-rency of a multitasking operating system. Parallelism is very important in embedded computing that must obey several others constraints like real-time response requirements, area efficiency, energy efficiency, proper I/O connections, and performance requirements. Software development is a major challenge for embedded system designers. The software that runs on a multiprocessor must be high performance, real-time, and low power. A harder challenge is to write parallel applications – that's the whole education of an entire software community in describing, validating, and specifying parallel systems. The hardest task is mapping those parallel