Silna typizacja – system 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.

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

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): 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 Integerw szczególności - arytmetycznych, jak dodawanie i in. 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.

Zobacz też Typowanie słabe Typowanie dynamiczne Typowanie statyczne

Uwagi

Przypisy

Kategoria:Typy danych