Typowanie silne
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[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]Uwagi
[edytuj | edytuj kod]- ↑ w szczególności - arytmetycznych, jak dodawanie i in.