Podprogram wbudowany jest podprogramem standardowym, który charakteryzuje się w porównaniu podprogramami bibliotecznymi czy definiowanymi przez programistę, następującymi cechami wyróżniającymi:
podprogram tak jest zdefiniowany przez standard języka programowania i dostępny w każdej jego implementacji (zachowującej zgodność ze standardem), lub ewentualnie może zostać zdefiniowany przez daną implementację,
podprogramy wbudowane są zwykle zoptymalizowane przez implementację do danego systemu komputerowego, dla którego tworzony jest kod wynikowy, dzięki czemu użycie takiego programu jest bardziej efektywne[3],
Użycie podprogramu wbudowanego w kodzie źródłowym, zwykle nie różni się od użycia pozostałych podprogramów (definiowanych, bibliotecznych), jednak jak zaznaczono wyżej, nie wymagają one najczęściej deklarowania przed ich użyciem. Wynika to z faktu, że z pewnym identyfikatorem reprezentującym dany podprogram, kojarzenie atrybutów, listy parametrów i typu ewentualnego rezultatu (w przypadku podprogramów o charakterze funkcji), zapewnione jest przez samą implementację.
W niektórych językach mogą występować pewne wyjątki od zasady braku deklaracji podprogramu wbudowanego. Np. w języku PL/I podprogramy wbudowane mogą być w ogólności stosowane bez ich deklaracji. Jednak jeżeli podprogram, charakteryzuje się tym, że nie posiada parametrów, a tym samym lista argumentów wywołania jest pusta, to albo musi taki podprogram być wywołany – bez deklaracji – z pustą listą, np. TIME(), albo wymaga deklaracji podprogramu z atrybutem BUTLIN, i wtedy wywołanie może zostać uproszczone do postaci identyfikatora, bez pary nawiasów, np. TIME[2].
Należy zauważyć, że zadeklarowanie innego obiektu, w tym innego podprogramu, o identyfikatorze identycznym jak nazwa podprogramu wbudowanego, jest w wielu językach dopuszczalne, ale skutkuje, bądź:
niedostępnością podprogramu wbudowanego, w zakresie widoczności obiektu definiowanego przez programistę, wystąpienie w kodzie danego identyfikatora, będzie odnoszone do zadeklarowanego przez programistę obiektu, bądź
wymusi konieczność stosowania nazwy kwalifikowanej lub innej specyficznej konstrukcji, w celu jawnego wskazania, że chodzi o podprogram wbudowany a nie obiekt zdefiniowany przez programistę, język musi dawać w swej składni taką możliwość, ewentualnie
podprogramy wbudowane mogą być przeciążane i na podstawie listy argumentów taki podprogram zostanie odróżniony przez translator od podprogramów definiowanych.
W pozostałych językach identyfikatory podprogramów wbudowanych są słowami zastrzeżonymi, np. Basic.
Podprogramy wbudowane w językach programowania
Języki programowania, w których występują podprogramy wbudowane to, np.:
Współcześnie definiowane języki lub implementacje starych języków, zwykle odchodzą od rozwiązania polegającego na definiowaniu podprogramów wbudowanych, na rzecz bibliotek standardowych, jako bardziej elastyczna forma tworzenia zestawu podstawowych operacji. Przykładem może być język Pascal[13], który w standardzie definiował podprogramy dotyczące we-wy, lecz późniejsze implementacje, np. Turbo Pascal[14], przeniosły takie podprogramy ze standardu języka do modułów. Tworzenie podprogramów bibliotecznych, zamiast wbudowanych, umożliwia alternatywnych zestawów podprogramów dla danego zagadnienia. W Tubro Pascalu, udostępniono oprócz modułu System zawierającego m.in. standardowe we-wy, także inne moduły, np. Crt, czy biblioteki Turbo Vision, dające bardziej zaawansowane sterowanie ekranem tekstowym[14].
Pewną specyficzną klasę podprogramów wbudowanych stanową również podprogramy wbudowane w aplikacje takie jak systemy obliczeniowe, projektowe itp., np. aplikacje pakietu MS Office, w których pewne wbudowane w te aplikacje podprogramy mogą być używane w języku VBA[15]. Inne przykłady to systemy takie jak MathCad, AutoCAD, dBase[16] itp.
↑ abcJoanna Jonkisz, Jan Makuch, Stanisław Starzak, Programowanie w językach Algol 60 i Fortran 1900, Wydawnictwo Politechniki Łódzkiej, Łódź 1982, Skrypty dla szkół wyższych, Politechnika Łódzka, Ośrodek Elektronicznej Techniki Obliczeniowej
↑ abcJan Bielecki, System operacyjny ISIS-II, Wydawnictwa Naukowo-Techniczne, Warszawa 1987, wydanie drugie uzupełnione, seria: Mikrokomputery, ISBN 83-204-0893-8
↑Opis języka AWK [online], gnu.univ.gda.pl [dostęp 2017-11-26] [zarchiwizowane z adresu 2010-05-26].
↑WojciechW.RogowskiWojciechW., ArkadiuszA.SerodzińskiArkadiuszA., Clipper 5.0, Warszawa: Wydawnictwo PLJ, 1991, ISBN 83-85190-20-1, OCLC749775734.
↑Ryszard K.R.K.KottRyszard K.R.K., KrzysztofK.WalczakKrzysztofK., Programowanie w języku Fortran 77, Warszawa: Wydawnictwa Naukowo-Techniczne, 1991, ISBN 83-204-1362-1, OCLC749999902.
↑Jerzy Bettek, Bronisław Rudak, Barbara Rudakowa, Język konwersacyjny JEAN, Wydawnictwo Politechniki Wrocławskiej, Wrocław 1975 r., Skrypt wydany w serii Biblioteka WASC
↑Janusz Szajna, Marian Adamski, Tomasz Kozłowski, Turbo Prolog. Programowanie w języku logiki., Wydawnictwa Naukowo-Techniczne, Warszawa 1991, Seria: Mikrokomputery. ISBN 83-204-1395-8
↑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