|
Erlang ( ) is a general-purpose, concurrent, garbage-collected programming language and runtime system. The sequential subset of Erlang is almost a functional language (excluding certain built-in functions (BIFs) such as those manipulating the process dictionary), with eager evaluation, single assignment, and dynamic typing. It was originally designed by Ericsson to support distributed, fault-tolerant, soft real-time, highly available, non-stop applications. It supports hot swapping, thus code can be changed without stopping a system.〔(【引用サイトリンク】title=Open-source Erlang - White Paper )〕 While threads require external library support in most languages, Erlang provides language-level features for creating and managing processes with the aim of simplifying concurrent programming. Though all concurrency is explicit in Erlang, processes communicate using message passing instead of shared variables, which removes the need for explicit locks (a locking scheme is still used internally by the VM〔(【引用サイトリンク】url=http://erlang.2086793.n4.nabble.com/Lock-free-message-queue-td2550221.html )〕). The first version was developed by Joe Armstrong, Robert Virding and Mike Williams in 1986.〔Joe Armstrong, "History of Erlang", in ''HOPL III: Proceedings of the third ACM SIGPLAN conference on History of programming languages'', 2007, ISBN 978-1-59593-766-7〕 It was originally a proprietary language within Ericsson, but was released as open source in 1998. Erlang, along with OTP, a collection of middleware and libraries in Erlang, are now supported and maintained by the OTP product unit at Ericsson and widely referred to as Erlang/OTP. ==History== The name "Erlang", attributed to Bjarne Däcker, has been presumed by those working on the telephony switches (for whom the language was designed) to be a reference to Danish mathematician and engineer Agner Krarup Erlang or the ubiquitous use of the unit named for him, and (initially at least) simultaneously as a syllabic abbreviation of "Ericsson Language".〔〔(Erlang, the mathematician? )〕 Erlang was designed with the aim of improving the development of telephony applications. The initial version of Erlang was implemented in Prolog and was influenced by the programming language PLEX used in earlier Ericsson exchanges. According to Armstrong, the language went from lab product to real applications following the collapse of the next-generation AXE exchange named ''AXE-N'' in 1995. As a result, Erlang was chosen for the next ATM exchange ''AXD''.〔 In 1998 Ericsson announced the AXD301 switch, containing over a million lines of Erlang and reported to achieve a high availability of nine "9"s.〔 (【引用サイトリンク】title=Concurrency Oriented Programming in Erlang ) 〕 Shortly thereafter, Ericsson Radio Systems banned the in-house use of Erlang for new products, citing a preference for non-proprietary languages. The ban caused Armstrong and others to leave Ericsson.〔 The implementation was open-sourced at the end of the year.〔 Ericsson eventually lifted the ban; it re-hired Armstrong in 2004.〔(【引用サイトリンク】title=question about Erlang's future )〕 In 2006, native symmetric multiprocessing support was added to the runtime system and virtual machine.〔 Erlang has now been adopted by companies worldwide, including Nortel and T-Mobile. Erlang is used in Ericsson’s support nodes, and in GPRS, 3G and LTE mobile networks worldwide.〔(Inside Erlang – creator Joe Armstrong tells his story )〕 As Tim Bray, director of Web Technologies at Sun Microsystems, expressed in his keynote at OSCON in July 2008: 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Erlang (programming language)」の詳細全文を読む スポンサード リンク
|