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łowym[1][2],
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 efektywne[3],
- definiują często zestaw operacji podstawowych dla określonego zagadnienia, np. funkcje matematyczne, operacje we-wy, zarządzenie pamięcią operacyjną, itp.[3].
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[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.:
- Algol[1]
- AWK[4]
- Basic
- Clipper[5]
- Fortran[6][1]
- Icon[7]
- JEAN[8]
- Modula 2[9]
- PL/I[2]
- PL/M[10][3]
- Snobol[11]
- Turbo Prolog[12]
- 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 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.
Zobacz też
Przypisy
- 1 2 3 Joanna 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
- 1 2 3 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
- 1 2 3 Jan 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] .
- ↑ Wojciech Rogowski , Arkadiusz Serodziński , Clipper 5.0, Warszawa: Wydawnictwo PLJ, 1991, ISBN 83-85190-20-1, OCLC 749775734 .
- ↑ Ryszard K. Kott , Krzysztof Walczak , Programowanie w języku Fortran 77, Warszawa: Wydawnictwa Naukowo-Techniczne, 1991, ISBN 83-204-1362-1, OCLC 749999902 .
- ↑ Ralph E. Griswold, Madge T. Griswold, Icon, Wydawnictwa Naukowo-Techniczne, Warszawa 1987, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-0871-7
- ↑ 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
- ↑ Niklaus Wirth, Modula 2, Wydawnictwa Naukowo-Techniczne, Warszawa 1987, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-0828-8
- ↑ Jan Bielecki, PL/M język programowania mikroprocesorów, Wydawnictwa Komunikacji i Łączności, Warszawa 1987, Seria: Elektronizacja, zeszyt 25
- ↑ Paweł Gizbert-Studnicki, Jerzy Kaczmarczuk, Snobol4, Wydawnictwa Naukowo-Techniczne, Warszawa 1984, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-0546-7
- ↑ 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
- 1 2 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
- ↑ John Walkenbach, Excel 2003 PL. Programowanie w VBA., HELION 2004 r., ISBN 83-7361-504-0
- ↑ Tadeusz Mykowiecki , dBase, FoxBase, bazy danych, Warszawa: Wydawnictwa Naukowo-Techniczne, 1992, ISBN 83-204-1345-1, OCLC 749168683 .
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, ISBN 83-204-1342-7
- John E. Nicholls, Struktura języków programowania, Wydawnictwa Naukowo-Techniczne, Warszawa 1980, Seria: Informatyka, ISBN 83-204-0246-8