Язык программирования D

Привет!

Здесь собрано немного информации по языку программирования D.

Основной сайт языка D - http://dlang.org/. Здесь можно скачать компилятор DMD, посмотреть официальную документацию по языку и стандартной библиотеке Phobos.

Основным пособием для изучения языка D является The D Programming Language за авторством A. Alexandrescu. Книга выпущена на русском языке издательством Символ-Плюс, купить можно, например, здесь.

Также хорошим учебником считается Programming in D, автор Ali Çehreli. На английском языке этот учебник лежит в открытом доступе здесь.

На русском языке также написано или переведено несколько статей (в том числе начальные главы учебника Programming in D) на сайте Хабрахабр, со всеми можно познакомиться по этой ссылке: https://habrahabr.ru/hub/d/all/

Также я обнаружил несколько оригинальных статей на русском языке по языку D на сайте «LightHouse Software»



Шаблоны D

Эту страничку я создал для публикации своего перевода учебного пособия "Шаблоны D", автор Philippe Sigaud.
Оригинал учебника расположен на GitHub.
Перевод: PDF, ODT.



Учебник по языку D

Перевод учебного пособия "Учебник по языку D".
Оригинал учебника расположен на сайте tutorialspoint.com.
Онлайн-перевод расположен по этой ссылке: Учебник.
Перевод в формате PDF: Учебник.



Библиотека Phobos

Начал перевод документации к стандартной библиотеке. Вряд-ли переведу всё, она огромна, но сделаю, сколько смогу. Перевод делается для версии 2.072

Вот уже переведённые модули:

Неявно загружаемый модуль для всех программ на D
object Формирует идентификаторы, доступные для всех программ D. Включает Object, который является корнем иерархии классов.
Алгоритмы
std.algorithm Реализует типовые алгоритмы, ориентированные на обработку последовательностей.
std.algorithm.comparison Содержит типовые алгоритмы сравнения.
std.algorithm.searching Содержит типовые алгоритмы поиска.
std.algorithm.iteration Содержит типовые итерационные алгоритмы.
std.algorithm.sorting Содержит типовые алгоритмы сортировки.
std.algorithm.setops Содержит типовые алгоритмы, реализующие операции над множествами.
std.algorithm.mutation Содержит типовые алгоритмы изменения.
Массивы и диапазоны
std.array Функции и типы, которые манипулируют встроенными массивами и ассоциативными массивами.
std.range Этот модуль определяет понятие range (диапазон).
std.range.primitives Базовая функциональность диапазонов, определение нескольких шаблонов для анализа, является ли данный объект диапазоном, и какого типа диапазоном; ряд шаблонов, которые тестируют наличие различных свойств диапазона; некоторые удобные функции для манипуляции диапазонами.
std.range.interfaces Предоставляет ряд объектов и определений интерфейсов, которые можно использовать для обёртывания диапазонных объектов, созданных шаблонами std.range.
Контейнеры
std.container Определяет типовые контейнеры.
std.container.array Предоставляет тип массива Array с детерминированным использованием памяти, не полагающимся на сборщик мусора, как альтернатива для встроенных массивов.
std.container.binaryheap Предоставляет адаптер BinaryHeap (также известную под названием очередь с приоритетами), который создаёт двоичную кучу.
std.container.dlist Реализует типовой контейнер двусвязного списка.
std.container.rbtree Реализует контейнер с красно-черным деревом.
std.container.slist Реализует контейнер с односвязным списком.
std.container.util Несколько общих утилит, используемых контейнерами.
Работа со строками
std.string Функции обработки строк.
std.utf Кодирование и декодирование строк в кодировках UTF-8, UTF-16 и UTF-32.
std.uni Этот модуль предоставляет реализацию базовых алгоритмов работы с Unicode и соответствующих структур данных.
Ввод-вывод и работа с файловой системой
std.stdio Стандартные функции ввода/вывода, которые расширяют core.stdc.stdio.
std.file Утилиты для манипуляции файлами и сканирования каталогов.
std.path Этот модуль используется для манипуляции строками путей к файлам.
Шаблоны, работающие с типами
std.meta Шаблоны для манипуляции списками аргументов шаблона (также известными, как списки типов).
std.traits Шаблоны, которые извлекают информацию о типах и идентификаторах во время компиляции.
std.typecons Этот модуль реализует множество конструкторов типов, т. е. шаблонов, которые позволяют создавать новые полезные типы общего назначения.
std.conv Универсальный магазин для преобразования значений из одного типа в другой.
Разное
std.functional Функции, которые манипулируют другими функциями.
std.signals Сигналы и Слоты — это реализация Шаблона проектирования «Наблюдатель».
std.json Этот модуль реализует кодирование/декодирование строк в формате json (JavaScript Object Notation).


Стривер