Functional programming and logic decrease the use of the most important part of our system

Thomas Arts

In Proc. of the International Workshop on Functional and (Constraint) Logic Programming (WFLP 2001) , Report No. 2017, University of Kiel


Abstract

Several years of experience with the functional language Erlang have learned Ericsson that control software for large systems can best be programmed using this technology. Systems that could not be built before have been constructed, in less time and with less code than one would need for conventional languages. The success of Ericsson in the business area of telephone switches is partly because of their solid fault tolerant architecture, both in hardware and in software. A lot of time and money have been invested in the development of this fault tolerant architecture, all to catch those errors that are overlooked in the numerous tests. By using the functional language Erlang and its extensive libraries, the number of those uncaught errors decreases; the fault recovery mechanism of the system is used less. As a consequence, one can save on testing and maintenance and increase the overall performance of a system. The additional use of formal verification aims on reducing the number of uncaught errors even more. Both theorem proving and model checking on Erlang code have been explored. We consider them as supplementary techniques, both used in the area they fit best.