Loading AI tools
Z Wikipedii, wolnej encyklopedii
Nagłówek podprogramu – fragment kodu źródłowego stanowiący deklaratywny opis podprogramu, poprzedzający definicję bloku podprogramu zawierającego tworzony algorytm. Zawiera on identyfikator podprogramu, ewentualną listę parametrów i jeżeli jest to w danym języku programowania wymagane deklarację ich typów oraz sposobu przekazania skojarzonego z danym parametrem argumentu do podprogramu w jego wywołaniu (np. ByVal, ByRef
w Visual Basic; var
w Pascalu). Może także obejmować frazy opcjonalne lub wymagane zawierające odpowiednie deklaratory i modyfikatory, w tym między innymi deklarację typu danej zwracanej przez podprogram dla podprogramów funkcyjnych[1][2][3][4][5][6][7][8][9][10]. Jeżeli składnia danego języka przewiduje, to poprzedzony jest także odpowiednim słowem kluczowym (np. procedure
: m.in. Icon[11], Pascal[2][3][12], PL/I[4][5]; proc
: m.in. Comal[12], PL/I (opcjonalny skrót)[4][5]; function
: m.in. Pascal[2][3][12], Visual Basic[10], Fortran[13][14][15]; subroutine
: m.in. Fortran[13][14][15]; sub
: m.in. późniejsze implementacje języka Basic, Visual Basic[9][10], Perl[16]; entry
: m.in. dodatkowe ingresje do podprogramu w języku PL/I[4][5]; property
: m.in. Visual Basic[9][10]; perform
: m.in. Cobol[17]; def
: m.in. Ruby[18], Python[19]; lub innym przewidzianym w składni konkretnego języka programowania), choć w wielu językach takiego słowa kluczowego nie ma: m.in. C, C++ i pokrewne[1][6][7][8][20].
Nagłówek podprogramu występować może w kodzie źródłowym[2][3][6][7][8]:
język programowania | definicja podprogramu |
---|---|
C, C++[6][7][8] |
int plus(int a, b);
{
/* treść podprogramu */
}
|
Pascal[2][3] |
function Plus(a, b : Integer):Integer;
begin
{ treść podprogramu }
end;
|
PL/I[4][5] |
PLUS: PROC(FIXED(5,0) A, B) RETURNS(FIXED(5,0)
/* treść podprogramu */
END;
|
type idf_type_p=procedure({parametry});
type idf_type_f=function({parametry}):result_type;
Nagłówek podprogramu, jeżeli występuje wcześniejsza, odrębna jego deklaracja (za pomocą prototypu), może w definicji[2][3][6][7][8]:
Przykład w Turbo Pascalu[3]:
unit m01;
interface
{ Pełna postać nagłówka podprogramu - deklaracja w interfejsie modułu }
procedure pr_1(var a : integer; b : char);
implementation
{ Uproszczona postać nagłówka podprogramu w jego definicji }
procedure pr_1;
{ deklaracja obiektów lokalnych }
begin
{ treść podprogramu }
end;
end.
Specjalne pliki deklaracji stosowane w takich językach programowania jak C, C++ i pochodnych, noszą w nomenklaturze informatycznej i w literaturze przedmiotu nazwę plików nagłówkowych, gdyż są stosowane do definiowania między innymi bibliotek podprogramów. Plik taki składa się właśnie z deklaracji podprogramów w postaci nagłówków podprogramów (prototypów)[6][7][8].
Również w niektórych językach, w których istnieje możliwość programowania obiektowego, nagłówek (prototyp) metody, stosuje się do definicji określonej klasy, podczas gdy sama definicja danej metody znajduje się zupełnie w innym miejscu kodu źródłowego (poza definicją klasy rozumianą jako określony fragment – wyodrębniony za pomocą zdefiniowanych ograniczników bloku – tekstu kodu źródłowego). W tych językach nagłówek metody w jej definicji umieszczonej poza definicją klasy, jest zmodyfikowany zgodnie z konwencją stosowaną w danym języku programowania, o stosowny zapis selekcji klasy, tak aby definicja metody została przypisana do właściwej klasy (różne metody w różnych klasach mogą posiadać ten sam identyfikator)[3][8].
type TOb=object
procedure m1(a : integer);
function f1(a:integer): integer;
end;
procedure TOb.m1;
begin
{ treść metody m1 klasy TOb }
end;
function TOb.f1;
begin
{ treść metody f1 klasy TOb }
end;
W innych językach cała definicja metody, obejmująca nagłówek i blok kodu, zawarta jest w definicji klasy[8].
class TOb:
u"defincja klasy zawiera także definicję metod"
def m1(a):
u"treść metody m1 klasy TOb"
def f1(a):
u"treść metody f1 klasy TOb"
Jak wyżej zaznaczono nagłówek podprogramu w pewnych sytuacjach może zawierać pewne opcjonalne frazy zawierające wybrane deklaratory bądź modyfikatory definicji.
opis | przykład |
---|---|
definicja podprogramu, nagłówek bez fraz dodatkowych |
procedure pr({parametry});
begin
{ treść podprogramu }
end;
|
deklaracja wyprzedzająca |
procedure pr({parametry}); forward;
|
podprogram zewnętrzny |
{$L nazwa_pliku}
procedure pr({parametry}); external;
|
podprogram zewnętrzny z biblioteki DLL |
procedure pr({parametry}); far; external biblioteka_dll;
procedure new_name({parametry}); far; external biblioteka_dll; name pr;
procedure new_name({parametry}); far; external biblioteka_dll; index n;
|
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.