
èšäºã®æåã®éšåã§ã¯ãããŒã¿ãããŒã¢ãŒããã¯ãã£ãšå¶åŸ¡ãããŒã¢ãŒããã¯ãã£ã®äž»ãªéãã調ã¹ãæåã®ããŒããŠã§ã¢ããŒã¿ãããŒãã·ã³ãç»å Žãã1970幎代ã«ãã¢ãŒãè¡ããéçããã³åçã¹ããªãŒãã³ã°èšç®ã¢ãã«ãæ¯èŒããŸããã ä»æ¥ã¯ãåŒãç¶ãããŒã¿ãããŒã¢ãŒããã¯ãã£ã玹ä»ããŸãã ç«ãžããããïŒ
äžèšã«å ããŠãåçã¹ããªãŒãã³ã°ã·ã¹ãã ã§ã®ã«ãŒãå®è£
ãµã€ã¯ã«ã®ç·šæã®äŸã«é¢ããã³ã³ããã¹ãã®äœæ¥ããã詳现ã«æ€èšããŠã¿ãŸãããã ã³ã³ããã¹ãã¯ãããŒã¿ãããŒã°ã©ãããŒãã®ã€ã³ã¹ã¿ã³ã¹ãäžæã«èå¥ããããŒã¯ã³æ§é å ã®ãã£ãŒã«ãã§ããããšãæãåºããŠãã ããã ã«ãŒãã®å Žåãã³ã³ããã¹ãã¯å埩æ°ã«ãªããŸãã
äŸ1.ãã£ããããæ°
ãã£ããããæ°ã®èšç®ã¯ãå埩ãããŒã¿ã«äŸåãããµã€ã¯ã«ã®å žåçãªäŸã§ãã Nçªç®ã®æ°å€ã¯ãïŒN-1ïŒçªç®ãšïŒN-2ïŒçªç®ã®åèšã§ãã
int fib [MAX_I]; fib [0] = 1; fib [1] = 1; for (i = 2; i < MAX_I; i++) { fib [i] = fib [i-1] + fib [i-2]; }
èšç®ã®ãããŒã°ã©ããäœæããŸãã

ã°ã©ãã¯ãã³ã³ããã¹ãå€ïŒããŒãç»åã®äžã®æ°åïŒã®ã¿ãç°ãªãïŒMAX_I-2ïŒåäžã®ããŒãã§æ§æãããŠããããšãç°¡åã«ããããŸãã ããŒãã®ããžãã¯ïŒæ¬äŒŒã³ãŒãïŒã¯æ¬¡ã®ããã«ãªããŸãã
fib (: A, B) i = _(A); result = _(A) + _(B); _ (: result, : host, : i); (i < MAX_I-1) _ (: result, : fib, : i+1); _ (: result, : fib, : i+2); fib
ããã°ã©ã ãéå§ããã«ã¯ã3ã€ã®ããŒã¯ã³ãéä¿¡ããå¿ èŠããããŸãã
_ (: 1, : fib, : 2); _ (: 1, : fib, : 2); _ (: 1, : fib, : 3);
ã¹ããªãŒãã³ã°ããã°ã©ã ã®å®è¡ã®çµæãšããŠãããŒã¯ã³ã®ã»ããããã¹ãã«éä¿¡ãããŸããåããŒã¯ã³ã«ã¯ãã³ã³ããã¹ããã£ãŒã«ãã«ãã£ããããæ°ããããŒã¿ãã£ãŒã«ãã«ã¯æ°èªäœãå«ãŸããŸãã å¥ã®ããŒã¯ã³ïŒã°ã©ãäžã§ç Žç·ã§ããŒã¯ãããŠããïŒããã©ãã«ããéä¿¡ãããªãããšã«æ³šæããŠãã ãããããæ£ç¢ºã«ã¯ãããŒã¯ã³ãšãã¢ã«ãªã£ãŠããããã«ããŒãã®å®è¡ãéå§ããŸããã ããŒãã³ãŒãã«å¥ã®æ¡ä»¶ãã§ãã¯ïŒi <MAX_I-2ïŒãè¿œå ãããããœãããŠã§ã¢ãŸãã¯ããŒããŠã§ã¢ã®ãã¬ããŒãžã³ã¬ã¯ã¿ãŒããæŽçããããšã«ããããããåãé€ãããšãã§ããŸãã
äŸ2.ãããªãã¯ã¹ã®è¿œå
ããã§ãããŒã¿ã«ããå埩éã«äŸåé¢ä¿ããªãäŸã«ã€ããŠèããŠã¿ãŸããããè¡å
int A [MAX_I][MAX_J]; int B [MAX_I][MAX_J]; int C [MAX_I][MAX_J]; GetSomeData (A, B); for (i = 0; i < MAX_I; i++) for (j = 0; j < MAX_J; j++) { C[i,j] = A[i,j] + B[i,j]; }
ãã¹ãŠã®ïŒMAX_I * MAX_JïŒå埩ãåæã«å®è¡ã§ããŸãã ããã¯ãè¡åå ç®è¡åãã©ã®ããã«èŠãããã§ãïŒ

ãã®å Žåã®ã³ã³ããã¹ãã¯ã2座æšæ§é {i; j}ã ããã念é ã«çœ®ããŠãã°ã©ãããŒãã¯æ¬¡ã®ããã«ãªããŸãã
add (: A, B) {i, j} = _(A); result = _(A) + _(B); _ (: result, : host, : {i, j}); add
ããã«ã¯åœå¢ãã§ãã¯ããªãããšã«æ³šæããŠãã ããïŒ å埩åæ°ã¯ãå ¥åããŒã¿ã®æ¬¡å ã«åºã¥ããŠèªåçã«éžæãããŸãã ãšããã§ãå ¥åã¯æ¬¡ã®åœ¢åŒã§å ¥åããå¿ èŠããããŸãã
_ (: A[0, 0], : add, : {0, 0}); _ (: B[0, 0], : add, : {0, 0}); _ (: A[0, 1], : add, : {0, 1}); _ (: B[0, 1], : add, : {0, 1}); ... _ (: A[MAX_I-1, MAX_J-1], : add, : {MAX_I-1, MAX_J-1}); _ (: B[MAX_I-1, MAX_J-1], : add, : {MAX_I-1, MAX_J-1});
éèŠãªèŠçŽ ã®ã¿ãå®éã«éä¿¡ããã³åŠçããããããããŒã¿ãããŒã·ã¹ãã ã¯ã¹ããŒã¹ããŒã¿ã®åŠçã«éåžžã«å¹æçã§ãã
ãã€ããªããããŒã¿ãããŒã¢ãŒããã¯ãã£
æ®å¿µãªãããMIT Static Dataflow MachineãManchester Dataflow Machineã§èª¬æãããŠãããããªãã¯ãªãŒã³ããªã¹ããªãŒãã³ã°ã¢ãŒããã¯ãã£ã«ã¯ãå€ãã®åŒ±ç¹ããããŸããã
- ããŒã¿ãããŒãã·ã³ã¯ãåæå®è¡ã«å€§ããªæ©äŒãæäŸããŸããã ãã®å©ç¹ã®è£åŽã¯ãèšç®ã°ã©ãã®é£ç¶ããã»ã¯ã·ã§ã³ã§ãããã©ãŒãã³ã¹ã®æ¥æ¿ãªäœäžã瀺ããããšã§ãã
- ã¢ã¯ãã¥ãšãŒã¿ã®ããŒãã¯ãå¯èœãªæ倧å€ããã¯ã»ã©é ããã®ã§ããã ã»ãšãã©ã®ã³ã³ãã¥ãŒã¿ãŒæéã¯ããªãã©ã³ãã®äžèŽã®æ€çŽ¢ãåœä»€ã®ãã§ããã«è²»ããããã¢ã¯ãã¥ãšãŒã¿ãŒã¯ãã®éãã£ãšã¢ã€ãã«ç¶æ ã§ãããŒã¯ã³ã®åãã¢ã«å¯ŸããŠ1ã€ã®åœä»€ã®ã¿ãå®è¡ããŸããã
- äžèŽããããã€ã¹ãèšèšããããšã¯å°é£ã§ããã åããµã€ãºã®åŸæ¥ã®RAMãšæ¯èŒããŠãé£æ³ã¡ã¢ãªã¯ããè€éã§ãããé«äŸ¡ã§ãããé ããããå€ãã®ã¹ããŒã¹ãæ¶è²»ããããå€ãã®ãšãã«ã®ãŒãæ¶è²»ããŸãã
- ããŒã¿ãããŒå¶åŸ¡ã®åçã§ã¯ãå¹ççãªãã€ãã©ã€ã³ãç·šæã§ããŸããã§ããã ã»ãšãã©ãã¹ãŠã®ããã€ã¹ã¯éåæã§åäœããéä¿¡åç·ã®ãããã¡ãšãã¥ãŒãå¿ èŠã§ããã
- åŸæ¥ã®ãã«ãããã»ããµã¢ãŒããã¯ãã£ãšæ¯èŒããŠãã¹ã€ããã³ã°ãããã¯ãŒã¯ã®è² è·ã¯ããŒã¿ãããŒãã·ã³ã®æ¹ãã¯ããã«å€§ããã£ãã çµå±ã®ãšãããå®éã«ã¯ãåæäœã§2ã€ã®ããŒã¯ã³ã転éããå¿ èŠããããŸããã
ãããã®åé¡ã解決ããããã«ãããŒã¿ãããŒã¢ãŒããã¯ãã£ãšå¶åŸ¡ãããŒã¢ãŒããã¯ãã£ã®äž¡æ¹ã®èŠçŽ ãçµã¿åããããã€ããªããã¢ãŒããã¯ãã£ãç»å Žãå§ããŸããã
ã¹ã¬ããåãããããŒã¿ãããŒ
ãã®çšèªã«å¯Ÿãããã·ã¢èªãžã®é©åãªç¿»èš³ã¯ãããŸããã ãã®ã¢ãããŒãã®æ¬è³ªã¯ãã¹ã¬ããïŒé 次å®è¡ãããåœä»€ã®ã»ããïŒã眮ãæããããšã«ãã£ãŠäžŠååã§ããªãèšç®ã°ã©ãã®é£ç¶ããã»ã¯ã·ã§ã³ã眮ãæããããšã§ãã ãäœåãªãäžéããŒã¯ã³ã¯ããã«æ¶ãããšã°ãŒã¯ãã£ãããã€ã¹ã®è² è·ãå¢å ããŸãã ã¹ã¬ããåãããããŒã¿ãããŒã®åçã¯ã1989幎ã«Epsilonããã»ããµ[21]ã§ãããŒããŠã§ã¢ã§ãå ·çŸåãããŸããã
ç²ç²åºŠã®ããŒã¿ãããŒã¢ãŒããã¯ãã£
ã¹ã¬ããåãããããŒã¿ãããŒã®ãããªãéçºã¯ããããã倧ç²åºŠããŒã¿ãããŒã§ãã å€ãã®å ŽåããçŽç²ãªãããŒã¿ãããŒã®äžŠåæ§ãåé·ã§ããããšãæããã«ãªã£ããšããåå¥ã®ã¹ããŒãã¡ã³ãããã§ã¯ãªããããã¯ãããããŒã°ã©ããæ§ç¯ãããšãã決å®ãäžãããŸããã ãããã£ãŠãç²ç²åºŠã¢ãŒããã¯ãã£ã§ã¯ãåããŒãã¯åäžã®åœä»€ã§ã¯ãªããå€å žçãªé 次ããã°ã©ã ã§ãã ããŒãéã®çžäºäœçšã¯ãããŒã¿ãããŒã®ååã«åŸã£ãŠå®è¡ãããŸãã ãã®ã¢ãããŒãã®å©ç¹ã®1ã€ã¯ãåŸæ¥ã®ãã©ã³ãã€ãã³ããã»ããµãã¢ã¯ãã¥ãšãŒã¿ãšããŠäœ¿çšã§ããããšã§ããã ãç²èŠåããšããååã«ãããããããã¿ã¹ã¯ãåå²ããããããã¯ã¯ãããšãã°ã¯ã©ã¹ã¿ãŒã·ã¹ãã ãããã¯ããã«å°ããããšã«æ³šæããŠãã ããã å žåçãªãããã¯ãµã€ãºã¯ã10-100åœä»€ãš16-1Kãã€ãã®ããŒã¿ã§ãã
ãã¯ã¿ãŒããŒã¿ãããŒã¢ãŒããã¯ãã£
ãã¯ãã«ã¹ããªãŒãã³ã°ã·ã¹ãã ã§ã¯ãããŒã¯ã³ã«ã¯1ã€ã®å€ã§ã¯ãªããäžåºŠã«å€ãã®å€ãå«ãŸããŸãã ãããã£ãŠãæŒç®ã¯ãªãã©ã³ãã®ãã¢ã«å¯ŸããŠã§ã¯ãªãããã¯ãã«ã®ãã¢ã«å¯ŸããŠå®è¡ãããŸãã ãã®ãããªã·ã¹ãã ã®äŸã¯ãSIGMA-1ïŒ1988ïŒãã·ã³[22]ã§ãã å Žåã«ãã£ãŠã¯ããã¯ã¿ãŒã¢ãŒãã¯ã·ã¹ãã ã®äžéšã®ãšã°ãŒã¯ãã£ãããã€ã¹ã®ã¿ã§ãµããŒããããŸãã å€ãã®å ŽåãäžåºŠã«è€æ°ã®ã¢ãããŒããçµã¿åããããã€ããªããã¢ãŒããã¯ãã£ã䜿çšãããŸããããšãã°ãç²ãã¢ãŒããã¯ãã£ãšãã¯ãã«æäœãå®è¡ããæ©èœããããŸãã
åæ§æå¯èœãªã·ã¹ãã
FPGAãã¯ãããžãŒã®éçºã«ãããããŒã¿ãããŒã¢ãŒããã¯ãã£ã«å¯Ÿããæ ¹æ¬çã«æ°ããã¢ãããŒããå¯èœã«ãªããŸããã ç¹å®ã®åé¡ã®è§£æ±ºã«çŠç¹ãåããããã·ã³ãçµã¿ç«ãŠããã©ããªãã§ããããïŒ ç®çã®èšç®ã°ã©ããåè·¯ã¬ãã«ã§çŽæ¥å®è£ ãããšãé©ãã¹ãçµæãåŸãããŸãã è€éã§äœéã®ãããã³ã°ããã€ã¹ã®ä»£ããã«ã1ã€ã®æ©èœã¢ãžã¥ãŒã«ããå¥ã®ã¢ãžã¥ãŒã«ãžã®ç¡æ¡ä»¶ã®ããŒã¿ãªãã€ã¬ã¯ãã䜿çšã§ããŸãã ã¢ã¯ãã¥ãšãŒã¿èªäœãç®çã®ã¿ã¹ã¯ã«åãããŠãã·ã£ãŒããã«ããããšãã§ããŸããç®è¡ã®çš®é¡ãããã深床ããµããŒããããŠããæäœã®ç®çã®ã»ãããéžæããŸãã
ãã¡ããããã®ãããªãã·ã³ã¯éåžžã«é«åºŠã«ç¹æ®åãããŸãããFPGAã®å©ç¹ã¯ãåããã°ã©ãã³ã°ãç¹°ãè¿ãå¯èœæ§ã«ãããŸãã ãããã£ãŠãåã ã®ã¿ã¹ã¯ããšã«å¿ èŠãªã¢ãŒããã¯ãã£ãçµã¿ç«ãŠãããŸãã äžéšã®ã·ã¹ãã ã§ã¯ãããã»ã¹ã®åæ§æãå¯èœã§ãã FPGAãããã«åºã¥ãåæ§æå¯èœãªã·ã¹ãã ã¯çŸåšãPCçšã®ãã¢ã¯ã»ã©ã¬ãŒã¿ããããã¯ããæ°TFlopsçšåºŠã®å®¹éã®ã·ã¹ãã ãŸã§ãããŸããŸãªåœ¢åŒã§å€§éçç£ãããŠããŸã[31] ã
åæ§æå¯èœãªã¢ãŒããã¯ãã£ã®æ¬ ç¹ã¯æ¬¡ã®ãšããã§ãã
- åºæ¬çãªã·ã³ã°ã«ã¿ã¹ã¯ã æ°ããã¿ã¹ã¯ãéå§ããã«ã¯ãã·ã¹ãã ãåæ¢ãããã®äžéšã§ããFPGAãåããã°ã©ã ããå¿ èŠããããŸãã
- ããã°ã©ãã³ã°ã®é£ããã åã¿ã¹ã¯ã®ããã°ã©ãã³ã°ã«ã¯ãç¹å®ã®ã¿ã¹ã¯ã®ã³ã³ãã¥ãŒãã£ã³ã°ã¢ãŒããã¯ãã£å šäœã®åæãå«ãŸããŸãã
- åé·ãªããŒããŠã§ã¢ã®è€éãã FPGAã®æè»æ§ã®è£åŽã¯ãèšç®ã«çŽæ¥é¢äžãããåæ§æã®ã¿ã«åœ¹ç«ã€èŠçŽ ã®å€§éšåããããäžã«ååšããããšã§ãã ãã ãããããã®èŠçŽ ã¯ãšãã«ã®ãŒãæ¶è²»ããåäœäžã«ç±ãçæãããããã·ã¹ãã ã®ãšãã«ã®ãŒæ§èœãäœäžããŸãïŒGflops / WïŒã
ããŒã¿ãããŒã¢ãŒããã¯ãã£ã®ããã°ã©ãã³ã°
ããŒã¿ãããŒãã©ãã€ã ã§ã®ããã°ã©ãã³ã°ã¯ãéåžžã®æ§é ãšã¯å€§å¹ ã«ç°ãªããŸãããæ©èœã«è¿ããã®ã§ãã å€æ°ãé åããã®ä»ã®ååä»ãã¡ã¢ãªé åã¯ãããŸãã;éåžžã®æå³ã§åŒã³åºãããããã·ãŒãžã£ãé¢æ°ã¯ãããŸããã ã¹ããªãŒã ããã°ã©ãã³ã°ã¯ã åäžã®å²ãåœãŠã®ååã䜿çšããŸãã åããŒã¿ãŠãããïŒéåžžã¯ããŒã¯ã³ïŒã¯ãäœææã«1åã ãå€ãåãåããåŸã§ã®ã¿èªã¿åãããšãã§ããŸãã ãã®åçã¯ãèšç®ã°ã©ãã®ãã©ã³ãã®åæ¹åæ§ãåæ ããŠããŸãã
ããŒã¿ãããŒã§ã¯ãæ®å¿µãªãããããã°ã©ãã³ã°æšæºã¯éçºãããŠããŸããã éåžžãèšèªã¯ã¢ãŒããã¯ãã£ããšã«éçºãããŸãã æãæåãªããã€ãã玹ä»ããŸãã
ãŽã¡ã«
VALïŒValue-oriented Algorithmic LanguageïŒ [41]ã¯ã1979幎ã«ããµãã¥ãŒã»ããå·¥ç§å€§åŠïŒMITïŒã§ãç¹ã«MIT Dataflow Machineåãã«éçºãããŸããã ããšãã°ãVALã®éä¹ã®èšç®ã¯æ¬¡ã®ããã«ãªããŸãã
for Y:integer := 1; P:integer := N; do if P ~= 1 then iter Y := Y*P; P := P-1; enditer; else Y endif endfor
ãµã€ã¶ã«
1983幎ã«ç»å ŽããSISALïŒåäžã®å²ãåœãŠèšèªã§ã®ã¹ããªãŒã ãšååŸ©ïŒ [42]ã¯ãVALã®ãããªãçºå±ã§ãã VALãšã¯ç°ãªããSISALã§ã¯ååž°ã䜿çšã§ããŸãã
éä¹èšç®ïŒ
function factorial( n : integer returns integer ) if n <=1 then 1 else n * factorial( n - 1 ) end if end function
äžéã® habrayuzerããã®ååž°ãªãã®ãªãã·ã§ã³ïŒ
function factorial (n : integer returns integer) for i in 1, n returns value of prod i end for end function
Id
Id [43]ã¯ãMITã§1970幎代åŸåãã1980幎代åé ã«äœæãããæ±çšäžŠåèšèªã§ãã Idã®ãããªãç 究ã«ãããå¹³è¡ããHaskellã®æ¹èšã§ããpHãéçºãããŸããã
Idã®éä¹ïŒ
( initial j <- n; k <- 1 while j > 1 do new j <- j - 1; new k <- k * j; return k )
ãããŠããã®ããã°ã©ã ã®èšç®ã°ã©ãã¯æ¬¡ã®ããã«ãªããŸãã

æLuc
Lucidèšèª[44] [45]㯠ã1976幎ã«Bill WadgeãšEd Ashcroftã«ãã£ãŠéçºãããŸããã å€ãããŒïŒå€æ°ã®ã¢ããã°ïŒãšãã£ã«ã¿ãŒããŸãã¯ã³ã³ããŒã¿ãŒïŒé¢æ°ã®ã¢ããã°ïŒã®æŠå¿µã§åäœããŸãã
æidã®éä¹ïŒ
fac where n = 0 fby (n + 1); fac = 1 fby ( fac * (n + 1) ); end
ã¯ã€ã«
QuilïŒ2010ïŒ [46] -Lucidã«åºã¥ãèšèªã§ãçŸåšäœæ¥äžã§ãã èšèªãµã€ãã«ã¯ãªã³ã©ã€ã³ã€ã³ã¿ãŒããªã¿ãŒããããŸãããã®ãããQuilã®éä¹èšç®ã¯èªè ã®ç¬ç«ããã¿ã¹ã¯ãšããŠæ®ããŸãã
ãããã«
ã¹ããªãŒãã³ã°ã¢ãŒããã¯ãã£ã®ãããŒã ãã¯1970幎代ããã³80幎代ã«çºçããããŒã¿ãããŒãžã®é¢å¿ã¯åŸã ã«èããŠãããŸããã çŸåšãã¹ããªãŒã ã³ã³ãã¥ãŒã¿ãŒã®èŠçŽ ã¯ãDSPïŒã·ã°ãã«ããã»ããµïŒããããã¯ãŒã¯ã«ãŒã¿ãŒãGPUã®ã¢ãŒããã¯ãã£ã«èŠãããŸãã ããããåŸã ã«ããŸããŸãå€ãã®å°é家ãé«æ§èœã³ã³ãã¥ãŒãã£ã³ã°ã®ãã¬ãŒã ã¯ãŒã¯ã®ããŒã¿ãããŒãã©ãã€ã ã«åã³ç®ãåããŠããŸãã ããã¯ãããããä»æ¥ã®ãã©ã³ãã€ãã³ã¢ãŒããã¯ãã£ãã¹ã±ãŒã©ããªãã£ã®éçã«è¿ã¥ããŠãããšããäºå®ã«èµ·å ããŠããå¯èœæ§ããããçç£æ§ãããã«é«ããã«ã¯æ°ããã¢ãããŒããå¿ èŠã§ãã
ãœãããŠã§ã¢ãšãââãŒããŠã§ã¢ã®éã®å¢çç·ãåŸã ã«æ¶å»ããããåæ§æå¯èœãªã¢ãŒããã¯ãã£ã¯å€å°ç°ãªããŸãã æªæ¥ã¯ã©ããªãã¯ãããžãŒã§ããïŒ è³ªåã¯æªè§£æ±ºã®ãŸãŸã§ãã
ããŒãã¹ã²ãŒã ã æã奜å¥å¿ã®åŒ·ãèªè ã«ã¯ãèšäºã®åéšåã®ã¿ã€ãã«ã®ã泚æãåŒãããã®ç»åãã«ã¢ã«ãŽãªãºã ã®ã©ã®ã°ã©ããæãããŠããããå€æããããšããå§ãããŸãã é 匵ã£ãŠ
æåŠ
ãœãŒã¹ã®çªå·ä»ãã¯ãæåã®éšåããç¶ããããŸãã
ãã€ããªããããŒã¿ãããŒã·ã¹ãã
[21] -EpsilonããŒã¿ãããŒããã»ããµãVG GrafeãGS Davidsonãªã©ã
[22] -ããŒã¿ãããŒã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒSIGMA-1ã§ã®å¹ççãªãã¯ãã«åŠçã
åæ§æå¯èœãªã·ã¹ãã
[31] -åçã«èª¿æŽå¯èœãªã¢ãŒããã¯ãã£ãåãããã«ãããã»ããµã³ã³ãã¥ãŒãã£ã³ã°ã·ã¹ãã ã®ãã¡ããªãN.Nã ããããªãšã³ã³ãI.Aã ã«ãªã£ãšããªã©ã
[32] -ãã«ãFPGAãã©ãããã©ãŒã ã§ã®é«æ§èœããžã¿ã«ä¿¡å·åŠçã®ããã®åçã«åæ§æå¯èœãªããŒã¿ãããŒã¢ãŒããã¯ãã£ãVoigtãS.-O.ãTeufelãTã
ããŒã¿ãããŒã·ã¹ãã ã®ããã°ã©ãã³ã°èšèª
[41] -VAL-䟡å€å¿åã®ã¢ã«ãŽãªãºã èšèª
[42] -ãµã€ã¶ã«èšèªã®ãã¥ãŒããªã¢ã«
[43] -IDèšèªãªãã¡ã¬ã³ã¹ããã¥ã¢ã«ãRishiyur S. Nikhilã1991幎
[44]-ããŒã¿ãããŒããã°ã©ãã³ã°èšèªã®LUCIDãAcademic Press ProfessionalãInc. ç±³åœã«ãªãã©ã«ãã¢å·ãµã³ãã£ãšãŽ1985 ISBNïŒ0-12-729650-6
[45] -Lucidã§ã®æµäœããã°ã©ãã³ã°
[46] -ã¯ã€ã«èšèª