2 Ogólna charakterystyka języka Java#
2.1 Wprowadzenie#
Opisując język Java nie można dokładnie oddzielić pojęć dotyczących jego realizacji od pojęć charakteryzujących semantykę konstrukcji składniowych języka. Dzieje się tak w przypadku pojęcia pakiet w Javie, którego semantyka odwołuje się do takich terminów, jak zbiór klas umieszczonych w określonych plikach i katalogach pewnego systemu operacyjnego. Pojęcie pliku i katalogu tradycyjnie traktowane jest jako zewnętrzne w stosunku do pojęć języka programowania - tutaj jednak wprowadzono je na poziom języka, uzyskując co najmniej dwa ważne cele: niezależność programów od środowiska operacyjnego i ułatwienie pisania programów “rozproszonych” (np. w sieci Internet).
Mimo wystąpienia pewnych trudności, staraliśmy się w tym rozdziale zamieścić jedynie te informacje, które abstrahują od kwestii realizacyjnych języka. Opisowi realizacji poświęcono osobny rozdział pracy.
Efektem analizy semantycznej języka jest wydzielenie pewnych części, stanowiących zamkniętą całość i opisanie ich w oddzielnych punktach. I tak:
- w punkcie 2.2 opisano wszystkie klasyczne konstrukcje programowania imperatywnego w Javie,
- punkt 2.3 zawiera opis paradygmatu programowania zorientowanego obiektowo,
- w punkcie 2.4 scharakteryzowano mechanizm obsługi sytuacji wyjątkowych w Javie,
- w punkcie 2.5 opisano model programowania współbieżnego zrealizowany w Javie,
- punkt 2.6 opisuje sposób definiowania specjalnych programów zwanych apletami, przeznaczonych do pracy w sieci Internet w środowisku programu zwanego przeglądarką stron WWW. Aplety różnią się od aplikacji, które są programami uruchamianymi klasycznie, w środowisku systemu operacyjnego,
- w punkcie 2.7 scharakteryzowano pakiety biblioteczne Javy,
- w punkcie 2.8 opisano sposób definiowania zarządców bezpieczeństwa dla aplikacji.
Dodatkowo, w punktach 2.9 i 2.10 opisano podprogramy (służące do łączenia kodu Javy z kodem napisanym w innych językach programowania) oraz komentarze dokumentujące, umożliwiające generowanie dokumentacji kodu programu w języku HTML.
Na koniec, przedstawimy uwagi dotyczące sposobu redagowania tekstu rozdziału.
Pojęcia wprowadzane pierwszy raz przedstawiono z użyciem czcionki pogrubionej. Dla kodu Javy użyto czcionki Courier New. Standardowe elementy języka opisywane w tekście oznaczono kursywą.
Uwaga:
Zakłada się, że Czytelnik zna podstawy programowania w językach C/C++ i w pracy pominięto dokładny opis np. operatorów, a przedstawiono raczej różnice występujące w Javie w stosunku do języka C++.
Na podstawie przykładu omówimy przyjęty w pracy sposób przedstawiania reguł składniowych:
[modyfikatory] class NazwaKlasy [extends NazwaNadklasy]
[implements NazwyInterfejsów]
terminali, będących stałymi leksykalnymi nie wyróżnia się w tekście w specjalny sposób, terminale reprezentujące zmienne leksykalne oznaczono czcionką pogrubioną, nieterminale zapisujemy czcionką pochyloną i pogrubioną. Elementy opcjonalne ujmuje się w nawiasy ‘[’ i ‘]’.
Termin program Javy oznacza zarówno do aplet jak i aplikację.