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 | edytuj kod]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 | edytuj kod]Można wyróżnić następujące rodzaje ograniczników:
- separator
- ogranicznik instrukcji
- separator instrukcji
- terminator instrukcji
- ograniczniki instrukcji blokowych
- ograniczniki bloków
- 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 | edytuj kod]Separator
[edytuj | edytuj kod]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 | edytuj kod]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:
- otwierające instrukcję blokową – np.
{
w języku C[1][2][3][4],begin
w języku Pascal[5][6][7], Modula-2[8]; - zamykające instrukcję blokową – np.
}
w języku C[1][2][3][4],end
w języku Pascal[5][6][7], Modula-2[8].
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 | edytuj kod]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
- cudzysłów " w języku C[1][2][3][4], apostrof ' w języku Pascal[5][6][7], np. Osobny artykuł:
- ograniczniki literałów tablicowych
- Visual Basic[11], VBA[12], np. ( ) w języku Osobny artykuł:
- ograniczniki literałów zespolonych
- Fortran 77[13], np. ( ) w języki Osobny artykuł:
- ograniczniki literałów zbiorowych
- [5][6][7], { } w języku Modula 2[8], np. [ ] w języku Pascal Osobny artykuł:
- 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 | edytuj kod]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 | edytuj kod]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.
Ogranicznik komentarzy
[edytuj | edytuj kod]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 | edytuj kod]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 | edytuj kod]Przypisy
[edytuj | edytuj kod]- ↑ 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.).
- ↑ 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.).
- ↑ 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.).
- ↑ a b c d e f Podręcznik języka C na Wikibooks
- ↑ 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.).
- ↑ 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.).
- ↑ 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.).
- ↑ 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.).
- ↑ Jan Bielecki: Język FORTH. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988, seria: Mikrokomputery. ISBN 83-204-0930-6. (pol.).
- ↑ Jan Ruszczyc: Poznajemy FORTH. Warszawa: SOETO, 1987, seria: Informatyka mikrokomputerowa. (pol.).
- ↑ a b Podręcznik Visual Basic na Wikibooks
- ↑ a b John Walkenbach: Excel 2003 PL. Programowanie w VBA.. HELION, 2004. ISBN 837361-504-0. (pol.).
- ↑ Ryszard K. Kott, Krzysztof Walczak: Programowanie w języku Fortran 77. Warszawa: Wydawnictwa Naukowo-Techniczne, 1991. ISBN 83-204-1362-1. (pol.).
- ↑ 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.).
- ↑ Paweł Gizbert-Studnicki, Jerzy Kaczmarczuk: Snobol4. Warszawa: Wydawnictwa Naukowo-Techniczne, 1984, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0546-7. (pol.).
- ↑ 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.).
- ↑ 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 | edytuj kod]- Michael Marcotty, Henry Ledgord, tłumaczenie: Krystyna Jerzykiewicz: W kręgu języków programowania. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1342-7. (pol.).
- John E. Nicholls: Struktura języków programowania. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Informatyka. ISBN 83-204-0246-8. (pol.).