我在Erlang Resources 豆瓣小站上发起了一个征集活动 [链接] ,"[征集] 我们读过的Erlang论文",希望大家来参加.发起这样一个活动的目的是因为Erlang相关的出版物很少,很多时候都是从学术论文中寻找答案,而发现合适的论文是第一步,这个活动就是为了解决这个问题.

在一个极小的知识点可能都会有一篇精彩的论文为你条分缕析,抽丝剥茧,甚至可以拼凑起来一个完整的Erlang知识系统,我们开始吧...

《面向软件错误构建可靠的分布式系统》

Making reliable distributed systems in the presence of sodware errors

地址:  http://pubftp0.availo.se/pub/FreeBSD/distfiles/erlang-doc/r13b01/armstrong_thesis_2003.pdf

译文地址: http://man.lupaworld.com/content/other/erlang.pdf

备注: 没有什么可说的,这篇论文几乎是Erlang入门必读,甚至在论文里面已经可以完成Erlang基础知识的学习;

Concurrent Programming in ERLANG

地址: http://www.erlang.org/download/erlang-book-part1.pdf

备注: 教科书

Characterizing the Scalability of Erlang VM on Many-core Processors

地址: http://kth.diva-portal.org/smash/get/diva2:392243/FULLTEXT01

备注: 估计是了解Erlang VM必读的一篇论文,在众多涉及Erlang VM实现的博客,论文里面到处可以看到这篇论文的身影;

摘要: This section will introduce the reader to Erlang and briefly describe the Erlang compiler and virtual machine in order to give the reader some basic understanding of Erlang.

Exploring Alternative Memory Architectures for Erlang:Implementation and Performance Evaluation

地址: http://www.fantasi.se/publications/Wilhelmsson_MSc.pdf

备注: 文章介绍了Erlang VM垃圾回收和内存管理

Efficient memory management for concurrent programs that use message passing I,II

地址: http://user.it.uu.se/~kostis/Papers/scp_mm.pdf

备注: Erlang VM 内存管理 GC

Heap Architectures for Concurrent Languages using Message Passing
地址: http://www.fantasi.se/publications/ISMM02.pdf

摘要:We discuss alternative heap architectures for languages that rely on automatic memory management and implement con-
currency through asynchronous message passing. We describe how interprocess communication and garbage collec-
tion happens in each architecture, and extensively discuss the tradeoffs that are involved. In an implementation set-
ting (the Erlang/OTP system) where the rest of the runtime system is unchanged, we present a detailed experimental
comparison between these architectures using both synthetic programs and large commercial products as benchmarks.
备注: 一句话总结这篇论文就是:当消息传递的时候本质上发生了什么

 

 

On Preserving Term Sharing in the Erlang Virtual Machine

地址: http://user.it.uu.se/~kostis/Papers/erlang12_sharing.pdf

摘要:In this paper we describe our experiences and argue through examples why flattening terms during copying is not a good idea for

a language like Erlang. More importantly, we propose a sharing preserving copying mechanism for Erlang/OTP and describe a pub-

licly available complete implementation of this mechanism.

Bit-level Binaries and Generalized Comprehensions in Erlang
地址: http://user.it.uu.se/~pergu/papers/erlang05.pdf

备注: To further simplify programming on bit streams we then show how binary comprehensions can be introduced in the language and how binary and list comprehensions can be extended to allow both binary and list generators.

备注: 简单描述Core Erlang 和Erlang的关系,发展历史 从Erlang代码到Core Erlang代码中间经历的分析和转换过程中是怎样被大大简化的.

 
 
Programming Efficiently with Binaries and Bit Strings
摘要: This paper will describe the new additions to the language and show how they can be used efficiently given the new optimizations

of binary pattern matching and binary construction. It also includes some performance numbers to give an idea of the gains that can be
made with the new optimizations.

备注:Erlang Efficiency Guide告诉你How,这篇论文告诉你Why
 
Programming Distributed Erlang Applications:Pitfalls and Recipes

编写分布式的 Erlang 程序:陷阱和对策
备注:   基本消息传递保障-流语义 跨节点编程陷阱 Pid重复 消息顺序
 
Parameterized modules in Erlang
备注: 这个已经成为传说,在最新版Erlang中需要通过插件项目使用此特性
 
Design Patterns for Simulations in Erlang/OTP
备注: 不感兴趣的部分就大段大段的跳过吧,这篇论文讲到了 The implemented behaviours
 
 
Extended Process Registry for Erlang 
备注: gproc: Extended Process Registry 这个应该有不少人在实践了
 
 
Troubleshooting a Large Erlang System
备注: 串讲了OTP排错工具集如何使用 
 
Static Detection of Race Conditions in Erlang
摘要: We address the problem of detecting some commonly occurring kinds of race conditions in Erlang programs using static analy-

sis.

Erlang’s Exception Handling Revisited

地址: http://www.erlang.se/workshop/2004/exception.pdf

摘要:  We give a comprehensive description of the behaviour of exceptions in modern-day Erlang , present a theoretical model of the
semantics of exceptions, and use this to derive the new try-construct.

 
 
Cleaning up Erlang Code is a Dirty Job but Somebody’s Gotta Do It
备注: 看这篇论文我们都不一定要用这个代码自动优化工具,更有价值的是问How & Why
 
 Build Your Next Web Application with Erlang
备注: 有O'记那本小册子,这篇论文不读也罢
 
 
A Study of Erlang ETS Table Implementations and Performance
摘要: The viability of implementing an in-memory database, Erlang ETS, using a relatively-new data structure, called a Judy array, was studied by comparing the performance of ETS tables based on four data structures: AVL balanced binary trees, B-trees, resizable linear hash tables, and Judy arrays. 
 
 
A Stream Library using Erlang Binaries
摘要: This paper introduces the memory and behavior characteristics of lists, tuples and binaries in erlang, then continues with a de-

scription of the Bit syntax and standard methods of using binaries to deal with streamed data. Next it introduces BIF functions that
are shown to be much faster than using the traditional Bit syntax to manipulate binary data.

A Scalability Benchmark Suite for Erlang/OTP

地址: http://www.softlab.ntua.gr/~gtsiour/files/erlang01-aronis.pdf

摘要: This paper presents the main aspects of the design and the current status of bencherl, a publicly available scalability benchmark

suite for applications written in Erlang.

All you wanted to know about the HiPE compiler (but might have been afraid to ask)

地址: http://user.it.uu.se/~pergu/papers/erlang03.pdf

备注:几乎解答了HIPE的所有常见问题

No more need for records

地址: http://www.cs.otago.ac.nz/staffpriv/ok/frames.pdf

备注:Maps结构的缘起 设计上的取舍部分很有意思

未完成,待续

[Erlang 0126] 我们读过的Erlang论文的更多相关文章

  1. [Erlang 0120] Know a little Core Erlang

      Erlang开发者或多或少都用过或者听说过Core erlang,它是什么样的呢?新建一个测试模块a.erl,如下操作会生成core erlang代码而非a.beam:   Eshell V6.0 ...

  2. [Erlang 0115] 2014值得期待的Erlang两本新书

    在2014年的开头就有这样一个令人振奋的好消息,Erlang有一本新书即将出版 <The Erlang Runtime System>,其作者happi在2013年3月份公布了这本书的写作 ...

  3. [Erlang 0004] Centos 源代码编译 安装 Erlang

    原文地址: http://www.cnblogs.com/me-sa/archive/2011/07/09/erlang0004.html 由于最终部署的生产环境是Centos,所以我需要在Cento ...

  4. 从单幅图像高质量去除运动模糊——读JiaYaJia同名英文论文总结

    原始论文在这里 http://www.cse.cuhk.edu.hk/leojia/projects/motion_deblurring/ 一.概述 论文根据以下的基本模糊图像模型建立 其中I是我们观 ...

  5. 机器学习系列(8)_读《Nature》论文,看AlphaGo养成

    作者:viewmode=contents">龙心尘 && viewmode=contents">寒小阳 时间:2016年3月. 出处:http://bl ...

  6. [Erlang 0127] Term sharing in Erlang/OTP 上篇

    之前,在 [Erlang 0126] 我们读过的Erlang论文 提到过下面这篇论文: On Preserving Term Sharing in the Erlang Virtual Machine ...

  7. [Erlang 0105] Erlang Resources 小站 2013年1月~6月资讯合集

    很多事情要做,一件一件来; Erlang Resources 小站 2013年1月~6月资讯合集,方便检索.      小站地址: http://site.douban.com/204209/     ...

  8. Erlang运行时中的无锁队列及其在异步线程中的应用

    本文首先介绍 Erlang 运行时中需要使用无锁队列的场合,然后介绍无锁队列的基本原理及会遇到的问题,接下来介绍 Erlang 运行时中如何通过“线程进度”机制解决无锁队列的问题,并介绍 Erlang ...

  9. [Erlang 0129] Erlang 杂记 VI

    把之前阅读资料的时候记下的东西,整理了一下. Adding special-purpose processor support to the Erlang VM   P23 简单介绍了Erlang C ...

随机推荐

  1. ASP.NET MVC Model绑定(四)

    ASP.NET MVC Model绑定(四) 前言 前面的篇幅对于Model绑定器IModelBinder以及实现类型.Model绑定器提供程序都作了粗略的讲解,可以把Model绑定器想象成一个大的容 ...

  2. Java程序员的日常—— Arrays工具类的使用

    这个类在日常的开发中,还是非常常用的.今天就总结一下Arrays工具类的常用方法.最常用的就是asList,sort,toStream,equals,copyOf了.另外可以深入学习下Arrays的排 ...

  3. [Java]Java日期及时间库插件 -- Joda Time.

    来到新公司工作也有一个多月了, 陆陆续续做了一些简单的项目. 今天做一个新东西的时候发现了 Joda Time的这个东西, 因为以前用的都是JDK原生的时间处理API, 大家都知道Java原生的时间处 ...

  4. IOC框架

    一. IOC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 图1:软件系统中耦合的对象 如果我们打开机 ...

  5. 【原】Masonry+UIScrollView的使用注意事项

    [原]Masonry+UIScrollView的使用注意事项 本文转载请注明出处 —— polobymulberry-博客园 1.问题描述 我想实现的使用在一个UIScrollView依次添加三个UI ...

  6. 你真的会玩SQL吗?你所不知道的 数据聚合

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  7. 跨域之URL

    在介绍怎么跨域之前,先来弄清楚一个概念:URL.以下内容摘自维基百科. 统一资源定位符(或称统一资源定位器/定位地址.URL地址等,英语:Uniform / Universal Resource Lo ...

  8. ldap部署相关,ldap双机\LAM配置管理\ldap备份还原

    前言 接之前我的文章,django+ldap+memcache实现单点登录+统一认证 就单点登录实现过程进行详细记录,ldap是一切的基础,可以把它理解成一个读强写弱的文件类型数据库,统一认证我们通过 ...

  9. Linux零起点之进程管理----c语言编程

    进程 (Process)是指操作系统中被加载到内存中的.正在运行的应用程序实例.进程是系统资源分配的基本单元,在其生命周期内会使用系统中的各种资源.进程主要由程序.数据以及进程控制快(PCB)3个部分 ...

  10. new/delete重载

    在c++中,有时我们需要在运行阶段为一个变量分配未命名的内存,并使用指针来访问它,这里就可以用到new关键字.另外需要指出的是,new分配的内存块通常与常规变量分配的内存块不同,常规变量的值都储存在被 ...