In the early 90s, as the PATH highway automation project started, PATH proposed an architecture for automating highways. Since we were dealing with a complex and very large system, there was no hope for closed form mathematical analysis. The need for simulation environment was obvious. A study of the tools in the market was not very fruitful and a decision was made to internally develop a system to simulate the PATH control architecture for highway automation. A C and CSIM based simulation system, SmartPath, was created. The project evolved and gained national attention.
In time several other highway automation architectures were proposed and it became evident that a generalized simulation framework was needed that could facilitate the specification, simulation, and evaluation of different highway automation architectures. SmartPATH was too specific to address these needs. As a result SmartAHS, a C++ based persistent simulation framework was developed. At the same time the National Automated Highway System Consortium (NAHSC) was formed and was charged with the development of the ultimate AHS concept.
In parallel to our AHS work, we were involved with several other projects, such as air traffic management, power transmission and distribution systems, and network management systems. In system engineering, we have observed a general shift towards hierarchical control of large systems that combined classical continuous feedback systems, with more recent discrete event based control algorithms and protocol specifications. The paradigm, called hybrid systems, has proved ideal for the specification, control, and verification of such complex, large, dynamical systems.
Our experience with a multitude of such systems resulted in a set of requirements for frameworks for the design, specification, control, simulation, and evaluation of large dynamical systems. No product in the market nor in academia came close to satisfying all requirements.
From our SmartAHS experience we knew that a new programming language with syntactic support for system-theoretic constructs were needed. We wanted our users to be able to program in their "own" domain, and not have to worry about artificial rules and syntax resulting from the use of a general-purpose programming language.
Addressing the requirements required expertise from several disciplines including computer science, electrical engineering, and mechanical engineering. Such a multi-disciplinary team was assembled at PATH/UC Berkeley and a new programming language, SHIFT, was born.