Typ bazowy (typ podstawowy, typ macierzysty, typ wyjściowy) – typ danych dostępny w danym języku programowania, z którego zostaje wyprowadzony nowy, np.:
- typ pochodny
- podtyp
- agregat danych
- typ wskaźnikowy
- klasa pochodna
Zastosowanie typu bazowego
Jak z powyższej definicji wynika, typ bazowy nie jest konkretnym typem w dostępnym w danym języku programowania lecz dowolnym (lub jednym z określonych w syntaktyce języka) typem. W większości języków typ bazowy nie musi być nawet typem predefiniowanym przez język lecz może być to typ zdefiniowany w kodzie źródłowym przez programistę, który może być oparty na pewnym typie bazowym. Takie wyprowadzanie kolejnych definicji z typów bazowych we współczesnych językach programowania jest praktycznie nieograniczone.
Wyróżnienie typu bazowego nie wiąże się więc z rodzajem wartości i operacji jakie mogą być reprezentowane przez danych typ, lecz z funkcją określonego, wcześniej zdefiniowanego typu, w kodzie programu.
Typ bazowy w podtypie, typie pochodnym
Podtyp stanowi pewne ograniczenie wartości dostępnych, wybranych z typu bazowego. Operacje dostępne dla typu bazowego są dostępne również dla podtypu.
subtype miesiąc is INTEGER range 1..12;
{ brak jawnej specyfikacji typu bazowego, na podstawie literałów definiujących zakres domniemany jest typ całkowitoliczbowy } type wycinek=12..45;
Typ bazowy w agregatach danych
W definicji agregatów danych (takich jak np. tablice, listy itp.), typ bazowy określa typ elementów wchodzących w skład agregatu danych.
Przykład w Pascalu[2]:
type Tint=array[1..MAX_ARR] of integer;
W nowszych językach typ bazowy może dotyczyć struktur dynamicznych.
Przykład w Visual Basic:
Dim StackInt As New(Stack(Long))
Typ bazowy dla danych wskaźnikowych
Typ bazowy w definicji pewnego typu wskaźnikowego służy do zagwarantowania prawidłowej, wybranej interpretacji danej zapisanej w obszarze pamięci wskazywanej przez dany wskaźnik. W przypadku wskaźników bez typu bazowego (tzw. wskaźników adresowych), wyłuskanie wartości (pobranie wartości spod wskazywanego adresu) nie daje możliwości interpretacji danej. Jeżeli wskaźnik jest bazowany na określonym typie, interpretacja ta może być przeprowadzona automatycznie.
Przykład w Pascalu[2]:
type Pint=^integer;
typedef int *pint; typedef int Tint[5];
Typ bazowy w programowaniu obiektowym
W pewnych językach pojęcie klasy jest utożsamiane z typem. Dotyczy to głównie nieobiektowych języków programowania, w których dodano możliwość programowania obiektowego w nowszych implementacjach (np. Pascal - Turbo Pascal)[2]. W tym przypadku pojęcie typu bazowego wiąże się z pojęciem klasy bazowej w dziedziczeniu, z której kreowana jest klasa pochodna.
Przypisy
- ↑ A. Nico Habermann, Dewayne E. Perry, Ada dla zaawansowanych, Wydawnictwa Naukowo-Techniczne, Warszawa 1989 r., seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-1058-4
- 1 2 3 4 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
- ↑ Jan Bielecki, Turbo C z grafiką na IBM PC, Wydawnictwa Naukowo-Techniczne, Warszawa 1990, Seria: Mikrokomputery, ISBN 83-204-1101-7