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