Przejdź do zawartości

Typowanie silne

Z Wikipedii, wolnej encyklopedii

Silna typizacjasystem typów w języku programowania, w którym każde wyrażenie ma ustalony typ i nie można go używać w kontekście przeznaczonym dla innych typów[1].

Przykładami języków z silnym typowaniem są Pascal oraz Ada[1].

Języki programowania z silnym typowaniem pozwalają na tworzenie precyzyjnie zdefiniowanych typów danych tworzonych przez użytkownika (programistę), które pomimo podobnych własności nie mogą być używane ze sobą w jednym wyrażeniu bez odpowiedniej, jawnie określonej konwersji. Przykładem (w języku Ada) może być definicja typów bazujących na typie Integer, pomiędzy którymi musi nastąpić jawna konwersja dla dokonania operacji (tutaj - przypisania)[1]:

with Ada.Text_IO; use Ada.Text_IO;

procedure Strong_Typing_Demo is

   type Age is range 0 .. 150;
   type Temperature is range -100 .. 100;

   Person_Age : Age := 30;
   Temp       : Temperature := 30;
 
begin
   -- To jest prawidłowe:
   Put_Line("Age = " & Age'Image(Person_Age));

   -- To się nie skompiluje:
   -- Person_Age := Temp;

   -- Wymagana jawna konwersja typów:
   Person_Age := Age(Temp);

   Put_Line("Converted Age = " & Age'Image(Person_Age));
 
end Strong_Typing_Demo;

Pomimo tego, iż oba zdefiniowane typy (Person_Age oraz Temp) bazują na typie Integer i pozwalają na wykonywanie takich samych operacji jak w przypadku obiektów typu Integer[a] to jest to wyłącznie w ramach operacji na obiektach tego samego typu. W silnie typowanym języku jakim jest Ada jakiejkolwiek operacje (w przykładzie - przypisanie) na obiektach różnych typów są niedozwolone bez jawnej konwersji typów[1].

Zobacz też

[edytuj | edytuj kod]
  1. w szczególności - arytmetycznych, jak dodawanie i in.

Przypisy

[edytuj | edytuj kod]
  1. 1 2 3 4 Earl E. McCoy. Strongly Typed Languages. Byte”. Vol. 8, No. 5, s. 418, maj 1983. (ang.).