Modyfikator (programowanie)

Modyfikator – element kodu źródłowego, stanowiący frazę pewnej konstrukcji języka programowania, której zadaniem jest zmiana standardowego działania danej konstrukcji składniowej.

Miejsce stosowania modyfikatorówEdytuj

Ponieważ modyfikatory to rodzaj fraz, nie mogą one z definicji frazy, występować w kodzie źródłowym samodzielnie, w oderwaniu od określonej konstrukcji składniowej, dla której autorzy języka bądź jego implementacji, przewidzieli zastosowanie wybranych modyfikatorów. W różnych językach konkretne modyfikatory występują więc w konkretnych, zdefiniowanych w składni, konstrukcjach. Konstrukcjami, dla których w różnych językach bądź ich implementacjach, wprowadzono modyfikatory, to zarówno instrukcje jak i deklaracje. Również miejsce literalnego zapisu modyfikatora w określonej konstrukcji zdefiniowane jest oczywiście w składni języka.

Przeznaczenie modyfikatorówEdytuj

Jak wyżej wstępnie zaznaczono, modyfikator służy do zmiany standardowego sposobu działania określonej jednostki programu. Oznacza to, iż zazwyczaj modyfikatory definiowane są w składniach języków w sposób asymetryczny. Standard języka bądź implementacji, określa działanie jednostki bez wyspecyfikowanego modyfikatora (bez jawnej specyfikacji jakiejkolwiek frazy przeznaczonej do literalnego zapisu modyfikatora). Natomiast inne, odmienne działanie danej jednostki, musi zostać jawnie zapisane przy użyciu modyfikatora. Oznacza to brak możliwości jawnego, literalnego zapisu, że dana jednostka ma być wykonana w sposób standardowy przy braku modyfikatora (sam brak zapisu modyfikatora o tym decyduje). Rzadziej spotkać można symetryczny układ modyfikatorów umożliwiający (lub wymuszający) jawną specyfikacje także standardowego sposobu działania.

Modyfikatory w językachEdytuj

Język CEdytuj

Definicje różnych standardów bądź implementacji języka C, zawierają zestaw modyfikatorów odnoszących się do deklaracji[1].

Modyfikatory zgodne ze standardem ANSI to:

  • modyfikatory typów:
    • modyfikator znaku: signed, unsigned (symetryczna struktura modyfikatorów, domyślnie signed)
    • modyfikator stałej: const (asymetryczna struktura modyfikatora)
    • modyfikator zmiennej ulotnej: volatile

Implementacja Turbo C definiuje dodatkowe modyfikatory:

  • sposobu kompilacji:
    • sposób kompilacji zgodny z językiem Pascal: pascal
    • sposób kompilacji zgodny z językiem C (domyślnie): cdecl
  • modyfikator funkcji obsługi przerwań: interrupt
  • modyfikator wskazań: near, far, huge

Język JeanEdytuj

Język Jean definiuje w swojej składni modyfikatory instrukcji. Umieszcza się je po instrukcji, której działanie ma zostać zmodyfikowane. Należy zauważyć, że modyfikatory języka Jean obejmują konstrukcje, które w większości języków programowania wysokiego poziomu są odrębnymi konstrukcjami – instrukcjami, w tym instrukcjami strukturalnymi i instrukcjami sterującymi. Większość modyfikatorów może być stosowana dla wielu instrukcji tego języka.

Modyfikatory języka Jean[2][3]:

  • modyfikator warunku: IF warunek
  • modyfikator iteracji: FOR zmienna=zakres
  • modyfikator powtórzeń: ,ilość TIMES
  • modyfikator wartości: AS wartość
  • modyfikator formatu: IN FORM wartość

Make (Borland)Edytuj

W programie Make firmy Borland zawartym w pakietach serii Turbo, stosuje się makropolecenia, których działanie może zostać zmodyfikowane za pomocą modyfikatorów. Postać takiego makropolecenia:

 $(makropolecenie modyfikatory)

Modyfikatory mają oznaczenia literowe: D, F, B lub R[4].

PerlEdytuj

W języku Perl oprócz instrukcji sterujących, analogicznych do spotykanych w większości języków programowania wysokiego poziomu, występują modyfikatory odnoszące się do instrukcji, za którą są umieszczone. Ich działanie jest więc podobne jak modyfikatorów w języku Jean. Dostępne są następujące modyfikatory instrukcji[5]:

  • instrukcja if wyrażenie
  • instrukcja unless wyrażenie
  • instrukcja while wyrażenie
  • instrukcja until wyrażenie
  • instrukcja foreach lista.

Działanie powyższych modyfikatorów jest analogiczne jak odpowiednich instrukcji sterujących. Przykładowo modyfikator 'if powoduje, że instrukcja zostanie wykonana tylko wtedy, gdy wyrażenie zwróci prawdę. Dzięki modyfikatorom istnieje możliwość implementacji w kodzie źródłowym, nie występującej w składni Perla, pętli typu repeat ... until warunek, znanej z Pascala, czy do ... while(warunek) znanej z języka C, poprzez zapis z użyciem odpowiedniego modyfikatora, np. do { ... } until (wyrażenie).

Zobacz teżEdytuj

PrzypisyEdytuj

  1. Jan Bielecki: Turbo C z grafiką dla IBM PC. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990, seria: Mikrokomputery. ISBN 83-204-1101-7. (pol.)
  2. Jerzy Bettek, Bronisław Rudak, Barbara Rudakowa, Język konwersacyjny JEAN, Wydawnictwo Politechniki Wrocławskiej, Wrocław 1975 r., skrypt wydane w serii Biblioteka WASC
  3. Kazimierz Orlicz, Język konwersacyjny JEAN z elementami programowania w Fortranie, Wydawnictwo Politechniki Wrocławskiej, Wrocław 1977 r., skrypt wydane w serii Biblioteka WASC
  4. Andrzej Marciniak: Borland Pascal 7.0 z elementami programowania. Poznan: Nakom, 1994, seria: Biblioteka Użytkownika Mikrokomputerów. ISBN 83-85060-53-7. ISSN 0867-6011. (pol.)
  5. Tom Chistiansen i inni, Programming Perl, wyd. 4th edition (covers version 5.14), www.it-ebooks.info, s. 130-131 [dostęp 2016-11-19] (ang.).