From a linguistic point of view, software engineering is the application of information technologies in communicating between a variety of stakeholders in computing, such as professionals and customers, architects and software engineers, programmers and computers, as well as computing systems and their environments. Therefore, linguistics and formal language theories may play important roles in computing theories; without them computing and software engineering theories would not be complete.