èª°ãæªæ¥ãäºæž¬ããããšã¯ã§ããŸãã-ããããç§ã¯ããã€ãã®åççãªä»®å®ãããŸãã
IntelãKeiferãããžã§ã¯ããéå§ããã®ã¯æ£ãããšä»®å®ããŸãã ãã®å Žåã2009幎ãã2010幎ãŸã§ã«32ã³ã¢ããã»ããµãåžå Žã«ç»å ŽããŸãã
ããã§é©ãã¹ãããšã¯äœããããŸããã Sunã¯ãã§ã«ã32ã³ã¢ã³ã¢ã«çžåœããåã³ã¢ã«4ã€ã®ããã€ããŒã¹ã¬ããããåãã8ã³ã¢ãã€ã¢ã¬ã©ã販売ããŠããŸãã
ããã¯ãErlangããã°ã©ããŒã幞ãã«ããéçºã§ãã 圌ãã¯ãã®ã€ãã³ãã20幎éåŸ ã£ãŠããŸããããä»ã¯ãããèããæã§ãã
Erlangããã°ã©ããŒã«ãšã£ãŠã®æå ±ïŒ
Nã³ã¢ããã»ããµã§ã¯ãããã°ã©ã ã®å®è¡é床ã¯Nåã«ãªããŸãã
ããã¯æ¬åœã§ããïŒ
ã»ãŒã ãã®ããšã«ã€ããŠè©±ãã®ã¯ãŸã ææå°æ©ã§ãããç§ãã¡ã¯æ¥œèгçã§ãïŒä¹±æŽã«æ¥œèгçã§ã-ç§ã¯éå»20幎éã§ãã®ãããªæ¥œèгãèŠãããšã¯ãããŸããïŒïŒ ã
å Žåã«ãã£ãŠã¯ãã³ãŒããå°ã調æŽããå¿ èŠããããŸã-Sun Niagaraã§Erlangããã¥ã¡ã³ãçæããã°ã©ã ïŒ32ã³ã¢ããã»ããµã«çžåœïŒãéå§ãããšãã倿Žã¯1è¡ã®ã³ãŒãã®ã¿ã«åœ±é¿ããŸããïŒããããpmapã«å€æŽããŸãã-詳现 ããa ã³ç³ãäžããŸãïŒã pmapã¯åãªãã䞊åããããã§ãïŒ ã
ããã°ã©ã ïŒwikiã¬ã€ã¢ãŠããã63ã®ããã¥ã¡ã³ããçæïŒã¯ã7åéãåäœãå§ããŸããã ãã¡ããã32åã§ã¯ãããŸããããããé«éã§ãïŒåŸã§ããã£ã¹ã¯I / Oãããã«ããã¯ã§ããã䞊ååãããŠããªãããã7åã®å¢å ã«ãªããŸããïŒ ã
ç§ãå€åããErlangãéçºããããšãªã¯ãœã³ã§ã¯ãäžéšã®ã¢ããªã±ãŒã·ã§ã³ã4ã³ã¢ããã»ããµã«ç§»æ€ããŠããŸãã 軜ãããŒãã³ã°ã®åŸããããã¯ã»ãŒ4åéãåäœããŸãã ã€ã³ãã«ãç ç©¶æã§éã¶80æ žã®ç³ãåŸ ã€ã®ã«ååãªå¿èããããŸãã...
ã§ã¯ããªããã®ãããªåçŽãã§ããã°ã©ã ãé«éã«å®è¡ãããã®ã§ããããïŒ ããã¯ãã¹ãŠã倿°ã®ç¶æ ãšäžŠè¡æ§ã«é¢ãããã®ã§ãã
倿°ãšäžŠè¡æ§
å€ä»£ïŒ20幎åã®éçïŒããã䞊ååŠçã«ã¯2ã€ã®ã¢ãã«ããããŸãã
- å
±æã¡ã¢ãªãã
ã¡ãã»ãŒãžã®åãæž¡ãã«ã€ããŠ
ãã以æ¥ãå šäžçãäžæ¹åïŒå ±æã¡ã¢ãªïŒã«ãªããŸããããå¥ã®æ¹æ³ãéžæããŸããã
OzãOccamãªã©ãã¡ãã»ãŒãžã³ã°ã®äžŠè¡æ§ã®éããã©ã£ãèšèªã¯ãããããã§ããã
ã¡ãã»ãŒãžã³ã°ã®äžŠè¡æ§ã«ã€ããŠèšãã°ããå ±æã¡ã¢ãªã¯ãããŸããããšä»®å®ããŠããŸãã ãã¹ãŠã®èšç®ã¯åé¢ãããããã»ã¹ã§å®è¡ãããæ å ±ã亀æããå¯äžã®æ¹æ³ã¯éåæã¡ãã»ãŒãžã³ã°ã§ãã
ããã§äœã®ããã«ããã®ïŒ
å ±æã¡ã¢ãªã®äžŠååŠçã¯ããå¯å€ç¶æ ãïŒæåéãã倿Žå¯èœãªã¡ã¢ãªïŒã®åçã«åºã¥ããŠæ§ç¯ãããŠããŸãã CãJavaãC ++ãªã©ã®ãã¹ãŠã®èšèª 倿Žã§ãããèšæ¶ãã®æŠå¿µãäŒããŸãã
ããã¯ã倿Žãçæããããã»ã¹ã1ã€ã ãããå Žåã«ã®ã¿æå¹ã§ãã
ãããã 1ã€ã®ã¡ã¢ãªãåå²ããŠå€æŽããããã»ã¹ãè€æ°ããå Žåãæåœ¢ãããæªå€¢ãå§ãŸããŸãã
å ±æã¡ã¢ãªãžã®åææžã蟌ã¿ãé²ãã«ã¯ãããã¯ã¡ã«ããºã ãå¿ èŠã§ãã ããããã¥ãŒããã¯ã¹ãŸãã¯åæã¡ãœãããšåŒã³ãŸããå¿ èŠã«å¿ããŠåŒã³åºããŸããããã¯ã®ãŸãŸã§ãã
ããã°ã©ã ãéèŠãªé åã§ã¯ã©ãã·ã¥ããå ŽåïŒã€ãŸããããããã³ã°ãæå¹ã«ãªã£ãŠãããšãïŒãããã¯çœå®³ã§ãã ä»ã®ãã¹ãŠã®ããã°ã©ã ã¯äœããã¹ãããç¥ããŸããã
ããã°ã©ãã¯ãããã®åé¡ãã©ã®ããã«è§£æ±ºããŸããïŒ åœŒãã¯ç¥ã£ãŠããŸãã ã·ã³ã°ã«ã³ã¢ããã»ããµã§ã¯ãããã°ã©ã ã¯ãæ£åžžã«åäœãã§ããŸããããã«ãã³ã¢ã§ã¯ããã¹ãŠãèœã¡ãŸãã
ãããé²ãããã®ããŸããŸãªæ¹æ³ããããŸãïŒ ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªãããããæè¯ã®æ¹æ³ã§ãïŒããããã§ã倱æããããææªã®å Žåã¯æªå€¢ã§ãã
Erlangã«ã¯å€æŽå¯èœãªããŒã¿æ§é ããããŸãã
ïŒäžè¬çã«ã¯ãããŸãããåé¡ã§ã¯ãããŸããïŒ
倿Žå¯èœãªããŒã¿ãªãâããã¯ãªãã
倿Žå¯èœãªããŒã¿ãªã->䞊ååãç°¡åã
ããã§ã¯ãã©ã®ããã«äžŠååããã®ã§ããããïŒ ç°¡å-ããã°ã©ããŒã¯ãœãªã¥ãŒã·ã§ã³ãè€æ°ã®äžŠåããã»ã¹ã«åå²ããŸãã
ãã®ããã°ã©ãã³ã°ã¹ã¿ã€ã«ã¯...
ïŒãã©ã ããŒã«ïŒ
äžŠè¡æ§æåããã°ã©ãã³ã°
Erlangã¯ãªããžã§ã¯ãã«é¢ãããã®ã§ã¯ãããŸããã 圌ã¯åœŒèªèº«ã®æ¯phorãæã£ãŠããŸãã
ãªããžã§ã¯ãã¯æµè¡ããŸããã äžŠè¡æ§ãæºããã
äžçã¯å¹³è¡ã§ãã ç§ãã¡ã®åšãã®ããããã®ã€ãã³ããåæã«èµ·ãã£ãŠããŸãã ç§ã¯ãçŽæçãªã¬ãã«ã§ã®äžŠååŠçã®ååãã€ãŸãã¡ãã»ãŒãžã³ã°ã®çŽç²ãªäžŠååŠçãçè§£ããªããã°ãé«ééè·¯ã«æ²¿ã£ãŠè»ãé転ããããšã¯ã§ããŸããã
人ã ã®ã°ã«ãŒããæ³åããŠãã ããã äžè¬çãªæ¡ä»¶ã¯ãããŸããã
ç§ã¯èªåã®å人çãªèšæ¶ãïŒç§ã®é ã®äžã«ïŒæã£ãŠããŸãã ãããŠåœŒå¥³ã¯äžè¬çã§ã¯ãããŸãã ã ç§ãã¡ã¯ã¡ãã»ãŒãžïŒå ãšé³æ³¢ïŒãéä¿¡ããããšã§ã³ãã¥ãã±ãŒã·ã§ã³ãåããŸãã ãããã®ä¿¡å·ã®èªèã«åºã¥ããŠå éšç¶æ ãæŽæ°ããŸãã
ãããã䞊è¡ããã°ã©ãã³ã°ã®æ žãšãªããã®ã§ãã
ããã¯ãŸãã§ãªããžã§ã¯ãã®äžã«å¯å€ç¶æ ãé ããŠãããããªãã®ã§ã-é£ããåé¡ã«å¯ŸããŠäžŠååãäžå¯èœã«ãããŸãã«ãã®ç¹æ§ã§ãã
ãããŠããã¯æ©èœããŸããïŒ
ã¯ã Erlangã¯ãä¿¡é Œæ§ãå¿ èŠãªãã€ãã¯ãããžã§ã¯ãã§äžçäžã§äœ¿çšãããŠããŸãã ã¹ãŠã§ãŒãã³ã®é»è©±äŒç€Ÿã§ãããšãªã¯ãœã³ãéçºãããã©ãã°ã·ããã®ã¢ãŒã©ã³ãããžã§ã¯ãã¯ãAXD301ã¹ã€ããã§ãã 200äžè¡ãè¶ ããã¢ãŒã©ã³ããããŸãã
AXD301-ä¿¡é Œæ§ã¯9ãã€ã³ïŒã¯ããããªãã®ç®ã¯ããªããæ¬ºããªã-99.999999999ïŒ ïŒã ãã¡ã€ããã€ã³ã¯è¯ãææšãšèŠãªãããŸãïŒããŠã³ã¿ã€ã -幎é5.2åïŒã ã»ãã³ãã€ã³ã¯ã»ãšãã©éæã§ããŸãã...ããããç§ãã¡ã¯ãªããšã9ã«éããŸããã
äœã«æè¬ããŸããïŒ å ±æã¡ã¢ãªã®äžè¶³ãšé«åºŠãªã¯ã©ãã·ã¥ãªã«ããªã¢ãã«ã ãã®ãã¹ãŠã«ã€ããŠã¯ãç§ã®åå£«è«æã§è©³ããèªãããšãã§ããŸãã
ErlangãŠãŒã¶ãŒã§ããïŒ
- ã察象ãã«ãã人
ã¹ã¿ãŒãã¢ãã
ãšãªã¯ãœã³
翌 ã3Dã¢ããªã³ã°ãœãããŠã§ã¢
ejabberdãjabber / XMPPçšã®IMãµãŒããŒ
tsungãåæ£è² è·ãã¹ãçšã®ãã«ããããã³ã«ããŒã«
yawsã髿§èœWebãµãŒããŒ
äœå人ãã®ããã«ãŒã倢ãèŠãŠããïŒãããããªãã£ã¹ã§ã§ãããšããã®ã«ã
Erlangã¯è€éã§ããïŒ
ãã ãããã圌ã¯çããã§ãã
Erlangã«ã¯ãç°¡åãªåŠç¿ã®ããã®Cã®ãããªæ§æãã¯ãããŸããã ããªããžã§ã¯ãæåãã§ã¯ãªããã倿°ããæãããã颿°åããã°ã©ãã³ã°èšèªãã§ãã
ããã¯éåžžã«äžæå¿«ãªãŽãã§ã-ãããŠã衚é¢çãªç¥äººã®åŸãæ°ãããŠãŒã¶ãŒãæããããŸãã ãããé¢çœãã®ã¯ããããéåžžã«å°ãããŠã·ã³ãã«ãªèšèªã§ããããšã§ãã
ãããããErlangã®ã³ãŒããã©ã®ããã«èŠãããçåã«æã£ãŠããã§ãããã ãã®èšèªã¯ããã¿ãŒã³ãããã³ã°æ§æã®åºç¯ãªäœ¿çšãåæãšããŠããŸããããã«ãErlangã³ãŒãã®å°ããªäŸã瀺ããŸãïŒããã«é¢ããæ°ããæ¬ããåŒçšïŒã
-ã¢ãžã¥ãŒã«ïŒãžãªã¡ããªïŒã
-exportïŒ[ãšãªã¢/ 1]ïŒã
ãšãªã¢ïŒ{rectangleãWidthãHt}ïŒ-> Width * Ht;
é¢ç©ïŒ{squareãX}ïŒ-> X * X;
ãšãªã¢ïŒ{circleãR}ïŒ-> 3.14159 * R * R
ã³ã³ãã€ã«ããŠãErlangã·ã§ã«ã§å®è¡ããŸãã
1> cïŒãžãªã¡ããªïŒã
{OKããžãªã¡ããª}
2>ãžãªã¡ããªïŒé¢ç©ïŒ{rectangleã10ã5}ïŒã
50
3>ãžãªã¡ããªïŒãšãªã¢ïŒ{circleã1.4}ïŒã
6.15752
äžè¬ã«ãç°¡åã§ã...åãããšãè¡ãJavaã³ãŒããæ¬¡ã«ç€ºããŸãã
æœè±¡ã¯ã©ã¹Shape {
æœè±¡äºéé åïŒïŒ;
}
Circle extends Shape {
æçµçãªäºéååŸ;
åïŒäºéååŸïŒ{this.radius = radius; }
double areaïŒïŒ{Math.PIãè¿ã* radius * radius; }
}
class Rectangle extends Shape {
æçµããã«ht;
æçµçãªããã«å¹ ã
é·æ¹åœ¢ïŒ2åã®å¹ ã2åã®é«ãïŒ{
this.ht =é«ã;
this.width = width;
}
double areaïŒïŒ{æ»ãå¹ * ht; }
}
ã¯ã©ã¹Square Shapeãæ¡åŒµããŸã{
æçµçãªäž¡é¢;
æ£æ¹åœ¢ïŒäž¡é¢ïŒ{
this.side = side;
}
ããã«ãšãªã¢ïŒïŒ{æ»ãåŽ*åŽ; }
}
ãã©ã³ã¹ã¬ãŒã¿ãŒãã ïŒpingãšpongã®2ã€ã®ããã»ã¹ãäœæããäºãã«æ°åpingããErlangã³ãŒãïŒ
-ã¢ãžã¥ãŒã«ïŒpingpongïŒã
-exportïŒ[start / 0ãping / 2ãpong / 0]ïŒã
pingïŒ0ãPong_PIDïŒ->
Pong_PIDïŒ çµãã£ã
ioïŒåœ¢åŒïŒãpingçµäºãnãã[]ïŒ;
pingïŒNãPong_PIDïŒ->
Pong_PIDïŒ {pingãselfïŒïŒ}ã
åãåã
ãã³ãã³->
ioïŒåœ¢åŒïŒãpingãåä¿¡ããpongãnãã[]ïŒ
çµãã
pingïŒN-1ãPong_PIDïŒã
ãã³ïŒïŒ->
åãåã
çµäº->
ioïŒãã©ãŒãããïŒ "Pong finishedãn"ã[]ïŒ;
{pingãPing_PID}->
ioïŒåœ¢åŒïŒãPongåä¿¡pingãnãã[]ïŒã
Ping_PIDïŒ ãã³ãã³
ãã³ãã³ïŒïŒ
çµããã
éå§ïŒïŒ->
Pong_PID = spawnïŒpingpongãpongã[]ïŒã
spawnïŒpingpongãpingã[3ãPong_PID]ïŒã
çµè«ïŒ
1> cïŒãã³ãã³ïŒã
{OKããã³ãã³}
2> ãã³ãã³ïŒéå§ïŒïŒã
<0.36.0>
ãã³ãã³ã¯pingãåä¿¡ããŸãã
Pingã¯ãã³ãã³ãåãåããŸãã
ãã³ãã³ã¯pingãåä¿¡ããŸãã
Pingã¯ãã³ãã³ãåãåããŸãã
ãã³ãã³ã¯pingãåä¿¡ããŸãã
Pingã¯ãã³ãã³ãåãåããŸãã
pingãçµäºããŸãã
ãã³ãã³å®æ
Erlangã¯ã©ãã§å ¥æã§ããŸããïŒ
erlang.orgããããŠã³ããŒãããŸã
ãæ³šæ 翻蚳è ïŒå ã®èšäºã®çµããããã®ãªã³ã¯ã®æ
- ã察象ãã«ãã人