Ogranicznik (programowanie)

Ogranicznik – w programowaniu element składni określonego języka programowania, służący do wyodrębniania w kodzie źródłowym określonego elementu: jednostki leksykalnej, instrukcji lub bloku.

Funkcje ogranicznika edytuj

Ogranicznik jest elementem składni konkretnego języka programowania umożliwiającym wyodrębnianie z kodu źródłowego, który jest na podstawowym poziomie ciągiem znaków alfabetu danego języka, pewnych elementów lub bloków, mających zdefiniowane w języku znaczenie i interpretację. Ogranicznik może być separatorem lub ogranicznikiem o funkcji wyodrębniania jednostek tekstu uszeregowanych na wyższym poziomie abstrakcji niż pojedyncza jednostka leksykalna, wyodrębniając takie elementy jak instrukcje proste, złożone czy bloki, sekcje, moduły itp., a także jednostek leksykalnych złożonych.

Obrazowo, w dużym uproszczeniu można rolę ograniczników porównać do nawiasów lub znaków interpunkcyjnych i akapitów.

Rodzaje ograniczników edytuj

Można wyróżnić następujące rodzaje ograniczników:

  • separator
  • ogranicznik instrukcji
  • ogranicznik literału złożonego
  • ogranicznik specyfikacji parametrów i argumentów
  • ogranicznik specyfikacji indeksów
  • ogranicznik komentarzy
  • nawiasy w wrażeniach

Występowanie, bądź nie, danego ogranicznika w określonym języku programowania zależy od specyfiki składni rozpatrywanego języka.

Ograniczniki edytuj

Separator edytuj

Osobny artykuł: Separator (programowanie).

Separatory to rodzaj ograniczników rozdzielających jednostki leksykalne. Typowym przykładem separatorów są białe znaki jak spacja, znaki nowej linii, tabulacja itp.

Ograniczniki instrukcji edytuj

Ograniczniki instrukcji służą do wyodrębniania większych jednostek – zdań języka programowania – zapisanych w kodzie źródłowym. Do wyodrębniania instrukcji prostych stosuje się zwykle jedno z dwu rozwiązań:

separator instrukcji
tj. taki ogranicznik, który rozdziela dwie instrukcje, nie ma więc potrzeby stosować separatora po ostatniej instrukcji w ciągu,
terminator instrukcji
tj. taki organicznik, który zamyka instrukcję i musi wystąpić po każdej instrukcji.

Do wyodrębniania instrukcji złożonych służą specjalne symbole lub słowa kluczowe:

Ograniczniki bloków wyznaczają największe części kodu jak cały program, moduł, podprogram, pakiet i inne specyficzne dla określonego języka, np. moduł w Turbo Pascal[6] : unit .. end.; słowo (podprogram) w Forth[7][9][10] : : .. ;; w Lisp: ( .. ) .

Ogranicznik literału złożonego edytuj

Literały złożone składają się w typowym przypadku, z ciągu pewnych literałów prostych. Początek takiego ciągu wyznacza ogranicznik otwierający, a koniec organicznik zamykający. Specyfika danego literału decyduje o tym czy w takim ciągu – liście literałów prostych wymagane jest stosowanie separatorów listy, czy też nie:

ograniczniki literałów łańcuchowych
Osobny artykuł: Literał łańcuchowy.
np. cudzysłów " w języku C[1][2][3][4], apostrof ' w języku Pascal[5][6][7],
ograniczniki literałów tablicowych
Osobny artykuł: Literał tablicowy.
np. ( ) w języku Visual Basic[11], VBA[12],
ograniczniki literałów zespolonych
Osobny artykuł: Literał zespolony.
np. ( ) w języki Fortran 77[13],
ograniczniki literałów zbiorowych
Osobny artykuł: Literał zbiorowy.
np. [ ] w języku Pascal[5][6][7], { } w języku Modula 2[8],
ograniczniki literałów rekordowych
np. ( ) w języku Pascal[5][6][7],
ograniczniki list
np. [ ] w języku Turbo Prolog[14].

Ogranicznik specyfikacji parametrów i argumentów edytuj

Osobny artykuł: Parametr (informatyka).
Osobny artykuł: Argument (informatyka).

Specyfikacja parametrów występuje w nagłówku lub prototypie podprogramu, natomiast argumentów w instrukcji wywołania lub w wywołaniu funkcji w wyrażeniu, po identyfikatorze podprogramu. Najczęściej dla obu specyfikacji stosuje się te same ograniczniki w postaci nawiasów okrągłych ( ..), np. write('wynik=',result);

Ogranicznik specyfikacji indeksów edytuj

Osobny artykuł: Indeks (informatyka).

Ograniczniki specyfikacji indeksów dla struktur takich jak tablice, listy itp., zapisuje się zwykle po identyfikatorze danej struktury, ujęte w odpowiednie nawiasy. Do najczęściej stosowanych rozwiązań należą:

nawiasy kwadratowe [ ]
np. C[1][2][3][4], Pascal[5][6][7]
nawiasy okrągłe ( )
np. Visual Basic[11], VBA[12]

W niektórych językach czy systemach obliczeniowych, stosuje się inne nietypowe rozwiązania, np.

nawiasy kątowe < >
np. Snobol[15].

Ogranicznik komentarzy edytuj

Osobny artykuł: Komentarz (informatyka).

Komentarze zapisywane są w zależności od rodzaju komentarzy zastosowanych w języku, albo jako komentarze blokowe, które wymagają symbolu otwierającego (np. /* w języku C[1][2][3][4], C++[3], PL/I[16][17]; { w języku Pascal[5][6][7]) i symbolu zamykającego (np. */ w języku C[1][2][3][4], C++[3], PL/I[16][17]; } w języku Pascal[5][6][7]), albo jako komentarze liniowe w którym ograniczniki otwierające zapisuje się w postaci symbolu (np. // w C++[3]), a koniec komentarza jako znak nowej linii.

Nawiasy w wrażeniach edytuj

Osobny artykuł: Nawias.

Większość uniwersalnych języków programowania umożliwia zapis wyrażeń w postaci wrostkowej. Taka forma notacji wymaga użycia nawiasów do wymuszenia prawidłowej kolejności obliczeń. Najczęściej nawiasy są zapisywane w postaci typowej dla notacji matematycznej tzn. za pomocą znaków: otwierającego ( i zamykającego ). Nawiasy zagnieżdżone mają identyczną formę i nie stosuje się różnicowania graficznego zapisu nawiasów wewnętrznych.

Zobacz też edytuj

Przypisy edytuj

  1. a b c d e f Brian W. Kernighan, Dennis M. Ritche: Język C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1067-3. (pol.).
  2. a b c d e f Jan Bielecki: Turbo C z grafiką na IBM PC. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990, seria: Mikrokomputery. ISBN 83-204-1101-7. (pol.).
  3. a b c d e f g h i Jan Bielecki: Od C do C++, programowanie obiektowe w języku C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990. ISBN 83-204-1332-X. (pol.).
  4. a b c d e f Podręcznik języka C na Wikibooks
  5. a b c d e f g h Michał Iglewski, Jan Madey, Stanisław Matwin: Pascal. Język wzorcowy – Pascal 360. Wyd. trzecie – zmienione. Warszawa: Wydawnictwa Naukowo-Techniczne, 1984, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-85060-53-7. ISSN 0867-6011. (pol.).
  6. a b c d e f g h i Andrzej Marciniak: Borland Pascal 7.0. Poznań: Nakom, 1994, seria: Biblioteka Użytkownika Mikrokomputerów. ISBN 83-85060-53-7. ISSN 0867-6011. (pol.).
  7. a b c d e f g h i Mike Ducka, tłumaczenie: Marcin Turski: Języki mikrokomputerów. Przewodnik dla początkujących. Basic, Pascal, Logo, Prolog, Comal, Forth. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988. ISBN 83-204-0966-7. (pol.).
  8. a b c Niklaus Wirth: Modula 2. Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0828-8. ISSN 0867-6011. (pol.).
  9. Jan Bielecki: Język FORTH. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988, seria: Mikrokomputery. ISBN 83-204-0930-6. (pol.).
  10. Jan Ruszczyc: Poznajemy FORTH. Warszawa: SOETO, 1987, seria: Informatyka mikrokomputerowa. (pol.).
  11. a b Podręcznik Visual Basic na Wikibooks
  12. a b John Walkenbach: Excel 2003 PL. Programowanie w VBA.. HELION, 2004. ISBN 837361-504-0. (pol.).
  13. Ryszard K. Kott, Krzysztof Walczak: Programowanie w języku Fortran 77. Warszawa: Wydawnictwa Naukowo-Techniczne, 1991. ISBN 83-204-1362-1. (pol.).
  14. Janusz Szajna, Marian Adamski, Tomasz Kozłowski: Turbo Prolog. Programowanie w języku logiki.. Warszawa: Wydawnictwa Naukowo-Techniczne, 1991, seria: Mikrokomputery. ISBN 83-204-1395-8. (pol.).
  15. Paweł Gizbert-Studnicki, Jerzy Kaczmarczuk: Snobol4. Warszawa: Wydawnictwa Naukowo-Techniczne, 1984, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0546-7. (pol.).
  16. a b Jan Bielecki: Rozszerzony PL/I i JCL w systemie OS/RIAD. Warszawa: Państwowe Wydawnictwo Naukowe, 1986, seria: Biblioteka Informatyki. ISBN 83-01-06146-4. (pol.).
  17. a b M. I. Auguston i inni: Programowanie w języku PL/1 OS JS. Warszawa: Państwowe Wydawnictwo Naukowe, 1988. ISBN 83-01-07463-9. (pol.).

Bibliografia edytuj