INNE EBOOKI AUTORA
Autor:
Wydawca:
Format:
epub, mobi, ibuk
Książka jest techniczno-popularyzacyjną pozycją traktującą o programowaniu oraz tematach pokrewnych i jest napisana z myślą o początkujących oraz średniozaawansowanych programistach. Celem publikacji jest przedstawienie ciekawych elementów programowania oraz ekosystemu programistycznego, a także przedstawienie sposobów radzenia sobie z podstawowymi problemami, oraz wyjaśnienia w przystępny sposób pewnych elementów, z którymi często osoby początkujące oraz średniozaawansowane mają trudności.
Z książki dowiesz się: - jak poradzić sobie z trudnościami napotykanymi podczas programowania, - jak operować na danych tekstowych, binarnych, plikach, strumieniach, pakietach danych, oraz jakie są najczęściej popełniane błędy, - jakie są różnice pomiędzy językami programowania w kwestiach, które na pierwszy rzut oka wydawały się identyczne, - jak wybrane, często używane, mechanizmy, funkcje czy biblioteki działają "od kuchni", - o wielu detalach, które normalnie pozostałyby niezauważone, - zaprzyjaźnisz się z niskopoziomowymi aspektami informatyki.
Powinieneś: - znać podstawy programowania (np. wiedzieć czym jest pętla), - mieć w swoim dorobku przynajmniej 1 program dłuższy niż 50 linii.
Rok wydania | 2015 |
---|---|
Liczba stron | 624 |
Kategoria | Programowanie |
Wydawca | Wydawnictwo Naukowe PWN |
ISBN-13 | 978-83-01-18460-5 |
Numer wydania | 1 |
Język publikacji | polski |
Informacja o sprzedawcy | ePWN sp. z o.o. |
INNE EBOOKI AUTORA
POLECAMY
Ciekawe propozycje
Spis treści
Przedmowa | 11 |
Wstęp | 15 |
O autorze, o książce | 15 |
Podziękowania | 18 |
Zgłaszanie błędów i errata | 18 |
Część I. Kilka codziennych czynności | 21 |
1. Konsola i interpreter poleceń | 23 |
1.1. Wykorzystanie interpretera | 27 |
1.2. Przekierowania | 28 |
1.3. Przykładowe polecenia wykorzystujące przekierowania | 32 |
1.4. Bieżący katalog roboczy | 33 |
1.5. Zmienne środowiskowe | 34 |
1.6. Skrypt startowy | 38 |
1.7. Konsola okiem programisty | 40 |
Ćwiczenia | 44 |
Bibliografia | 44 |
2. Czytanie nieznanego języka | 45 |
2.1. Podobieństwa i różnice | 48 |
2.2. Studium przypadku | 49 |
2.3. Uwagi na koniec | 53 |
Ćwiczenia | 54 |
Bibliografia | 56 |
Część II. Podstawy | 57 |
3. Podstawy architektury komputerów | 59 |
3.1. Własny (wirtualny) komputer | 62 |
3.2. Rejestry procesora | 63 |
3.3. Kod maszynowy | 65 |
3.4. Zestaw instrukcji | 67 |
3.5. Pamięć operacyjna | 84 |
3.6. Komunikacja z urządzeniami | 86 |
3.7. Przerwania | 88 |
3.8. Konsola znakowa | 90 |
3.9. Programowalny timer | 90 |
3.10. Przykładowy „kompilator” | 91 |
3.11. Emulator | 96 |
Ćwiczenia | 102 |
Bibliografia | 104 |
4. Typy liczb naturalnych i całkowitych | 105 |
4.1. Zapis binarny i heksadecymalny | 108 |
4.2. Typy liczb naturalnych | 111 |
4.3. Liczby całkowite | 114 |
4.4. Little i Big Endian | 120 |
4.5. Przepełnienie zmiennych naturalnych i całkowitych | 122 |
4.6. Przycięcie wyniku | 126 |
4.7. Saturacja | 127 |
4.8. Zasygnalizowane przepełnienie | 128 |
4.9. Niezdefiniowane zachowanie | 128 |
4.10. Awans zmiennej | 130 |
4.11. Duże liczby | 130 |
4.12. Obsługa przepełnienia w praktyce | 131 |
Ćwiczenia | 132 |
Bibliografia | 133 |
5. Typy pseudorzeczywiste | 135 |
5.1. Wstęp do liczb zmiennoprzecinkowych | 137 |
5.2. Ułamki binarne | 139 |
5.3. IEEE 754 i zmienne binarne | 142 |
5.4. Kodowanie IEEE 754 Double Precision | 143 |
5.5. Wartości specjalne i zdenormalizowane | 149 |
5.6. Istotne wartości zmiennoprzecinkowe | 155 |
5.7. Porównanie liczb zmiennoprzecinkowych | 160 |
5.8. Dziesiętne typy zmiennoprzecinkowe | 163 |
5.9. Typy stałoprzecinkowe | 166 |
Ćwiczenia | 169 |
Bibliografia | 170 |
6. Znaki i łańcuchy znaków | 173 |
6.1. ASCII i strony kodowe | 176 |
6.2. Unicode | 182 |
6.3. Łańcuchy znaków | 191 |
6.4. Konwersja kodowań | 203 |
Ćwiczenia | 205 |
Bibliografia | 206 |
Część III. Wykonywanie programu | 209 |
Bibliografia | 212 |
7. Procesy | 213 |
7.1. Procesy w systemie operacyjnym GNU/Linux | 216 |
7.2. Procesy w systemie operacyjnym Windows | 222 |
7.3. Programowe tworzenie nowego procesu | 226 |
7.4. Plik wykonywalny a nowy proces | 234 |
7.5. API debuggera | 240 |
7.6. Dziedziczenie po procesie rodzicu | 249 |
7.7. Inne operacje na zewnętrznych procesach | 250 |
Ćwiczenia | 251 |
Bibliografia | 252 |
8. Wątki | 253 |
8.1. Tworzenie nowych wątków | 255 |
8.2. Typy wątków i ich przełączanie | 262 |
8.3. Kontekst wątku | 267 |
8.4. Zmienne lokalne dla wątku | 272 |
8.5. Pula wątków | 274 |
Bibliografia | 278 |
9. Synchronizacja | 279 |
9.1. Blokujące atomowe bariery | 287 |
9.2. Spinlocki – wirujące blokady | 292 |
9.3. Muteksy i sekcje krytyczne | 296 |
9.4. Zdarzenia i zmienne warunkowe | 308 |
9.5. Problemy w synchronizacji | 321 |
Ćwiczenia | 329 |
Bibliografia | 329 |
Część IV. Pliki i formaty danych | 331 |
Bibliografia | 332 |
10. System plików | 333 |
10.1. Podstawowe operacje na systemie plików | 336 |
10.2. Prawa dostępu | 347 |
10.3. Operacje na plikach i danych | 364 |
10.4. Ciekawe mechanizmy systemu plików | 374 |
Ćwiczenia | 378 |
Bibliografia | 380 |
11. Pliki binarne i tekstowe | 383 |
11.1. Pliki tekstowe | 385 |
11.2. Pliki binarne | 392 |
11.3. Wstęp do serializacji | 404 |
11.4. Formaty plików | 406 |
Ćwiczenia | 407 |
Bibliografia | 408 |
12. Format BMP i wstęp do bitmap | 409 |
12.1. Grafika rastrowa | 411 |
12.2. Canvas, surface, image, ... | 418 |
12.3. Przegląd popularnych formatów pikseli | 419 |
12.4. Wyświetlenie bitmapy | 423 |
12.5. Ogólna struktura pliku BMP | 429 |
12.6. Nagłówek BITMAPFILEHEADER | 430 |
12.7. Nagłówek BITMAPINFOHEADER | 433 |
12.8. Słowo o implementacji | 436 |
12.9. Implementacja 24-bitowego BI_RGB | 437 |
12.10. Paleta kolorów | 447 |
12.11. Kompresja RLE w wydaniu BMP | 448 |
12.12. Implementacja RLE8 | 450 |
12.13. Podsumowanie | 453 |
Ćwiczenia | 453 |
Bibliografia | 456 |
13. Format PNG | 457 |
13.1. Struktura PNG | 459 |
13.2. Bloki IHDR oraz IEND | 463 |
13.3. Blok IDAT, kompresja i filtry adaptacyjne | 466 |
13.4. Prosty dekoder | 470 |
Ćwiczenia | 475 |
Bibliografia | 476 |
Część V. Komunikacja | 477 |
Bibliografia | 485 |
14. Komunikacja międzyprocesowa | 487 |
14.1. Potoki | 489 |
14.2. Nazwane potoki | 499 |
14.3. Gniazda domeny UNIX i socketpair | 512 |
14.4. Pamięć współdzielona | 520 |
14.5. Wiadomości w WinAPI | 526 |
Ćwiczenia | 531 |
Bibliografia | 531 |
15. Komunikacja sieciowa | 533 |
15.1. Wstęp do sieci TCP/IP | 535 |
15.2. Gniazda TCP oraz DNS | 550 |
15.3. Nasłuchujące gniazda TCP oraz HTTP | 567 |
15.4. Gniazda UDP i peer-to-peer | 592 |
Ćwiczenia | 599 |
Bibliografia | 601 |
Programowanie dla zabawy | 603 |
Ćwiczenia | 617 |
Bibliografia | 617 |
Zakończenie | 619 |
Indeks | 621 |