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, " предмета");
}

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

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