Ada 95 Autorzy: Z. Huzar, Z. Fryźlewicz, I. Dubielewicz, B. Hnatkowska, J. Waniczek Ada 95 jest uniwersalnym językiem programowania przeznaczonym do tworzenia dużych systemów oprogramowania. Język jest międzynarodowym standardem, rekomendowanym przez ISO (International Organization for Standardization) oraz przez IEC (International Electrotechnical Commision). Ada 95, podobnie jak jej poprzednia wersja Ada 83, powstała pod auspicjami Departamentu Obrony USA. Obecnie jest głównym językiem programowania używanym do tworzenia oprogramowania dla potrzeb przemysłu zbrojeniowego USA oraz NATO. Książka jest przeznaczona dla informatyków, w szczególności dla programistów i projektantów oprogramowania systemów wbudowanych. Celem podręcznika jest przedstawienie głównych konstrukcji Ady 95 i ukazanie związanych z nimi koncepcji tworzenia oprogramowania. Dalsza część rozdziału jest krótkim przeglądem konstrukcji języka. W szczególności, zwraca się uwagę na te elementy Ady 95, których nie zawierała Ada 83. Część ta, przy pierwszym czytaniu, może być pominięta; można do niej wrócić, jako do pewnego podsumowania, po przestudiowaniu podręcznika. Układ podręcznika jest warstwowy. Pierwszą, podstawową warstwę wyznaczają rozdziały 2-10, które przedstawiają sekwencyjną część języka. Znajomość tej części języka wystarcza do tradycyjnego programowania strukturalnego. Rozdział 11 wyznacza warstwę sekwencyjnego programowania obiektowego, a rozdział 12 - warstwę programowania współbieżnego. Rozdział 13, zawierający kilka przykładowych programów, jest pewnego rodzaju podsumowaniem wcześniejszych rozdziałów. Następne warstwy odnoszące się do programowania systemowego, systemów czasu rzeczywistego i programowania rozproszonego opisują odpowiednio rozdziały 14, 15 i 16. Rozdział 17 jest poświęcony omówieniu standardowych i przeglądowi s pecjalistycznych bibliotek Ady 95. Ostatni rozdział 18 nie dotyczy języka lecz środowiska programistycznego ObjectAda. Jest to jedno z pierwszych profesjonalnych środowisk implementujących jądro i aneksy A-D normy języka. Jednostki leksykalne Typy Deklaracje i wyrażenia Instrukcje Podprogramy Wyjątki Typy wskaźnikowe Pakiety Struktura programów Mechanizmy programowania obiektowego Zadania i obiekty chronione Przykładowe programy Mechanizmy programowania systemowego Mechanizmy programowania systemów czasu rzeczywistego Mechanizmy programowania systemów rozproszonych Biblioteki standardowe i specjalizowane środowisko programistyczne ObjectAda Słowniczek terminów Składnia języka Atrybuty Pragmy Ada 95 - spis treści: --------------------- O Autorach Przedmowa Wstęp Historia Miejsce Ady w cyklu życia oprogramowania Układ książki Rozdział 1. Przegląd konstrukcji języka 1.1. Wprowadzenie 1.2. Typy 1.3. Operacje 1.4. Instrukcje 1.5. Struktura logiczna programu 1.6. Struktura fizyczna programu 1.7. Inne właściwości 1.8. Notacja składni Rozdział 2. Jednostki leksykalne 2.1. Przykład programu 2.2. Kategorie jednostek 2.2.1. Identyfikatory 2.2.2. Liczby 2.2.3. Literały znakowe i napisowe 2.3. Komentarz Rozdział 3. Typy 3.1. Pojęcia podstawowe i klasyfikacja typów 3.2. Typy skalarne 3.2.1. Typ wyliczeniowy 3.3. Typy numeryczne 3.3.1. Typ całkowity 3.3.2. Typy rzeczywiste 3.4. Typy tablicowe 3.5. Typy rekordowe 3.6. Zgodność typów Rozdział 4. Deklaracje i wyrażenia 4.1. Deklaracje i obiekty 4.1.1. Obiekty 4.1.2. Deklaracja obiektów 4.2. Nazwy i wyrażenia 4.2.1. Nazwy 4.2.2. Wyrażenia Rozdział 5. Instrukcje 5.1. Klasyfikacja instrukcji 5.2. Instrukcja przypisania 5.3. Instrukcja bloku (declare) 5.4. Instrukcja warunkowa (if) 5.5. Instrukcja wyboru (case) 5.6. Instrukcja pętli (loop) 5.7. Instrukcja skoku strukturalnego (exit) 5.8. Instrukcja skoku (goto) Rozdział 6. Podprogramy 6.1. Podprogramy pojęcia podstawowe 6.2. Funkcje 6.3. Operatory 6.4. Procedury 6.5. Przekazywanie parametrów do podprogramów 6.6. Przeciążanie podprogramów 6.7. Podprogramy rodzajowe 6.8. Zasięg i widzialność Rozdział 7. Wyjątki 7.1. Wyjątki predefiniowane 7.2. Deklarowanie i zgłaszanie wyjątków 7.3. Obsługa wyjątków 7.4. Propagacja wyjątków 7.5. Pakiet Ada.Exceptions Rozdział 8. Typy wskaźnikowe 8.1. Typy wskaźnikowe ograniczone 8.2. Typy wskaźnikowe ogólne 8.3. Wskaźniki jako parametry podprogramów 8.4. Wskaźniki na podprogramy Rozdział 9. Pakiety 9.1. Struktura pakietu 9.2. Typy prywatne 9.3. Ograniczone typy prywatne 9.4. Operacje elementarne i typy pochodne 9.5. Pakiety rodzajowe 9.6. Parametry rodzajowe Rozdział 10. Struktura programów 10.1. Jednostki kompilacji i jednostki biblioteczne 10.2. Podjednostki kompilacji 10.3. Pakiety potomne 10.4. Prywatne pakiety potomne 10.5. Zasięg i widzialność bytów 10.6. Przemianowania Rozdział 11. Mechanizmy programowania obiektowego 11.1. Dziedziczenie typów 11.2. Klasy i polimorfizm 11.3. Typy i podprogramy abstrakcyjne 11.4. Wielokrotne implementacje specyfikacji abstrakcyjnej 11.5. Nadzorowanie obiektów Rozdział 12. Zadania i obiekty chronione 12.1. Deklarowanie zadań 12.2. Spotkania 12.3. Priorytety, zależności czasow i kolejkowanie zadań 12.4. Obiekty chronione 12.4.1. Bariery i zadania 12.4.2. Instrukcja rekolejkowania 12.5. Instrukcja select i jej formy 12.6. Oczekiwanie selektywne 12.6.1. Czekanie na wiele spotkań 12.6.2. Gałęzie z dozorami 12.6.3. Przeterminowanie spotkań 12.6.4. Gałąź else 12.6.5. Gałąź terminate 12.7. Terminowe i warunkowe wywołanie wejścia 12.7.1. Terminowe wywołanie wejścia 12.7.2. Warunkowe wywołanie wejścia 12.8. Asynchroniczna zmiana wątku sterowania 12.9. Awaryjne kończenie zadań 12.10. Cykl życia zadań 12.11. Przykłady Rozdział 13. Przykładowe programy 13.1. Pakiet operacji stosowych 13.2. Figury geometryczne 13.3. Producenci-konsumenci 13.4. System alarmów 13.5. Sterownik konwertera analogowo-cyfrowego Rozdział 14. Mechanizmy programowania systemowego 14.1. Model i obsługa przerwań 14.2. Identyfikatory zadań 14.3. Atrybuty zadań 14.4. Inne zagadnienia Rozdział 15. Mechanizmy programowania systemów czasu rzeczywistego 15.1. Priorytety zadań 15.1.1. Priorytety bazowe 15.1.2. Problem inwersji priorytetów 15.1.3. Strategie szeregowania zadań 15.1.4. Szeregowanie wejść 15.2. Priorytety dynamiczne 15.2.1. Metoda szeregowania EDF 15.3. Synchroniczne i asynchroniczne sterowanie zadaniami 15.3.1. Synchroniczne sterowanie zadaniami 15.3.2. Asynchroniczne sterowanie zadaniami 15.3.3. Awaryjne zakończenie zadania 15.4. Uproszczenia modelu zadaniowego 15.5. Zegary i czas Rozdział 16. Mechanizmy programowania systemów rozproszonych 16.1. Model systemu rozproszonego 16.2. Kategorie jednostek bibliotecznych 16.3. Podsystem komunikacji partycji 16.4. Przykład Rozdział 17. Biblioteki standardowe i specjalizowane 17.1. Pakiet Standard 17.2. Podstawowe pakiety numeryczne 17.3. Operowanie na znakach 17.4. Operowanie na napisach 17.5. Wejście-wyjście 17.6. Tekstowe wejście-wyjście 17.7. Klauzule reprezentacji 17.8. Pakiet System 17.8.1. Pakiet System.Storage_Elements 17.8.2. Pakiet System.Storage_Pools 17.9. Pakiet Interfaces.C 17.10. Systemy informacyjne 17.11. Obliczenia numeryczne 17.12. Udogodnienia wspomagające budowę i testowanie oprogramowania. Rozdział 18. Środowisko programistyczne ObjectAda 18.1. Zintegrowane środowisko ObjectaAda (IDE) 18.1.1. File menu 18.1.2. Edit menu 18.1.3. Search menu 18.1.4. Project menu 18.1.5. Debug menu 18.1.6. Tools menu 18.1.7. Window menu 18.1.8. Help menu 18.2. GUI Builder 18.3. Pozostałe własności ObjectAda 18.4. Podsumowanie Dodatek A. HtmlDirectSłowniczek terminów Dodatek B. Składnia języka Dodatek C. Atrybuty Dodatek D. Pragmy Literatura Skorowidz Wydawnictwo Helion, marzec 1998 ISBN: 83-86718-38-2 Format: B5, 372 strony Więcej informacji: http://www.helion.com.pl/ksiazki/ada95.htm