# D (език за програмиране)

### от Уикипедия, свободната енциклопедия

D
Парадигма: | полипарадигмален
Излиза през: | 1999
Разработен от: | Digital Mars
Система типове: | строга, статична
Главни реализации: | DMD, GDC
Диалекти: | няма
Повлиян от: | C++, Java, C#, Eifel
Повлиял: |
Сайт: | {{{сайт}}}

D е обектно оринтиран език за програмиране създаден от Уолтър Брайт (фирма Digital Mars) през 1999. D започва като подобряване на C++, но постепенно преминава в генерално нов език като приема някои от характеристиките на Java, C# и Eifel.

## [редактиране] Характеристики

D поддържа повечето съвременни похвати в програмирането съвремени свойства като проект по договор, юнит тестване, точни модели, вградено автоматично управление на паметта, динамични масиви, анонимни функции. Голяма част от характериските на езиците, които повлияват на D са препроектирани и, според автора, подобрени. D запазва способноста на C++ за работа на ниско ниво като също поддържа вградем асемблер и заменя множественото наследяжане с чисти интерфейси и делегати. Отново подобно на С++, D запазва възможността за предефиниране на всички оператори.

### [редактиране] Управление на паметта

Въпреки че има вградено автоматично управление на паметта, D, поддържа не-менажирани обекти, за които паметта се заделя и освобождава ръчно. Обикновена настройка на компилатора е управлението на паметта да бъде изключено.

### [редактиране] Съвместимост със други езици

Подобно на С++, D може без проблем да компилира и изпълнява непроменен С код.

D не е съвместим със С++ код и в общия случай директен преход е невъзможен.

## [редактиране] Реализация

D е все още в процес на разработка, така че често се появяват промени, които могат да повлияят на действието на стар код, или даже да попречат на компилацията му. Официалният компилатор, който в момента служи за стандарт, се разработва от Уолтър Брайт и в момента е в бета версия.

### [редактиране] Компилатори

- DMD: официалният компилатор на Digital Mars. Лицензиранпод Artistic License и GNU GPL; на страницата могат да се намерят и изходният код, и изпълними файлове.
- GDC: the GNU D компилатор, част от GNU колекцията компилатори.

## [редактиране] Примерен код

### [редактиране] Пример 1

Тази примерна програма отпечатва входните параметри. Входната точка на програмата на D е `main`, а `args` e масивът от низове, представляващ входните параметри. Подобно на C и C++ и тук текстов низ може да се представи като масив от `char`.

    import std.stdio;       // за writefln()
    int main(char[][] args)
    {
        foreach(int i, char[] a; args)
            writefln("args[%d] = '%s'", i, a);
        return 0;
    }

### [редактиране] Пример 2

Този пример илюстрира асоциативните масиви.

    import std.stdio;       // за writefln()

    int main()
    {
        // Обявяваме асоциативен масив със ключ - текстов низ
        // масив от низове като стойност
        char[][] [char[]] container;

        // Добавяме хора в списъка и им даваме да носят някои предмети
        container["Ана"] ~= "шал";
        container["Димитър"] ~= "билети";
        container["Ана"] ~= "куче";

        // Изписваме броят носени предмети за всеки човек в списъка
        foreach (char[] person, char[][] items; container)
            display_item_count(person, items);
        return 0;
    }

    void display_item_count(char[] person, char[][] items)
    {
        writefln(person, " носи ", items.length, " предмета");
    }

## [редактиране] Външни препратки

- Странницата на D в Digital Mars
- Библиотека за D за програмиране под Windows
- DSource - портал посветен на D (английски език)

Езици за програмиране

Ada | ALGOL | APL | AspectJ | BASIC | COBOL | C | C++ | C# | D | ColdFusion | Delphi | Eiffel | Forth | FORTRAN | Haskell | Java | JavaScript | Jython | Lisp | Logo | Lua | Mesa | ML | Modula-2 | Oberon | Pascal | Objective-C | Perl | PHP | PL/I | PostScript | Powerbuilder | Prolog | Python | Ruby | Scheme | Smalltalk | Tcl/Tk | Visual Basic

Взето от „http://bg.wikipedia.org../../../d/_/%28/D_%28%D0%B5%D0%B7%D0%B8%D0%BA_%D0%B7%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D0%BD%D0%B5%29.html“.

Категория: Езици за програмиране

##### Views

- Статия
- Беседа
- Текуща версия

##### Търсене

##### На други езици

- Català
- Česky
- Deutsch
- English
- Esperanto
- Español
- Suomi
- Français
- Bahasa Indonesia
- Italiano
- 日本語
- 한국어
- Nederlands
- Polski
- Português
- Русский
- Slovenčina
- Svenska
- Türkçe