** 版权声明 ** :欢迎转载,但请注明来源地址。:-D ** 更新时间 ** :2009-01-23 ** 注意事项 ** (( * 此为开放列表,如有补充,请直接更新(若更新不便,也可以到 [[http://erlang-china.org/erlang-doc|这里]] 回复)。为便于整理,对于每一篇文档,最好能按照格式补充下列资料: * 必填: * 类别 (如:官方文档,论文,活动文档,其他;如果是活动,则请注明活动名称,如: EUC07,CN-Erlounge-II等), * 文档名称 (英/中/简,尽量详细,如:Making reliable distributed systems in the presence of software errors/面对软件错误构建可靠的分布式系统/JoeThesis 2003), * 文档作者 (如:Joe Armstrong), * 下载地址 (如:http://www.erlang.org/download/armstrong_thesis_2003.pdf,如果没有原始下载链接,也可发一贴,以附件形式上传到 erlang-china.org ), * 选填: * 内容简介 (大致介绍一下内容,没准写的好,就有同学主动要来翻译啊 :-)) 此外,翻译的大侠,也请更新注明(或到 [[http://erlang-china.org/erlang-doc|这里]] 回复),如,标注“某某正在翻译中”,以避免发生“题材撞车”事件。 )) === Erlang Classics === (来自 http://www.erlang.org/doc.html) == Getting Start with Erlang == [[http://www.erlang.org/doc/pdf/getting_started.pdf|英文版]] (( This is a “kick start” tutorial to get you started with Erlang. Everything here is true, but only part of the truth. For example, I’ll only tell you the simplest form of the syntax, not all esoteric forms. Where I’ve greatly oversimplified things I’ll write *manual* which means there is lots more information to be found in the Erlang book or in the Erlang Reference Manual. )) by Erricson AB [[http://ftp.sun7.cn/pub/linux/docs/erlang/erlang-trans-zh_CN-0.1a4-2.pdf|中文版]] 《Erlang/OTP R11B 文档》 翻译: DinoWu (目前中文版包括“入门”和“OTP设计原则”) [[https://all-remote.svn.sourceforge.net/svnroot/all-remote|SVN]] [[http://erlang-china.org/WordPress/wp-content/uploads/2007/10/erlang-trans-zh_cn-01a4-2.pdf|本地镜像]] == Making reliable distributed systems in the presence of software errors == [[http://www.erlang.org/download/armstrong_thesis_2003.pdf|英文版]] (( Doctor’s Thesis at KTH. Describes Erlang, OTP, how and why. )) by Joe Armstrong [[http://erlang-china.org/WordPress/wp-content/uploads/2007/09/joes-thesis.zip|中文版]] 《面对软件错误构建可靠的分布式系统》 翻译: 段先德 == Mnesia——针对电信应用的健壮分布式DBMS == * 原文:[[http://www.erlang.se/publications/mnesia_overview.pdf|Mnesia A Distributed Robust DBMS for Telecommunications Applications]] * 原作者:Hakan Mattsson, Hans Nilsson 和 Claes Wikstrom * 译文:[[http://shiningray.cn/docs/mnesia-a-distributed-robust-dbms-for-telecommunications-applications|Mnesia——针对电信应用的健壮分布式DBMS]] * 译者:[[http://shiningray.cn|ShiningRay]] * 摘要:Mnesia DBMS是和持有数据的应用程序运行于同一个地址空间中,然而应用程序却不会破坏数据库的内容。这同时实现了快速访问和有效的容错性,而这两个要求通常是冲突的。这些是基于Mnesia所嵌入的Erlang编程语言的特性来实现的。 == Concurrent Programming in Erlang, Part I == [[http://www.erlang.org/download/erlang-book-part1.pdf|英文版]] (( The first part of the Erlang Reference book. )) by Prentice Hall 在线阅读:[[http://svn.liancheng.info/cpie-cn/trunk/.build/html/index.html|《Erlang并发编程》第1部分中文译稿]] 翻译: CPiE-CN志愿译者团队,已完成全书除附录B、E和参考文献列表外的所有内容。 == Programming Erlang == [[http://rapidshare.com/files/44916844/ReallyUsefulEbooks.net_193435600X_Pragmatic.Programming.Erlang.Jul.2007.eBook-BBL.pdf.rar.html|英文版]] (( **THE BOOK.** ))by Joe Armstrong 翻译: jackyz & TrustNo1 === EUC 07 Erlang WorkShop === (( Attendance: an increase from last year. Of course some noted individuals from the Erlang community were there including Bjarne Dacker and Joe Armstrong (am I the only who forgot to bring along The Book?). )) (此部分来自 krzycube 的贡献) == Commercial Applications of Multi-core at Ericsson == 英文版[暂缺] (( The main point I took away was the scalability of Erlang in multi-core hardware is nearly linear. Nilsson provided examples from studies conducted internally at Ericsson and an external 8 core 8 CPU Sun box. )) by H. Nilsson. == Extended Process Registry for Erlang == [[http://delivery.acm.org/10.1145/1300000/1292522/p1-wiger.pdf?key1=1292522&key2=5178891911&coll=ACM&dl=ACM&CFID=15151515&CFTOKEN=6184618|英文版]] (( Wiger addresses the issue of finding a specific process from a large pool of processes in particular for debugging and profiling purposes. At present, an earlier version of his extension is in use at Ericsson. This earlier extension only deals with local process registration while the talk focused on gproc, a global process registration service. gproc allows grouping processes into global and local properties reducing the search space when looking for a specific process. gproc also implements the necessary interface for use with QLC. Only minimal application code changes are needed to use/remove gproc making it definitely worthwhile to try out. )) by U. Wiger. [[http://erlang-china.org/WordPress/wp-content/uploads/2007/11/p1-wiger-cn.pdf|中文版]] 《扩展 Erlang 的进程注册表》 翻译:gigix ==A Language for Specifying Type Contracts in Erlang and its Interaction with Success Typings== [[http://delivery.acm.org/10.1145/1300000/1292523/p11-jimenez.pdf?key1=1292523&key2=5077891911&coll=ACM&dl=ACM&CFID=15151515&CFTOKEN=6184618|英文版]] (( Recent questions on the mailing list regarding edoc brought references to this particular topic with details revealed here. Essentially a slight modification/addition to edoc specs providing more information to dialyzer and a new to-be-written tool (by Luna) for type checking Erlang code. )) by M. Jim茅nez, T. Lindahl, K. Sagonas == Introducing Records by Refactoring == [[http://delivery.acm.org/10.1145/1300000/1292524/p18-lovei.pdf?key1=1292524&key2=6868891911&coll=ACM&dl=ACM&CFID=15151515&CFTOKEN=6184618|英文版]] (( Presentation on the refactoring tool previously announced on the mailing list. Focuses on global code refactoring converting a tuple into record. Changes both internal references to the tuple and callee functions. )) by L. L枚vei, Z. Horv谩th, T. Kozsik, R. Kir谩ly == Towards Hard Real-Time Erlang == [[http://delivery.acm.org/10.1145/1300000/1292525/p29-nicosia.pdf?key1=1292525&key2=4017891911&coll=ACM&dl=ACM&CFID=15151515&CFTOKEN=6184618|英文版]] (( Using an undocumented priority level and a new behaviour to provide hard realtime support within Erlang. The implementation is currently experimental although the speaker will be using it in the near future for his autonomous mobile robot project. A project worth tracking for those requiring hard realtime. )) by V. Nicosia, C. Santoro == Programming Distributed Erlang Applications: Pitfalls and Recipes == [[http://delivery.acm.org/10.1145/1300000/1292527/p37-svensson.pdf?key1=1292527&key2=8758891911&coll=ACM&dl=ACM&CFID=15151515&CFTOKEN=6184618|英文版]] (( This talk should be part of the Erlang FAQ. Get a copy of the paper and read it! )) by H. Svensson, L.-脜. Fredlund [[http://erlang-china.org/WordPress/wp-content/uploads/2007/11/p37-svensson-cn.pdf|中文版]] 《编写分布式的Erlang程序:陷阱和对策》 翻译:gigix == Timed Verification of Erlang/OTP Components with the Process Algebra muCRL == 英文版[暂缺] (( Interesting verification work on gen_fsm with timeout. Unfortunately the transformation is current done by hand but since the analysis portion seems independent to Erlang it should be possible to do the same for any other language. )) by Q. Guo, J. Derrick == Priority Messaging made Easy == [[http://delivery.acm.org/10.1145/1300000/1292530/p65-nystrom.pdf?key1=1292530&key2=0480991911&coll=ACM&dl=ACM&CFID=15151515&CFTOKEN=6184618|英文版]] (( Nystr枚m provides several examples of why priority message are hard to get right. Or for that matter with clean coding styles as Francesco once said “If you want dirty workarounds for selective receives in gen_servers, let me know. It will however have to be after lunch, as I will loose my appetite”. We get to see why in this talk. )) by J. H. Nystr枚m == Optimising TCP/IP Connectivity == [[http://delivery.acm.org/10.1145/1300000/1292532/p73-hellstrom.pdf?key1=1292532&key2=0990991911&coll=ACM&dl=ACM&CFID=15151515&CFTOKEN=6184618|英文版]] (( Bottom line - use SuSE! )) by O. Hellstr枚m 翻译: Jerry (进行中) == An Erlang Framework for Autonomous Mobile Robots == [[http://delivery.acm.org/10.1145/1300000/1292533/p85-santoro.pdf?key1=1292533&key2=3701991911&coll=ACM&dl=ACM&CFID=15151515&CFTOKEN=6184618|英文版]] (( A very nice example of modular Erlang with C controller ports to control a robot. The AI portion, ERESYE, is also written in Erlang. )) by V. Nicosia, C. Santoro == Learning Programming with Erlang == [[http://delivery.acm.org/10.1145/1300000/1292534/p93-huch.pdf?key1=1292534&key2=5311991911&coll=ACM&dl=ACM&CFID=15151515&CFTOKEN=6184618|英文版]] (( Huch uses an Erlang system called Kara to attract prospective female university applicants into the Computer Science program. The list of concepts taught is impressive, non tail-recursion on day 1 and processes/message passing on day 3! Hopefully access to the video of this interactive engaging talk could be made public. Hint hint. )) by F. Huch == Programming Efficiently with Binaries and Bit Strings == [[http://www.erlang.se/euc/07/papers/1700Gustafsson.pdf|英文版]] (( A new datatype, the bit string, and a new construct for manipulating binaries, binary comprehensions, are included in the R12B release of Erlang/OTP. In addition to this the implementation of binary construction and matching have been altered to make straightforward programs that operates on binaries or bit strings more efficient. )) by Per Gustafsson (来自 Jerry 的贡献) 翻译: Jerry (进行中) === 其他 === == Purely Functional Data Structures == [[http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf|英文版]] (( When a C programmer needs an efficient data structure for a particular problem, he or she can often simply look one up in any of a number of good textbooks or handbooks. Unfortunately, programmers in functional languages such as Standard ML or Haskell do not have this luxury. Although some data structures designed for imperative languages such as C canbe quite easily adapted to a functional setting, most cannot, usually because they depend in crucial ways on assignments, which are disallowed, orat least discouraged, in functionallanguages. To address this imbalance,we describe several techniques for designing functional data structures, and numerous original data structures based on these techniques, including multiple variations of lists, queues, double-ended queues, and heaps, many supporting more exotic features such as random access or efficient catenation. )) [[http://users.dimi.uniud.it/types07/slides/Danielsson.pdf|演示]] by Chris Okasaki (来自 cn-erlounge-ii 现场,由 krzycube 贡献) == Practical Type Inference Based on Success Typings == [[http://www.it.uu.se/research/group/hipe/papers/succ_types.pdf|英文版]] (( We show that it is possible to reconstruct a significant portion of the type information which is implicit in a program, automatically annotate function interfaces, and detect definite type clashes without fundamental changes to the philosophy of the language or imposing a type system which unnecessarily rejects perfectly reasonable programs. To do so, we introduce the notion of success typings of functions. Unlike most static type systems, success typings incorporate subtyping and never disallow a use of a function that will not result in a type clash during runtime. Unlike most soft typing systems that have previously been proposed, success typings allow for compositional, bottom-up type inference which appears to scale well in practice. )) by Tobias Lindahl and Konstantinos Sagonas (来自 gigix 的贡献) == Design Patterns for Simulations in Erlang/OTP == [[http://ftp.csd.uu.se/pub/papers/masters-theses/0178-ekstrom.pdf|英文版]] (( The growing field of Design Patterns o?ers hope of controlling the complexities associated with the development of large software applications. The architecture of a system can be expressed at a higher level of abstraction, which allows the designer to concentrate on the specifics of the application rather than having to deal with low-level issues. Simulations are today an essential tool for research and training in areas such as national defense, where simulations are a cheaper (and sometimes the only possible) alternahttp://lambda-the-ultimate.org/node/1910tive. This work has focused on finding design patterns for simulation software and provides an implementation of the discovered patterns in Erlang/OTP as something called behaviours. The main simulation software in this study is Sim94 - A concurrent simulator for plan-driven troops, written in the Erlang programming language at the Computing Science Department of Uppsala University in 1994. This paper also investigates patterns in general as well as the relationship between behaviours and design patterns. )) by Ulf Ekstrom (来自 gigix 的贡献) == A More Accurate Semantics for Distributed Erlang == [[http://www.cs.chalmers.se/~hanssv/doc/ew07-semantics.pdf|英文版]] (( In order to formally reason about distributed Erlang systems, it is necessary to have a formal semantics. In a previous paper we have proposed such a semantics for distributed Erlang. However, recent work with a model checker for Erlang revealed that the previous attempt was not good enough. In this paper we present a more accurate semantics for distributed Erlang. The more accurate semantics includes several modifications and additions to the semantics for distributed Erlang proposed by Claessen and Svensson in 2005, which in turn is an extension to Fredlund’s formal single-node semantics for Erlang. The most distinct addition to the previous semantics is the possibility to correctly model disconnected nodes. )) by Hans Svensson, Lars-Ake Fredlund (来自 myrc 的发现,由 mryufeng 提供下载地址)