of code is very important. Finally, there are very high level or application-oriented languages, such as LISP, Prolog, and other so-called fourth-generation languages (4GL), in which the programmer declares what the computer should do, not how it should do it.
All the “how” languages, up to and including Ada, are called procedural, or imperative, languages. The very high level languages are declarative, or applicative, languages. They differ from the “how” languages in clarity, suitability for parallel execution, computing power requirements, and applications.
Declarative languages are usually more concise and clearer than procedural languages. They are also intrinsically suited to parallel execution, whereas procedural languages can exploit parallelism in a problem only with great difficulty. A drawback of declarative languages, until now, has been their need for substantial computing power, or preferably a new computer architecture. Procedural languages, on the other hand, are quite efficient in traditional “von Neumann” computers.
Partly because they need so many MIPS, declarative languages have found relatively few applications in industry until now. But there are reasons to believe that this is about to change—that the procedural languages are like the dinosaurs, growing larger and larger toward their extinction, and that the present declarative languages are like the first mammals, still small and hiding in the bushes, but poised ready to take over the world.
Language is only one factor that influences software efficiency and quality. The methods and tools used to support software development and handling are as important as the structure of the hardware and software.
In the telecommunications industry, large real-time systems with software written in millions of lines of code are needed to support our public switching system (AXE). These data bases sum up to more than 400 gigabytes. Another way to think of the size and complexity of this system is to consider that we have installed more than 10 million telephone lines in more than 50 countries.
The software content of a single AXE installation is on the order of 2–5 megabytes, and there are numerous versions to meet different market requirements. This calls for very good tools for releasing different versions and updates. As a result, it is absolutely vital to use results from information technologies research. With large systems, use of these results, in turn, requires extremely good software management and planning, as well as new ways of structuring systems. Reusable software and different kinds of software tools for different parts of a computerized system are needed. Today new technologies are continually being introduced; for example, artificial intelligence technology could be valuable for creating a good human-machine interface to a “conventional” computer system (see Figure 3).
Artificial intelligence combines such mechanistic concepts as repetition, precision, and data handling, and then uses this combination in the broader