Podprogram główny

Z Wikipedii, wolnej encyklopedii

Podprogram główny – zdefiniowany w kodzie źródłowym, wybrany podprogram, od którego rozpocznie się wykonanie gotowego programu. Wyróżnienie więc podprogramu głównego spośród innych bloków, ma na celu wskazanie programowi łączącemu tej ingresji, która ma być wejściową dla gotowej aplikacji. Różne języki programowania w zależności od swojej specyfiki posługują się różną nomenklaturą dla określenia tego pojęcia oraz we własny, specyficzny sposób definiują metodę wskazania podprogramu głównego. Można jednak wyróżnić kilka najczęściej spotykanych konstrukcji.

Sposoby specyfikacji podprogramu głównego[edytuj | edytuj kod]

Można wyróżnić następujące, najczęściej spotykane sposoby specyfikacji podprogramu głównego:

Języki programowania[edytuj | edytuj kod]

C[edytuj | edytuj kod]

W języku C podprogram główny definiuje się jako funkcję o nazwie (identyfikatorze) main[3][4][5]. Ten sposób stosowany jest także w językach pokrewnych jak np. C++[5], C--, itp.

main()
{
}

Podprogram taki może przyjmować argumenty; będą to argumenty wywołania programu podane w linii poleceń konsoli:

int main(int argc, char *argv[])
{
}

Liczba całkowita argc określa liczbę tych argumentów. Natomiast tablica argumentów argv (od ang. argument vector) to wskaźnik do tablicy, w której poszczególnymi elementami są adresy stringów. Te stringi, to kolejne parametry wywołania programu. Bardziej formalnie – zapis char *argv[] jest tablicą wskaźników do (ciągów) znaków[8][9]

C#[edytuj | edytuj kod]

W języku C# stosuje się podprogram główny – podobnie jak w całej rodzinie języków wywodzącej się z języka C – oznaczony specjalnym identyfikatorem Main. Jednak obiektowe ukierunkowanie tego języka sprawia, iż podprogram ten musi być metodą wybranej klasy[c][d]. Takie rozwiązanie stosowane jest także w innych językach zorientowanych obiektowo, takich jak Java.

public class Klasa {
  public static void Main (string[] args)
  {

  }
}

Pascal[edytuj | edytuj kod]

W języku Pascal kod źródłowy stanowiący program zawarty być musi w podprogramie głównym określonym blokiem program[7]. Dotyczy to także innych podprogramów. Stanowią więc one podprogramy wewnętrzne, bowiem w tym języku dopuszczalne jest definiowanie takich podprogramów z wielokrotnym ich zagłębieniem. Dopiero w kolejnych implementacjach, np. Turbo Pascal wprowadzono inne bloki główne – moduły[10].

Składnia[e][f]:

program Jakis;
begin
end.

PL/1[edytuj | edytuj kod]

W języku PL/1 procedura, która ma stanowić podprogram główny, musi uwzględniać we frazie OPTIONS słowo MAIN. W ten sposób może zostać wyróżnionych kilka procedur. Wybierana jest wtedy pierwsza z nich[6].

Składnia[e]:

Main: PROC OPTIONS(MAIN);
END Main;

Zobacz też[edytuj | edytuj kod]

Uwagi[edytuj | edytuj kod]

  1. W języku VBA podprogramem głównym może być dowolna procedura (zadeklarowana jako Sub), publiczna (zadeklarowana z modyfikatorem Public), zawarta w module; nie może to być więc podprogram funkcyjny (zadeklarowany jako Function), lub podprogram zawarty w innym module (np. module klasy)
  2. a b Mogą być nałożone określone ograniczenia lub specyficzne wymogi dla podprogramu stanowiącego podprogram główny.
  3. wymagane jest aby była to metoda publiczna i statyczna; zadeklarowana z modyfikatorami: public static
  4. C Sharp
  5. a b Identyfikator Jakis został tu przyjęty arbitralnie – może zostać użyty dowolny, prawidłowy w danym języku, identyfikator.
  6. Identyfikator programu głównego w języku Pascal nie ma znaczenia, w późniejszych implementacjach, np. Turbo Pascal, może zostać pominięty cały nagłówek porogram

Przypisy[edytuj | edytuj kod]

  1. Jan Bielecki, Język FORTH, Wydawnictwa Naukowo-Techniczne, Warszawa 1988, Seria: Mikrokomputery, ISBN 83-204-0930-6
  2. John Walkenbach, Excel 2003 PL. Programowanie w VBA., HELION 2004 r., ISBN 83-7361-504-0
  3. a b Jan Bielecki, Turbo C z grafiką na IBM PC, Wydawnictwa Naukowo-Techniczne, Warszawa 1990, Seria: Mikrokomputery, ISBN 83-204-1101-7
  4. a b Brian W. Kernighan, Dennis M. Ritche, Język C, Wydawnictwa Naukowo-Techniczne, Warszawa 1988, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-1067-3
  5. a b c d Jan Bielecki, Od C do C++, programowanie obiektowe w języku C, Wydawnictwa Naukowo-Techniczne, Warszawa 1990, ISBN 83-204-1332-X
  6. a b Jan Bielecki, Rozszerzony PL/I i JCL w systemie OS/RIAD, Państwowe Wydawnictwo Naukowe, Warszawa 1986, Seria: Biblioteka Informatyki, ISBN 83-01-06146-4
  7. a b Michał Iglewski, Jan Madey, Stanisław Matwin, Pascal. Język wzorcowy – Pascal 360., Wydawnictwa Naukowo-Techniczne, Warszawa 1984, wydanie trzecie – zmienione, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-0597-1
  8. Jerzy Grębosz: Symfonia C++. Programowanie w języku C++ orientowane obiektowo. T. I. Oficyna Kallimach, 2000, s. 220-221.
  9. Brian W. Kernighan, Dennis M. Ritchie: Język ANSI C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1999, s. 157-161. ISBN 83-204-2433-X.
  10. Andrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., seria: Biblioteka Użytkownika Mikrokomputerów ISBN 83-85060-53-7, ISSN 0867-6011