Results 1 -
6 of
6
Making Reliable Distributed Systems in the Presence of Software Errors
, 2003
"... product, having over a million lines of Erlang code. This product (the AXD301) is thought to be one of the most reliable products ever made by Ericsson. ..."
Abstract
-
Cited by 42 (0 self)
- Add to MetaCart
product, having over a million lines of Erlang code. This product (the AXD301) is thought to be one of the most reliable products ever made by Ericsson.
Extracting the processes structure of ERLANG applications
"... Erlang is a concurrent functional language, especially tailored for distributed and fault-tolerant software. Its strength has been demonstrated by several successful commercial applications. An important part of Erlang is its support for fault tolerance by implementing failure-recovery, through orga ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Erlang is a concurrent functional language, especially tailored for distributed and fault-tolerant software. Its strength has been demonstrated by several successful commercial applications. An important part of Erlang is its support for fault tolerance by implementing failure-recovery, through organising the processes of an Erlang system into trees of processes, in which parent nodes monitor the failure status of their children and are responsible for their restart. In this paper we present ongoing work on a tool that captures the static part of the global process structure of an application Erlang. The tool extracts the process structure from the applications source code, and presents it as a process creation graph. The extracted process structure provides a starting point for understanding and analysis of aspects such as fault handling in Erlang applications.
An Operational Semantics for Parallel Execution of Re-entrant PLEX
, 2005
"... A large class of legacy software systems, developed and maintained over many years, can also be termed sequential software systems in that independent parts of the system requires exclusive access to shared data during its entire execution. This requirement originates from design decisions on non-pr ..."
Abstract
- Add to MetaCart
A large class of legacy software systems, developed and maintained over many years, can also be termed sequential software systems in that independent parts of the system requires exclusive access to shared data during its entire execution. This requirement originates from design decisions on non-preemptive execution, and when the underlying architecture is a single-processor one, this is sufficient to protect the shared data. The problem arises when this architecture is to be replaced by a multi-processor ditto; since different tasks (still executed in a non-preemptive fashion, but on different processors) now may access, and update, the same data concurrently, non-preemptive execution does not protect the shared data any longer. To the above problem, we propose a solution based on a program analysis that can decide when parallel execution of the current software is safe in the sense that the parallel execution does not result in data interference. As a formal basis for such an analysis, the formal semantics of the language in question has to be considered. This thesis presents an operational semantics for the language PLEX, used to program the AXE telephone exchange system, in which the above mentioned properties are found: independent pieces of software, executed in a non-preemptive fashion, together with unprotected, shared data. 1 1
Functional Programming and Logic Decrease the Use of the Most Important Part of Our System
, 2001
"... Several years of experience with the functional language Erlang have learned Ericsson that it is highly beneficial to use this language for programming control software for large systems. Systems that could not be built before, have been constructed in less time and with fewer lines of code than one ..."
Abstract
- Add to MetaCart
Several years of experience with the functional language Erlang have learned Ericsson that it is highly beneficial to use this language for programming control software for large systems. Systems that could not be built before, have been constructed in less time and with fewer lines of code than one would need with 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 these errors that are overlooked in numerous tests. By using Erlang and its extensive libraries, the number of these uncaught errors decreases; the fault recovery mechanism of the system is used less. One saves on maintenance costs and the overall performance of a system increases. The additional use of formal verifiation aims on reducing even more the number of uncaught errors.
Printed by Universitetsservice US-AB 2003iii
, 2003
"... Making reliable distributed systems in the presence of sodware errors ..."
contributed articles Erlang
"... The same component isolation that made it effective for large distributed telecom systems makes it effective for multicore CPUs and networked applications. By Joe aRmstrong Erlang is a concurrent programming language designed for programming fault-tolerant distributed systems at Ericsson and has bee ..."
Abstract
- Add to MetaCart
The same component isolation that made it effective for large distributed telecom systems makes it effective for multicore CPUs and networked applications. By Joe aRmstrong Erlang is a concurrent programming language designed for programming fault-tolerant distributed systems at Ericsson and has been (since 2000) freely available subject to an open-source license. More recently, we’ve seen renewed interest in Erlang, as the Erlang way of programming maps naturally to multicore computers. In it the notion of a process is fundamental, with processes created and managed by the Erlang runtime system, not by the underlying operating system. The individual processes, which are

