Witaj w kursie programowania w języku D na Wikibooks. Podręcznik ten przybliży w szybki sposób składnie języka, jego możliwości oraz zastosowania. Znajdziesz tutaj również opis wielu przydatnych funkcji dostępnych w bibliotece standardowej.

Podręcznik jest w początkowej fazie rozwoju, ale podstawy są już praktycznie w pełni omówione. Bardzo zachęcamy do współpomocy przy jego rozwoju - choćby tłumaczenia odpowiednich fragmentów z angielskiej wersji podręcznika (polska wersja w założeniu rozwija się samodzielnie od podstaw, ponieważ nie uważamy że wersja angielska jest najlepsza, lecz fragmenty na pewno się przydadzą). Warto również skorzystać z tego co jest na stronie o programowaniu w C.

Spis treści

edytuj

Wstęp

edytuj
O podręczniku  
- podstawowe informacje, o autorach i jak pomóc
O języku  
- historia i zastosowania języka D
Czego potrzebujesz  
- informacje o niezbędnych narzędziach
Używanie kompilatora  
- korzystanie z podstawowych narzędzi

D dla początkujących  

edytuj
Pierwszy program  
- wstęp do składni języka, przykładowe programy, pierwsza kompilacja i uruchomienie
Podstawowe wiadomości  
- czym jest, jak działa oraz co może D
Zmienne w D  
- użycie, typy, modyfikatory, stałe, konwersje
Podstawowe procedury wejścia i wyjścia  
- czym jest wejście-wyjście, korzystanie z podstawowych funkcji
Podstawowe operacje matematyczne  
- matematyka w języku D, operatory matematyczne
Instrukcje sterujące  
- if, switch, for, while, foreach
Funkcje  
- pojęcie funkcji i procedury
Tablice  
- pojęcie tablicy, operacje na tablicy; tablice dynamiczne i assocjasyjne.
Napisy  
- przechowywanie, operacje, konwersje
Kontrakty  
- programowanie kontraktowe, assercje, testy jednostkowe, czyli jak zabezpieczyć się przed błędami
Biblioteka standardowa  
- jak korzystać z plików biblioteki standardowej; importowanie innych modułów
Moduły i pakiety  
- jak pisać własne moduły i pakiety, czyli podzielić program na wiele części
Ćwiczenia  

Zaawansowany D

edytuj
Typy złożone  
- deklarowanie własnych typów, typy wyliczeniowe, unie i struktury
Obsługa plików  
- odczyt i zapis do pliku, operacje na plikach i katalogach
Więcej o kompilowaniu  
- Kompilacja, linkowanie i Makefile
Zaawansowane operacje matematyczne  
- używanie funkcji matematycznych, operacje na liczbach zespolonych
Przeciążanie funkcji  
- po co i jak przeciązać funkcje
Wskaźniki  
- wskaźniki, zarządzenie pamięcią
Powszechne praktyki  
- kilka dobrych zwyczajów programisty D
Przenośność programów  
- kilka ważnych informacji nt. przenośności programów napisanych w języku D
Łączenie z innymi językami  
- łączenie języka D z innymi językami programowania (C, Python, Fortran)
Ćwiczenia  

Obiekty w D

edytuj
Programowanie obiektowe  
- idea klas i obiektów, pól i metod
Konstruktor i destruktor  
- konstruktor i destruktor, więcej o zarządzaniu pamięcią w D
Przeładowywanie operatorów  
- jak ułatwić korzystanie z pewnych obiektów
Dziedziczenie i interfejsy  
- jak rozszerzyć już istniejącą klasę
Składniki statyczne  
- pola i metody statyczne
Kontrakty w obiektach  
- kontrakty w metodach, testy jednostkowe, niezmienniki obiektów
Kontrola dostępu  
- dostęp publiczny i prywatny
Ćwiczenia  

D dla wtajemniczonych

edytuj
Wyjątki  
- sytuacje wyjątkowe w D oraz ich obsługa
Kompilacja warunkowa  
- generacja różnego kodu na etapie kompilacji (version, debug)
Szablony  
- idea szablonów (template), interakcja z kompilatorem (pragma)
Mixiny  
- czyli programy piszące inne programy
Funkcje czasu kompilacji  
- wywoływanie funkcji w czasie kompilacji
Delegaty i leniwa ewaluacja  
- elementy programowania funkcyjnego
Krotki typów  
- TypeTuple, czyli manipulowanie zbiorami typów i szablonami o zmiennej ilości argumentów
Metaprogramowanie  
- czyli połączenie templetów, mixinów i funkcji czasu kompilacji
Wątki  
- Programowanie wielowątkowe (thread, synchronized)
Odpluskwianie  
- Używanie debugera gdb do znajdywania błędów w programach
Profilowanie oraz analiza pokrycia  
- Między innymi, jak mierzyć ile czasu zajmuje wykonanie różnych cześci programu, które fragmenty zoptymalizować oraz czy nasz program jest dobrze przetestowany

Język D wersja 2

edytuj
D2  
- różne drobne zmiany, dodatki, i przestarzałe funkcjonalności.
Const  
- const, immutable, inout/ref, shared, pure, nothrow, string, @safe, @property, .idup, .dup, thread local storage (TLS)
D/D2_phobos  
- różne zmiany w bibliotece standardowej, nowe moduły, przestarzałe funkcje i moduły
Type traits  
- nowy poziom metaprogramowania generycznego
Zakresy i iteracja  
- range, foreach, iteratory
Równoległość i współbieżność  
- mechanizmy programowania równoległego i współbieżnego, kanały

Dodatki

edytuj
Wprowadzenie dla programistów C/C++  
- Super szybkie wprowadzenie dla programistów z języków C/C++ (skrót rozdziału "D dla początkujących")
Wyrażenia regularne  
- Wprowadzenie do obsługi wyrażeń regularnych w D
DFL  
- Wprowadzenie do osługi interfejsu graficznego poprzez bibliotekę DFL
Bazy danych  
- Wprowadzenie do obsługi baz danych w D
Programowanie sieciowe  
- Proste aplikacje typu klient-serwer w D
Indeks słów kluczowych  
- Indeks słów kluczowych języka D wraz z odnośnikami do pierwszego użycia w podręczniku
Test  
- Kilka testów wraz z odpowiedziami, które pomogą tobie ocenić znajomość języka oraz przygotują na ewentualny egzamin.