D ÇÁ·Î±×·¡¹Ö ¾ð¾î
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : ¹Ì´Ï»çÀÌÆ®>D



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Contents

1 À§Å° ¼Ò°³
2 D ¾ð¾î ¼Ò°³
2.1 D ¾ð¾î ¼³Ä¡
3 ¹®¼­

1 À§Å° ¼Ò°³

C ¾ð¾î°¡ B ¾ð¾î·ÎºÎÅÍ ³ª¿Ô´Ù´Â ¾ê±â´Â ¾Æ¸¶ ¾ð¶æ µé¾î¼­ ´Ùµé ¾Ë°í ÀÖÀ» °Í °°´Ù. ¾ð¾îÀÇ ¿ª»ç°¡ ±Ã±ÝÇÏ´Ù¸é ¾ð¾îÀÇ ¿ª»ç ¹®¼­¸¦ Çѹø º¸±â ¹Ù¶õ´Ù.

Cµµ ³ª¿Ô°í, °´Ã¼ÁöÇâÀ» Àû¿ëÇÑ C++µµ ³ª¿ÔÀ¸´Ï ÀÌÁ¦ D ¾ð¾îµµ ³ª¿ÀÁö ¾ÊÀ»±î ? ¶ó´Â »ý°¢ÀÌ µé¾îº½Á÷µµ ÇÒ °Å °°Àºµ¥, Á¤¸» D ¾ð¾î°¡ ³ª¿Ô´Ù. ¹°·Ð ³ª¿ÂÁö´Â ²Ï µÇ¾ú°í, ¿¹Àü ºÎÅÍ ½áºÁ¾ßÁö ½áºÁ¾ßÁö Çϸ鼭 Â÷ÀÏÇÇÀÏ ¹Ì·ç¾î¿Ô´Âµ¥, À̹øÂü¿¡ Á÷Á¢ »ç¿ëÇØ º¸±â·Î Çß´Ù. ÀÌ À§Å°´Â D¾ð¾î¸¦ Àß ¹è¿ö¼­ Çѹø ½á¸Ô¾î º¸ÀÚ¶ó´Â ÃëÁö·Î ¸¸µé¾ú´Ù.

°ü·Ã±â»ç
Áö±Ý, ¼¼°è´Â ´ëÈ­ ¾ð¾îº¸´Ù ÇÁ·Î±×·¥ ¾ð¾î¸¦ ´õ ¸¹ÀÌ °¡Áö°í ÀÖÀ¸³ª ÇÁ·Î±×·¥ ¾ð¾îµéÀº °è¼Ó ¸¸µé¾îÁö°í ÀÖ´Ù. ±ÝÁÖ¿¡ Digital Mars´Â C/C++ÀÇ ¹®Á¦Á¡°ú ¾àÁ¡À» ÇØ°áÇÑ D ¾ð¾î¸¦ ¹ßÇ¥Çß´Ù. D´Â C++ ÄÄÆÄÀÏ·¯, Zortech C++ÀÇ ÀÚ¼ÕÀÌ´Ù. D´Â ¹«·áÀ̸ç À©µµ¿ì¿Í ¸®´ª½º¸¦ À§ÇÑ Ç¥ÁØ ¶óÀ̺귯¸®ÀÌ¸ç ¿ÀÇ ¼Ò½ºÀÌ´Ù.

C/C++ÀÇ °³¼±À¸·Î D´Â C ÄÚµå¿Í ȣȯµÇ¸ç ÄÝ ÀÎÅÍÆäÀ̽º ¾øÀÌ ¾î¶°ÇÑ C API¿Íµµ ÀÎÅÍÆäÀ̽º °¡´ÉÇÏ´Ù. ±×·¯³ª D´Â C ÄÚµå¿Í ¿ÏÀüÇÏ°Ô ÈÄÇâÀû ȣȯÀº ¾ÈµÇ¸ç ÀÚ¹Ù¿Í Microsoft C#ÀÇ ¸¹Àº ±â´ÉÀ» Ãß°¡·Î ÇÑ´Ù. D´Â 2001³â ÀÌÈÄ °³¹ßµÇ¾úÀ¸¸ç ¿ÀÇ ¼Ò½º °øµ¿Ã¼ÀÇ ÀԷ¹°À» ¸¹ÀÌ »ç¿ëÇÏ¿´À¸¸ç http://dmoz.org/Computers/Programming/Languages/D/¿¡ ÀÚ·á°¡ ¸¹ÀÌ ÀÖ´Ù.

ºê¶óÀÌÆ®´Â ¡°D´Â C++ ÇÁ·Î±×·¡¸ÓÀÇ °æÇè¿¡ ÀÇÇØ °³¹ßµÇ¾úÀ¸¸ç ¸¹Àº »õ·Î¿î ¾ð¾îó·³ ¾î´À ƯÁ¤ÇÑ Ç÷§ÆûÀ» ¸ñÀûÀ¸·Î ¼³°èµÇÁö ¾Ê¾Ò´Ù. DÀÇ °³³äÀº ºü¸£°Ô ¹è¿ì°í ÄÚµùÇÏ°í ºü¸£°Ô µð¹ö±ëÇϸç À¯Áö º¸¼öÇÏ´Â °Í¡±À̶ó°í ¸»Çß´Ù.

Forrester Research ºÐ¼®°¡ÀÎ Á¦ÇÁ ÇÔ¸óµå´Â ¡°D°¡ ±â¹ÝÀ» ¾ò±â±îÁö¿¡´Â ¾à°£ÀÇ ½Ã°£ÀÌ °É¸± °ÍÀÌ´Ù. D ¾ð¾î°¡ ¼º°øÇÏ·Á¸é D ¾ð¾î ±â¼úÀÌ ÁÁÀº °Í À̿ܿ¡µµ ±×¿¡ ¸Â´Â ºñÁî´Ï½º ¸ðµ¨ÀÌ ÀÖ¾î¾ß µÉ °Í¡±À̶ó°í ¸»Çß´Ù. ¸¶Ä¡ ¸®´ª½º°¡ ¼º°øÇÑ ÀÌÀ¯°¡ ±× ´ç½Ã ´Ù¸¥ OS °¡°ÝÀÌ ³Ê¹« °í°¡À̾ °í°´µéÀÌ ¼±ÅÃÇ߱⠶§¹®ÀÎ °Íó·³ ÇÊ¿äÇÑ ºñÁî´Ï½º ¸ðµ¨ÀÌ Áß¿äÇÏ´Ù.

Ãâó : http://www.internetnews.com

2 D ¾ð¾î ¼Ò°³

http://www.digitalmars.com/

C¿Í C++Àº ½Ã½ºÅÛÇÁ·Î±×·¡¹Ö¿¡ À־ °­·ÂÇÔÀ» ¹ßÈÖ ÇÑ´Ù. ƯÀ¯ÀÇ ´Ü¼øÇÔ°ú Áß±Þ¾ð¾î¶ó°í ºÐ·ùÇÒ ¸¸Å­ ½Ã½ºÅÛ¿¡ °¡±õ´Ù´Â°Ô ±× ÀÌÀ¯Àε¥, ÀÌ ´Ü¼øÇÔÀº ¿äÁò °°Àº ½Ã´ë¿¡ ´ÜÁ¡À̱⵵ ÇÏ´Ù.

¾Ïư ÀÌ µÎ¾ð¾î´Â Ãֽžð¾îÀÇ À¯Çà¿¡ ÇÑÂüÀ̳ª µÚ ¶³¾îÁ® ÀÖ´Ù. ÀýÂ÷ÁöÇâÀûÀÌ°í ±×´ÙÁö ±ò²ûÇÏÁöµµ ¾ÊÀ¸¸ç, C++Àº °´Ã¼ÁöÇâ ÀûÀ̱ä ÇÏÁö¸¸ ¾÷°èÇ¥ÁØÀÌ¸ç ¸ðŶó°í ÇÒ ¼ö ÀÖ´Â C¾ð¾î¿ÍÀÇ È£È¯¼ºÀ¯ÁöµîÀÇ ¹®Á¦·Î Çö´ë¾ð¾îµéÀÇ À¯ÇàÀ» ÂѾư¡Áö ¸øÇϰí ÀÖ´Ù.

¹°·Ð Çö´ë¾ð¾îÀÇ À¯ÇàÀ̶õ °ÍÀÌ ¸ðµç ¸é¿¡ À־ ÁÁÀº ÂÊÀ¸·Î Èê·¯°£´Ù°í ÇÒ ¼ö´Â ¾ø´Ù. ±×·¸´Ù¸é C¿Í C++À̶ó´Â ¾ð¾îÀÚü°¡ ÇÊ¿ä ¾ø¾îÁú °Í ¾Æ´Ñ°¡. C¿Í C++ÀÌ À¯ÇàÀ» µû¸£Áö ¾ÊÀ½À¸·Î½á ±¸½Ä¾ð¾î¶ó´Â ¸Û¿¡¸¦ Áö±â´Â ÇßÁö¸¸ ¿©ÀüÈ÷ ½Ã½ºÅÛ/³×Æ®¿öÅ© ÇÁ·Î±×·¡¹Ö¿¡ À־, ¼Óµµ¿Í ¼º´É,½Å·Úµµ Ãø¸é¿¡¼­ ³ôÀº Á¡¼ö¸¦ ¹Þ°í ÀÖÀ¸¸ç ½ÇÁ¦·Î ³Î¸® »ç¿ëµÇ°í ÀÖ´Ù.
Position
Jan 2007
Position
Jan 2006
Delta in Position Programming Language Ratings
Jan 2007
Delta
Jan 2006
Status
1 1 Java 19.160% -3.10%   A
2 2 C 15.807% -3.20%   A
3 3 C++ 10.425% -1.04%   A
4 5 (Visual) Basic 9.123% +0.03%   A
5 4 PHP 7.943% -1.46%   A
6 6 Perl 6.237% -0.81%   A
7 7 C# 3.521% -0.03%   A
8 8 Python 3.502% +0.90%   A
9 10 JavaScript 2.845% +1.31%   A
10 21 11 * Ruby 2.519% +2.15%   A
11 11 SAS 2.343% +1.18%   A
12 9 Delphi 2.336% +0.75%   A
13 12 PL/SQL 1.570% +0.54%   A
14 22 8 * D 1.335% +0.97%   A-
15 20 ABAP 1.229% +0.82%   A-
16 14 Lisp/Scheme 0.674% +0.07%   B
17 18 Ada 0.638% +0.17%   B
18 13 COBOL 0.637% -0.13%   B
19 15 Pascal 0.570% +0.04%   B
20 34 14 * Transact-SQL 0.510% +0.34%   B
D¾ð¾î´Â Áï ½Ã½ºÅÛ ÇÁ·Î±×·¡¹ÖÀ» À§ÇÑ C/C++ÀÇ °­·ÂÇÔ°ú ÃÖ±ÙÀÇ ¾ð¾îµéÀÌ °¡Áö°í ÀÖ´Â Object orinted, template metaprogramming style µîÀÇ multiparadigmÀ» Áö¿øÇÏ´Â ¾ð¾î´Ù.

D¾ð¾î´Â statically type¸¦ Áö¿øÇϸç native ÄÚµå·Î ÄÄÆÄÀÏ µÇ¾î¼­ ½ÇÇàµÈ´Ù.

2.1 D ¾ð¾î ¼³Ä¡

Windows, Linux ¸ðµÎ¿¡ ´ëÇÑ ¹öÁ¯ÀÌ Àִµ¥, ȯ°æÀÌ LinuxÀÎ °ü°è·Î Linux¸¦ ±âÁØÀ¸·Î ¼³¸íÇϵµ·Ï ÇϰڴÙ.

  • http://www.digitalmars.com/d/download.html ¿¡¼­ d ¾ð¾î ÄÄÆÄÀÏ·¯¸¦ ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Ù.
  • D¾ð¾î Àü¿ëÄÄÆÄÀÏÀÎ dmd¿Í GCC¸¦ À§ÇÑ GDCµÎ°¡Áö ¹öÁ¯ÀÌ ÀÖ´Ù.
  • gccÀÇ ÇÁ·ÐÆ®¿£µåÀÎ GDC¸¦ ¹Þ¾Æ¼­ Å×½ºÆ®¸¦ Çϱâ·Î Çß´Ù.
  • ´Ù¿î·Îµå ¹ÞÀº ´ÙÀ½¿¡ /usr/local/gdc ¿¡ ¾ÐÃàÀ» Ç®¾ú´Ù.
  • ´ÙÀ½°ú °°ÀÌ LD_LIBRARY_PATH¿Í PATH ȯ°æº¯¼ö¸¦ ¼öÁ¤Çß´Ù.

    # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gdc/lib 
    # export PATH=$PATH:/usr/local/gdc/bin 
     

ÀÌÁ¦ wcÀÇ d¹öÁ¯À» °¡Áö°í Å×½ºÆ® ÇØº¸¾Ò´Ù.
import std.stdio; 
import std.stream; 
import std.date; 
 
int main (char[][] args) 
{ 
    int w_total; 
    int l_total; 
    ulong c_total; 
    int[char[]] dictionary; 
 
    writefln("   lines   words   bytes file"); 
    foreach (arg; args[1 .. args.length]) 
    { 
        int w_cnt, l_cnt; 
        bool inword; 
 
        auto c_cnt = std.file.getSize(arg); 
        if (c_cnt < 10_000_000) 
        { 
            size_t wstart; 
            auto input = cast(char[])std.file.read(arg); 
 
            foreach (j, c; input) 
            { 
                if (c == '\n') 
                    ++l_cnt; 
                if (c >= '0' && c <= '9') 
                { 
                } 
                else if (c >= 'a' && c <= 'z' || 
                         c >= 'A' && c <= 'Z') 
                { 
                    if (!inword) 
                    { 
                        wstart = j; 
                        inword = true; 
                        ++w_cnt; 
                    } 
                } 
                else if (inword) 
                {   auto word = input[wstart .. j]; 
 
                    dictionary[word]++; 
                    inword = false; 
                } 
            } 
            if (inword) 
            {   auto w = input[wstart .. input.length]; 
                dictionary[w]++; 
            } 
        } 
        else 
        { 
            auto f = new BufferedFile(arg); 
            char[] buf; 
 
            while (!f.eof()) 
            {   char c; 
 
                f.read(c); 
                if (c == '\n') 
                    ++l_cnt; 
                if (c >= '0' && c <= '9') 
                { 
                    if (inword) 
                        buf ~= c; 
                } 
                else if (c >= 'a' && c <= 'z' || 
                         c >= 'A' && c <= 'Z') 
                { 
                    if (!inword) 
                    { 
                        buf.length = 1; 
                        buf[0] = c; 
                        inword = 1; 
                        ++w_cnt; 
                    } 
                    else 
                        buf ~= c; 
                } 
                else if (inword) 
                { 
                    if (++dictionary[buf] == 1) 
                        buf = null; 
                    inword = 0; 
                } 
            } 
            if (inword) 
            { 
                dictionary[buf]++; 
            } 
        } 
        writefln("%8s%8s%8s %s\n", l_cnt, w_cnt, c_cnt, arg); 
        l_total += l_cnt; 
        w_total += w_cnt; 
        c_total += c_cnt; 
    } 
 
    if (args.length > 2) 
    { 
        writefln("--------------------------------------\n%8s%8s%8s total", 
            l_total, w_total, c_total); 
    } 
 
    writefln("--------------------------------------"); 
 
    foreach (word1; dictionary.keys.sort) 
    { 
        writefln("%3s %s", dictionary[word1], word1); 
    } 
    writefln(toDateString(getUTCtime())); 
    return 0; 
} 
 

ÄÄÆÄÀϰú ½ÇÇàÀº ¸Å¿ì °£´ÜÇß´Ù.
# gdc -o wc wc.d 
# ./wc wc.d 
   lines   words   bytes file 
     114     234    2922 wc.d 
 
-------------------------------------- 
  2 A 
  1 BufferedFile 
  2 Z 
.... 
Mon Jan 29 2007 
 

²Ï³ª Àç¹ÌÀÖ´Â °Í °°´Ù. Æ´Æ´È÷ °øºÎÇØ¾ßÁö..

3 ¹®¼­

 
À̸§
Á¦¸ñ
º¯°æÀÏ
Å©±â
D ÇÁ·Î±×·¡¹Ö ¾ð¾î ¹®¼­¸ðÀ½
2007/02/09 20:29
68

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.