Podprogram wbudowany – podprogram standardowy, dostępny w konkretnym języku programowania do realizacji określonej operacji.

Cechy podprogramów wbudowanych 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ę, podprogram taki nie wymaga deklaracji (ani definicji) przed jego użyciem w kodzie źródłowymJoanna 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 ObliczeniowejJan Bielecki, Rozszerzony PL/I i JCL w systemie OS/RIAD, Państwowe Wydawnictwo Naukowe, Warszawa 1986, Seria: Biblioteka Informatyki, , Ponadto można zauważyć, że: 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 efektywneJan Bielecki, System operacyjny ISIS-II, Wydawnictwa Naukowo-Techniczne, Warszawa 1987, wydanie drugie uzupełnione, seria: Mikrokomputery, , definiują często zestaw operacji podstawowych dla określonego zagadnienia, np. funkcje matematyczne, operacje we-wy, zarządzenie pamięcią operacyjną, itp..

Stosowanie podprogramów wbudowanych 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.

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.: Algol AWK Basic Clipper Fortran IconRalph E. Griswold, Madge T. Griswold, Icon, Wydawnictwa Naukowo-Techniczne, Warszawa 1987, Seria: Biblioteka Inżynierii Oprogramowania, JEANJerzy Bettek, Bronisław Rudak, Barbara Rudakowa, Język konwersacyjny JEAN, Wydawnictwo Politechniki Wrocławskiej, Wrocław 1975 r., Skrypt wydany w serii Biblioteka WASC Modula 2Niklaus Wirth, Modula 2, Wydawnictwa Naukowo-Techniczne, Warszawa 1987, Seria: Biblioteka Inżynierii Oprogramowania, PL/I PL/MJan Bielecki, PL/M język programowania mikroprocesorów, Wydawnictwa Komunikacji i Łączności, Warszawa 1987, Seria: Elektronizacja, zeszyt 25 SnobolPaweł Gizbert-Studnicki, Jerzy Kaczmarczuk, Snobol4, Wydawnictwa Naukowo-Techniczne, Warszawa 1984, Seria: Biblioteka Inżynierii Oprogramowania, Turbo PrologJanusz Szajna, Marian Adamski, Tomasz Kozłowski, Turbo Prolog. Programowanie w języku logiki., Wydawnictwa Naukowo-Techniczne, Warszawa 1991, Seria: Mikrokomputery. Visual Basic i inne. 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 PascalMichał 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, , który w standardzie definiował podprogramy dotyczące we-wy, lecz późniejsze implementacje, np. Turbo PascalAndrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., seria: Biblioteka Użytkownika Mikrokomputerów , ISSN 0867-6011, 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.

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 VBAJohn Walkenbach, Excel 2003 PL. Programowanie w VBA., HELION 2004 r., . Inne przykłady to systemy takie jak MathCad, AutoCAD, dBase itp.

Zobacz też Podprogram Zmienna wbudowana

Przypisy

Bibliografia Michael Marcotty, Henry Ledgord, W kręgu języków programowania, tłumaczenie: Krysyyna Jerzykiewicz, Wydawnictwa Naukowo-Techniczne, Warszawa 1980, Seria: Biblioteka Inżynierii Oprogramowania, John E. Nicholls, Struktura języków programowania, Wydawnictwa Naukowo-Techniczne, Warszawa 1980, Seria: Informatyka,

Kategoria:Konstrukcje programistyczne