Typ bazowy

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.:

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.

Przykład w Adzie[1]:

 subtype miesiąc is INTEGER range 1..12;

Przykład w Pascalu[2]:

{ 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;

Przykład w języku C[3]:

 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

  1. 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
  2. a b c d Andrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., seria: Biblioteka Użytkownika MikrokomputerówISBN 83-85060-53-7​, ISSN 0867-6011
  3. Jan Bielecki, Turbo C z grafiką na IBM PC, Wydawnictwa Naukowo-Techniczne, Warszawa 1990, Seria: Mikrokomputery, ​ISBN 83-204-1101-7