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.