ã¢ã¯ã¿ãŒã¢ãã«ãšã¯äœã§ããïŒ
ã¢ã¯ã¿ãŒã¯äžé£ã®ãã©ã¯ãã£ã¹ãéçºæ¹æ³è«ãã¢ãŒããã¯ãã£ãã¿ãŒã³ãããŒã±ãã£ã³ã°ã®åãã§ããïŒ
ç§ã®å€§åŠã®ã³ãŒã¹ã§ã¯ãå€ãã®äººãšåæ§ã«ãèšç®å¯èœæ§ã®æŠå¿µã¯ãã¥ãŒãªã³ã°ããã³ãã¹ããã·ã³ã«ãã£ãŠå®çŸ©ãããŸããã ãã·ã³ã«ã¯ç¶æ ããããŸã-ããŒãå ã®ãã¹ãŠã®ã»ã«ã®å€ã®ã»ããã§ãã èšç®ããã»ã¹ã¯äžé£ã®ãã·ã³ã¹ãããã§ããããããããç¶æ ãå€æŽããŸãã ãã·ã³ã®åã¹ãããã¯ã1ã€ã®äžå¯åãªã¢ã¯ã·ã§ã³ïŒæäœïŒã®ããã©ãŒãã³ã¹ã§ãã ãããåŸæ¥ã®èšç®ã¢ãã«ãšåŒã³ãŸãã
ãã®ãããªèšç®ã®è§£éã¯ã1ã€ã®åãæç¹ã§1ã€ã®ååæäœã®ã¿ãå®è¡ã§ããå Žåãã°ããŒãã«æéã®æŠå¿µã«ã€ãªãããŸãã ãã®ããããã£ã¯ãåºæ¬çã«ã·ã³ã°ã«ããã»ããµãã·ã³ã§ã®ãã«ãã¹ã¬ããããã°ã©ãã³ã°ã®å Žåã«ãããŸããŸãªåæããªããã£ãã®ããããã£ã蚌æããããã«äœ¿çšãããŸããããšãã°ãæ¬Gregory R. Andrews Fundamentals of multi-threadedãparallel and distributed programming ã
ãã«ãããã»ããµãã·ã³ãŸãã¯åæ£ã·ã¹ãã ã®å Žåãéåžžãã°ããŒãã«æéã®èŠä»¶ã¯åãå ¥ããããŸããã ãããã£ãŠãèšç®å¯èœæ§ã®æŠå¿µã䞊åèšç®ã®å Žåã«äžè¬åããå¿ èŠããããŸãã ãããã®äžè¬åã®1ã€ã¯ãã¢ã¯ã¿ãŒã¢ãã«ã§ãã
ã©ã®ããã«ãã¹ãŠãå§ãŸããŸãããïŒ
é ã70幎代ã«ãã®ã¢ãã«ãç»å Žããã®ã¯ã次äžä»£ãã·ã³ããã«ãããã»ããµã«ãªããããã°ã©ã ã«äººå·¥ç¥èœããããšãã匷ã信念ã«ãããã®ã§ãã 1973幎ã ã«ãŒã«ãã¥ãŒã€ãã ãããŒã¿ãŒãã·ã§ãããããã³ãªãã£ãŒãã·ã¥ã¿ã€ã¬ãŒã¯ãã 人工ç¥èœã®ããã®ãŠãããŒãµã«ã¢ãžã¥ã©ãŒã¢ã¯ã¿ãŒãã©ãŒããªãºã ããšããèšäºãçºè¡šããŸããã ãã®èšäºã§ã¯ãã¢ã¯ã¿ãŒã®æŠå¿µã玹ä»ããå€ãã®ã¢ããªã±ãŒã·ã§ã³ã¯ã©ã¹ãã¢ã¯ã¿ãŒã¢ãã«ã®ç¹æ®ãªã±ãŒã¹ã§ããããšã説æããŸããã ã¡ãªã¿ã«ãä»å¹Žã¯40åšå¹Žã§ããïŒ
ã¢ã¯ã¿ãŒã¯ãåä¿¡ããã¡ãã»ãŒãžã«å¿çããèšç®ãšã³ãã£ãã£ã®æ®éçãªæœè±¡åã§ã
- ä»ã®ã¢ã¯ã¿ãŒã«æéæ°ã®ã¡ãã»ãŒãžãéä¿¡ã§ããŸããã
- æéæ°ã®ä¿³åªãäœæãã
- 次ã®ã¡ãã»ãŒãžãåä¿¡ããåäœãéžæããŸãã
ã¢ã¯ã¿ãŒã¯ãåŸæ¥ã®ã³ã³ãã¥ãŒãã£ã³ã°ã¢ãã«ãšæ ¹æ¬çã«ã©ã®ããã«ç°ãªããŸããïŒ
ãããã®éãã¯ãé»è©±ãšã¡ãã»ãŒãžãã¡ãŒã«ã§éä¿¡ããå Žåãšåãã§ãã æåã®å ŽåïŒãããã¯äžçæéã«åºã¥ããèšç®ã§ãïŒãè€æ°ã®äººã1ã€ã®é»è©±çªå·ã«å°éããããšãããšãå ±æå ±æãªãœãŒã¹ïŒåä¿¡è ïŒãžã®ã¢ã¯ã»ã¹ãæ±ããŠç«¶åãå§ããŸãã Office PBXãè€æ°åç·é»è©±ãã³ãŒã«ã»ã³ã¿ãŒãœãããŠã§ã¢-ããããã¹ãŠïŒåæããªããã£ãã«é¡äŒŒïŒã¯ãçä¿¡ã³ãŒã«ã®å¹ççãªåŠçãä¿èšŒããããã«å¿ èŠã§ãã ã¡ãŒã«ã®å Žåãã¬ã¿ãŒã®éä¿¡è ïŒä¿³åªïŒã¯ãä»ã®éä¿¡è ãšã®ã¢ã¯ã·ã§ã³ã調æŽããå¿ èŠããããããã¬ã¿ãŒãåä¿¡è ã«é æ»ãªãéä¿¡ããŸãã ãããïŒ ãã ããåä¿¡è ããã€æçŽãèªããã¯ããããŸããã
俳åªçè«ã®éçºã«é¢äžããŠããã®ã¯èª°ã§ããïŒ
2ã€ã®æ倧ã®å°é家ã¯ãã«ãŒã«ãã¥ãŒã€ãããšåŒåã®ã¬ã«A.ã¢ã¬ã§ãã ãã¥ãŒã€ããã¯äž»ã«ãä»ã®èšç®ã¢ãããŒããã¢ã¯ã¿ãŒã¢ãã«ã®ç¹æ®ãªã±ãŒã¹ã§ãããšããå³å¯ãªæ£åœæ§ãæ±ããã¢ã¬ã¯åæ£ã·ã¹ãã ã®ããŸããŸãªã¢ããªã±ãŒã·ã§ã³ãæ±ããŸãã
äž»ãªçµæ
çµæèªäœã¯ããããå¥ã®å€§ããªèšäºã®ãããã¯ãªã®ã§ãèŠçŽãšãœãŒã¹ãžã®ãªã³ã¯ã®ã¿ãæäŸããŸãã
ã¢ã¯ã¿ãŒã¢ãã«ã®ã€ãã³ãã¯ãéšåçã«é åºä»ããããã»ããã圢æããŸãã Ordering LawsãšåŒã°ãããã®ã»ããã®å ¬çã¯ã Actors and Continous Functionals ïŒ1977ïŒã§Carl HewittãšHenry Bakerã«ãã£ãŠèª¬æãããŸããã ããªãã®æ°ã®å ¬çããããŸããããããã®ãã€ã³ãã¯ãã¢ã¯ã¿ãŒã¢ãã«ãå®éã®äœ¿çšã«é©ããŠããããšãæ£åœåããããšã§ãã
1985幎ãGul A. Aghaã¯ããã¥ãŒã€ããã®ææ®ã®äžãè«æã ActorsïŒA Model of Concurrent Computations in Distributed Systemsããæè·ããŸããã Aghaã®è«æã§ã¯ãã¢ã¯ã¿ãŒããµããŒãããæå°éã®ããã°ã©ãã³ã°èšèªã®æ§æãšãã¢ã¯ã¿ãŒã解決ããããã®äžé£ã®å žåçãªã¿ã¹ã¯ãšæ¹æ³ã«ã€ããŠèª¬æããŠããŸãïŒç¬¬4ç« ïŒã
ã¢ã¯ã¿ãŒã¢ãã«ã®å®è£ ã«å¯Ÿããå®çšçãªã¢ãããŒããžã®ãã1ã€ã®éèŠãªè²¢ç®ã¯ãPhillip HallerãšMartin Oderskyã«ãã Inversion Controlã®ãªãã€ãã³ãããŒã¹ããã°ã©ãã³ã°ã®èšäºã§ãã Scalaã§äœ¿çšãããã¢ã¯ã¿ãŒã·ã¹ãã ã®éçºã«å¯Ÿããæ°ããã¢ãããŒããææ¡ããŸããã ãã®æ¬è³ªã¯ãçµæã®äžŠåèšé²ããã°ã©ã ããéåžžã®é 次ãããã°ã©ãã³ã°ã«éåžžã«äŒŒãŠããããšã§ãã
ããšãã°ãCïŒã®éçºçšã«åããã¹ãéžæãããŸããã CïŒ5ã®ã¢ã¯ã¿ãŒã¯æ¬¡ã®ããã«ãªããŸãã
static async Task SavePage(string file, string a) { using (var stream = File.AppendText(file)) { var html = await new WebClient().DownloadStringTaskAsync(a); await stream.WriteAsync(html); } }
ããã§ã awaitããŒã¯ãŒãã¯ã察å¿ããã¡ãœãããéåæã«åŒã³åºããå¿çãåä¿¡ãããšãã«èšç®ã«æ»ãããšãæå³ããŸãã
2011幎ãGul A. AgaãšKarmaniã¯ãã¢ã¯ã¿ãŒã·ã¹ãã ã®å®è£ ã«ãããé·å¹Žã®çµéšããŸãšããæãäžè¬çãªå®è£ æ¹æ³ã説æããŸããã 圌ãã¯åœŒãFog CutterãšåŒãã ã 確ãã«ããã¥ãŒã€ããã¯ãã®ãããªã¢ãŒããã¯ãã£ãç¹°ãè¿ãæ¹å€ããŠããŸããããšãã°ã ãããšããã§ãæ¹å€ã®æ¬è³ªã¯ããããã¢ã¯ã¿ãŒã¢ãã«å šäœãå®å šã«å®è£ ããªãã¢ãã«ã®ç¹å®ã®ã±ãŒã¹ã®å¯èœãªå®è£ ã®1ã€ã«ãããªããšããäºå®ã«èŠçŽãããŸãã
å®éã 俳åªã»ãã³ãã£ã¯ã¹ã®åºç€ã®è«æphdã§ããŠã£ãªã¢ã ãã¥ã°ã©ã¹ã¯ãªã³ã¬ãŒïŒã«ãŒã«ãã¥ãŒã€ããã®åŠçïŒã¯ã俳åªã¢ãã«ã«ã¯ç¡éã®é決å®æ§ãããããã¥ãŒãªã³ã°ãã·ã³ã¯é決å®æ§ã«å¶éãããŠããããšã瀺ããŠããŸãã ãã®ããšããã圌ãšã«ãŒã«ãã¥ãŒã€ããã¯ãã¢ã¯ã¿ãŒã¢ãã«ã«ã¯å®è£ ã§ããããã¥ãŒãªã³ã°ãã·ã³ã«ã¯å®è£ ã§ããªãã¢ã«ãŽãªãºã ããããšçµè«ä»ããŠããŸãã ãããã£ãŠããã¥ãŒãªã³ã°ã®èšç®å¯èœæ§ãå®è£ ãããéåžžã®ãã³ã³ãã¥ãŒã¿ãŒã«ã¢ã¯ã¿ãŒã¢ãã«ãå®è£ ããããšãããšãã¢ã¯ã¿ãŒã¢ãã«ã®ç¹å®ã®ã±ãŒã¹ã®ã¿ãå®è£ ããããšããäºå®ã«ã€ãªãããŸãã
![](https://habrastorage.org/getpro/habr/post_images/9da/4e8/75c/9da4e875c81f14851caa0b5c48cb075a.png)
ã¹ããŒã³äžæ¯...
1988幎ãPrologèšèªã®äœæè ã§ããRobert Kowalskiã¯ããèšç®ã¯è«ççãªçµè«ã«ãã£ãŠã°ã«ãŒãåã§ããããšããè«æãæå±ããŸããã ããã¯ãé次èšç®ããã³äžéšã®äžŠåã¢ãã«ã«åœãŠã¯ãŸããŸãã ãããã1988幎ã«ããã¥ãŒã€ãããšã¢ã¬ã¯ã Guarded Hornå¥ã®èšèªã®èšäºãçºè¡šããŸããããããã¯æŒductiveçã§è«ççã§ããïŒ ãã¢ã¯ã¿ãŒã¢ãã«ã®å Žåãããã¯æ¬¡ã®æå³ã§çå®ã§ã¯ãªãããšã瀺ããŸãããããã°ã©ã ã®çŸåšã®ç¶æ ã¯ãåã®ç¶æ ããæŒductiveçã«åŸããªãå ŽåããããŸãã ãããå®éã«æå³ããããšïŒã¢ã¯ã¿ãŒã¢ãã«ã«åºã¥ãããã°ã©ã ã®ãããã°ã¯ãã·ãŒã±ã³ã·ã£ã«ããã°ã©ã ã®å Žåã»ã©å¹æçã§ã¯ãããŸããã
ãªãé¢æ°åèšèªãªã®ãïŒ
䞊åããã°ã©ãã³ã°ã«é¢ããŠã¯ããªãé¢æ°åèšèªãçºçããã®ã§ããïŒ ãã®è³ªåã«çããããã«ãå°ããªC ++ã®äŸãèããŠã¿ãŸãããã
int j = 0; for(int i =0; ; ++i) { ++j; }
ãã®ã³ãŒãã«ã¯I / Oæäœãå«ãŸããŠããªããããå¥ã®ã¹ã¬ãããåãããã»ããµã³ã¢ã§ãã®ã³ãŒããå®è¡ã§ããããã«ããã«ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã¹ã¬ããã¹ã±ãžã¥ãŒã©ãã¹ã¬ããã®åãæ¿ãã匷å¶ããã®ãåŸ ã€å¿ èŠããããŸãã ããã¯ãã·ã¹ãã é¢æ°ãå¥ã®ã¹ã¬ããã§åŒã³åºããããšãããŸãã¯ã¿ã€ããŒããã®ã€ãã³ãã«ãã£ãŠçºçããå¯èœæ§ããããŸãã ããã©ã«ãã§ã¯ãã¿ã€ããŒã€ãã³ãã¯15.6 msããšã«1åçºçãããã®æéã1 msã«ççž®ããªãçç±ã説æããŸãã åœä»€åã®ã¹ã¿ã€ã«ã䜿çšãããšãããã»ããµã®ãã¹ãŠã®ãªãœãŒã¹ãåç¬ã§äœ¿çšããããšããã貪欲ãªãããã°ã©ã ãäœæã§ããŸãããããã«åœ±é¿ãäžããæ段ã¯éãããŠããŸãã
ãã®ããã°ã©ã ã¯ãæ«å°Ÿååž°ã«ãã£ãŠæžãæããããŸãã
void cycle(int i, int& j) { ++j; cycle(i+1, j); }
ãã®ãããªèªç±ãªè§£éã®ããã®é¢æ°åããã°ã©ãã³ã°èšèªã®ãã¡ã³ãèš±ããŠãã ãããããããç§ã®ç®æšã¯ã¢ã€ãã¢ãå®èšŒããããšã ãã§ãã
ã«ãŒãã®ç¹°ãè¿ãã¯ãé¢æ°åŒã³åºãã«çœ®ãæããããŸããã åé¢æ°ã®åŒã³åºããã€ã³ãã§ãã³ã³ãã€ã©ãã³ãŒããåã蟌ã¿ãçŸåšã®ã¹ã¬ããã®å®è¡ã«å¿ èŠãªæéãèšç®ããå¿ èŠã«å¿ããŠå¥ã®ã¹ã¬ããã«åãæ¿ãããšããŸãã ããã§ãããç§ä»¥å ã«1ã€ã®ã¹ã¬ããããå¥ã®ã¹ã¬ããã«åãæ¿ããããšãã§ããŸãã åãèãã«ãããããšãã°Erlangã®ããã«è»œéã¹ã¬ãããå®è£ ã§ããŸãã
ãããã®ããããã£ã®å Žåãé¢æ°åèšèªã¯ã䞊ååŠçãšãªã¢ã«ã¿ã€ã ã®åå¿ãå¿ èŠãªå Žæã§äœ¿çšãããšäŸ¿å©ã§ãã
åœä»€åèšèªã®ãªãããªããŒã·ã§ã³
éåžžã«é«éãªå¿çãå¿ èŠãªå Žåãé¢æ°åèšèªã¯ç«¶åãè¶ ããŠããŸãããèŠæ±ã®åŠçäžã«ããŒã¿ããŒã¹ã«ç§»åããå¿ èŠããããããããã®å¿çæéãçŽ50-100ããªç§ã§ããå ŽåããŸãã¯å€ãã®èšç®ãå®è¡ããå¿ èŠãããå Žåãã€ãŸããå€ãã®é¢æ°åŒã³åºããè¡ãå Žåã å®è¡æéã®èšç®ãšååŒã³åºããžã®ã¹ã¬ããã®åãæ¿ãã«é¢é£ãããªãŒããŒããããæãããããã®å Žåã¯åœä»€åèšèªãããå¹æçã§ãã ããã確èªããã«ã¯ã benchmarksgame.alioth.debian.orgãã芧ãã ããã ãã®ãµã€ãã§ã¯ãç°ãªãèšèªã§äœæãããããã°ã©ã ã®ããã©ãŒãã³ã¹ã枬å®ããåãåé¡ã®è§£æ±ºçãæ¯èŒããããšãææ¡ããŠããŸãã æ¯èŒã®äŸã次ã«ç€ºããŸããreverse -complement ã mandelbrot ã regex-dna ã pidigits ã
ãŸããäºçŽãè¡ããŸãããŸãããããã¯åãªããã¹ãã§ããããŸãçå£ã«åãæ¢ããå¿ èŠã¯ãããŸããã äžæ¹ããæ°ã«å ¥ãã®ããã°ã©ãã³ã°èšèªã®ç¶æ³ã«æºè¶³ããŠããªã人ã¯ãèªåã®è§£æ±ºçãææ¡ããåã®ãã©ã³ã¹ãå€ããããšãã§ããŸãã 第äºã«ãç§ã¯ãåœä»€åèšèªãæ確ãªå©ç¹ã§åã€ãªã³ã¯ã®ã¿ãåŒçšããŸããããªããªããç§ã®ç®æšã¯ã䞊ååŠçã®ç·šæã«é¢é£ãããªãŒããŒãããã«é¢ããããã€ãã®ãã©ã°ã©ãã§è¡šãããã¢ã€ãã¢ã説æããã ãã ããã§ãã
å¥ã®èå³æ·±ã芳å¯çµæã¯ãåœä»€åèšèªã§ã®ã¢ã¯ã¿ãŒã¢ãã«ã®å®è£ ã§ããéåžžã¯ãæ©èœçãªErlangãè¶ ãããã¹ãã§ãã ç¹°ãè¿ããŸãããç§ã¯äºçŽãããŸããErlangãã³ã³ãã¥ãŒãã£ã³ã°ãã€ãŸãå³åº§ã®å¿çãå¿ èŠãªå ŽæãèŠæã§ããããšã¯èª°ããç¥ã£ãŠããŸãããããã¯ãªãŒããŒãããã®èããããäžåºŠç¢ºèªããã ãã§ãã
ã¡ã¿ãã¡ãŒã1ã€æããŸããããé·è·é¢ã©ã³ããŒããã©ãœã³ã©ã³ããŒãçè·é¢ã©ã³ããŒãã¹ããªã³ã¿ãŒãããŸãã ããã€ãã¯å¹³åé床ãäœãïŒã¹ããªã³ã¿ãŒã«æ¯ã¹ãŠïŒèä¹ æ§ãå¿ èŠãšãã2ã€ç®ã¯ïŒãã©ãœã³ã©ã³ããŒã«æ¯ã¹ãŠïŒéåžžã«çãæéã§æ倧ã®ããã©ãŒãã³ã¹ãå¿ èŠãšããŸãã æ®å¿µãªãããçèãšã¯ãŸã£ããç°ãªãç¹æ§ãå¿ èŠãªãããã¹ããªã³ããšãã©ãœã³ã®è·é¢ã§åçã«é«ãçµæã瀺ãããšã¯ãåã«ççåŠçã«äžå¯èœã§ãã ãããã®ã©ã³ããŒã¯ããã®æ°åã«ãã£ãŠãéç«ã£ãŠããŸãããã©ãœã³ã©ã³ããŒã¯ãã©ã€ã§ç骚ãããŸãããã¹ããªã³ã¿ãŒã¯ã¢ã¹ã¬ããã¯ã§çè質ã§ãã
第5äžä»£ã®ã³ã³ãã¥ãŒã¿ãŒ
䞊åããã°ã©ãã³ã°ãããã»ã©åçŽã§ã¯ãªããšãããã1ã€ã®ç¢ºèªã¯ã第5äžä»£ã®ã³ã³ãã¥ãŒã¿ãŒãäœæãããããžã§ã¯ãã§ãã
åäžçŽã®80幎代ãæ¥æ¬ã§ã¯ç¬¬5äžä»£ã®ã³ã³ãã¥ãŒã¿ãŒãäœæããè©Šã¿ãè¡ãããŸããã ãã®ãããžã§ã¯ãã¯ãæªæ¥ã䞊åã³ã³ãã¥ãŒãã£ã³ã°ã倧èŠæš¡ããŒã¿ããŒã¹ã倧èŠæš¡ããŒã¿ããŒã¹ã®è«çåŠçã«ãããšãã信念ã«ãã£ãŠåã³éå§ãããŸããã
80幎代ã®äŸ¡æ Œã§5åãã«ãè²»ãããŸããã ãããžã§ã¯ãã¯10幎ç¶ããå®å šã«å€±æããŸããïŒ äžŠåããã°ã©ã ã¯ãã·ã³ã°ã«ã¹ã¬ããã®ããã°ã©ã ãšæ¯ã¹ãŠããã©ãŒãã³ã¹ã«å€§ããªå©ç¹ã¯ãããŸããã§ããã ãããŠäœå幎ãã®éãIntelã¯ã·ã³ã°ã«ã¹ã¬ããããã»ããµãæã«å ¥ããŠããŸããã ãããŠãããã»ããµã®è£œé æ¥è ãã¯ããã¯é床ã®å¢å ã«é¢ããæè¡çãªå¶éã«çŽé¢ãããšãã®ã¿ã䞊ååŠçã®ã¢ã€ãã¢ãåã³äººæ°ãéãå§ããŸããã
ã¢ã¯ã¿ãŒã¢ãã«ã®å®è£ ãžã®ã¢ãããŒã
äžèšã®ããã©ãŒãã³ã¹ã®åé¡ãããã³ãã¥ãŒã€ããããã¹ã¬ãããã¡ãã»ãŒãžãã¥ãŒãããç¥ãããŠããæ§é ãã¢ã¯ã¿ãŒã¢ãã«ã®äžéšã§ã¯ãªãããšãäžè²«ããŠåŒ·èª¿ããŠãããšããäºå®ã¯ãããŸããŸãªã¢ã€ãã¢ãšå®è£ æ¹æ³ã«ã€ãªãã£ãŠããŸãã
3ã€ã®æ¹åãåºå¥ãããŸãã
- æ°ããããã°ã©ãã³ã°èšèªã ãã®ãããã¯é¢æ°åèšèªã«å æãããŠããŸãã 代衚çãªäŸïŒã¢ãŒã©ã³ã
- æ¢åã®èšèªã®æ¡åŒµã ããšãã°ãScalaãCïŒã OderskyãšHallerã®ã¢ã€ãã¢ã䜿çšãããŸããããã«ãããã銎æã¿ã®ããã¹ã¿ã€ã«ãã§äžŠåããã°ã©ã ãäœæã§ããŸãã
- æ¢åã®èšèªã®ã©ã€ãã©ãªã
çµè«ãšããŠã2ã€ã®èŠ³å¯
䞊åã³ã³ãã¥ãŒãã£ã³ã°ã®ä¿¡å¿µã
70幎代ã®èšäºãèªã¿ãŸããå°æ¥ã¯ãã«ãããã»ããµã·ã¹ãã ã人工ç¥èœã«ãããŸãã 80幎代ïŒæªæ¥ã¯ãã«ãããã»ããµã·ã¹ãã ã倧èŠæš¡ããŒã¿ããŒã¹ãè«çããŒã¿åŠçã«å±ããçŸåšïŒæªæ¥ã¯å€æ°ã®ã³ã¢ãããã°ããŒã¿ãã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ãããŒã¿ãã€ãã³ã°ãåããããã»ããµã«å±ããŸãã 40幎åã®çŸåšã®ç¶æ³ãšäºæž¬ãé¡æšããããšã¯é£ãããããŸããã ããã¯ãã¹ãŠããããšãã³ãžã³ã«é¢ããåæ©ã¥ãã«é¢ãããã¬ãŒãã³ã°ã®äŸã«äŒŒãŠããŸãã ç§ãã¡ã¯å€§åãªç®æšã«è¿ã¥ãããã®äžæ©ãèžã¿åºããç®æšã«è¿ã¥ãã«ã€ããŠç®æšã¯é ããããŸããããããç§ãã¡ãçºå±ããåé²ãããŸãã
äžæ¹ã§ç¡èŠããä»æ¹ã§æ¹å€ã
ç§ãåããŠä¿³åªã®ã¢ãã«ã«åºäŒã£ããšããããã¯æ¯èŒçæè¿ã§ããã ç§ã¯è³ªåããããŸãã-ãªãç§ã¯ä»¥å圌女ã«ã€ããŠç¥ããŸããã§ããã ç§ã¯ç¹ã«ã¿ãã³ããŠã ãã°ã¬ãŽãªãŒã»ã¢ã³ããªã¥ãŒã¹ã äŒæ¥ã¢ããªã±ãŒã·ã§ã³ã®çµ±åãã¿ãŒã³ãªã©ã®æ¬ãèŠãŸãã-ãããã¯ãã¹ãŠã¡ãã»ãŒãžã³ã°ã®æŠå¿µã«å€ãã®ã¹ããŒã¹ãäžããŸããã誰ã俳åªãšãã¥ãŒã€ããã®ã¢ãã«ã«ã€ããŠäžèšãèšããŸããã ãããããã¥ãŒã€ãããã¢ã¬ãèªãã ãšããèšç®ã®äŒçµ±çãªã¢ãã«ãæ¹å€ããããšã«å€ãã®æéãè²»ããããŠããŸãã 俳åªã¯åã«ç¡èŠããŠããããã§ãã ããã°ã©ãã³ã°ã§ãåãããšãèµ·ãããŸããåœä»€åããã°ã©ãã³ã°ã®äžçã§ã¯ãé¢æ°åã«ã€ããŠã¯äºå®äžäœãç¥ãããŠããŸãããå°ãªããšãæè¿ãŸã§ãé¢æ°åããã°ã©ãã³ã°ã®äžçã§ã¯éé£ãããŠããããã§ãã ãã¶ã誰ãããããèµ·ãã£ãçç±ãèããŠããã®ã§ããããïŒ
次ã¯ïŒ
ãã®èšäºã«èå³ãããå Žåã¯ã次ã®ãããªäžé£ã®èšäºãæžãäºå®ã§ãã
- ã¢ã¯ã¿ãŒãšé£ç¶æ©èœã®ã¢ã¯ã¿ãŒ ã
- ã ã¢ã¯ã¿ãŒïŒåæ£ã·ã¹ãã ã«ãããåæèšç®ã®ã¢ãã«ãã§æ瀺ãããã¢ã€ãã¢ã®èŠçŽGul A. Aghaè«æã
- å転å¶åŸ¡ã¢ãããŒãã䜿çšããOdersky ã€ãã³ãããŒã¹ããã°ã©ãã³ã°ã®é·æãšçæã
- ã¹ããŒã³1æ¯ã«æ»ã£ãŠ...-ãã§ã«å®è£ ãããå®éã«ãã¹ããããŠãã2ã3ã®ç¬èªã®ã¢ã€ãã¢ãã¢ã¯ã¿ãŒã¢ãã«ã«åŸã£ãŠå®è£ ãããã·ã¹ãã ã®ä¿¡é Œæ§ãšãã©ãŒã«ããã¬ã©ã³ã¹ãåäžãããæ¹æ³ã
èšäºã«ææ¡ãããã°ãç§ã¯èããŠããããã§ãã
PS
ãã®èšäºã¯ç§ã®ã¬ããŒãã®1ã€ã«åºã¥ããŠããŸã
ç©èªã¯ã俳åªãã5åã»ã©ã§å§ãŸããŸãã