W informatyce , wykorzystując język programowania, mówi się, że silnie wpisany kiedy gwarantuje, że typy danych stosowane prawidłowo opisują dane obsługiwane. W przeciwieństwie do tego, język bez silnego typowania może być napisany słabo lub wcale (ale w praktyce nigdy tak nie jest).
Od czasu jego wynalezienia termin „ silne typowanie” był używany w wielu sprzecznych znaczeniach, przez co stał się prawie bezsensowny. Poniższa lista zawiera kilka możliwych stwierdzeń dotyczących silnego typowania wraz z przykładami silnie typizowanych języków, które spełniają to kryterium.
Dosyć trudno jest podać dokładną definicję silnego typowania. Język jest silnie wpisany, jeśli:
Dzięki temu ostatniemu podejściu moglibyśmy na przykład uzyskać następującą klasyfikację:
Pisanie na maszynie | Silny | Niska |
---|---|---|
Statyczny | Ada , Java , Pascal , a nawet Visual Basic z opcją Explicit |
Język C : krótkie dodawanie (int x, int y) {powrót x + y; }
C++ : Osoba p; p<13; |
Dynamiczny | Rubin , Python | JavaScript : „2” + 4 → „24” |
(W przykładzie JavaScript niejednoznaczność wynika z faktu, że ten sam symbol, + , jest używany do reprezentowania zarówno konkatenacji, jak i dodawania , w zależności od kontekstu).
(W przykładzie C++ kompilator wywoła niejawnie konstruktor Person (int) i <operator, aby dokonać porównania. Pozwala to na przykład wiedzieć, czy wiek osoby jest mniejszy niż 13.)
Tak więc ekspert od języków programowania mówi:
„Spędziłem kilka tygodni, próbując wyjaśnić terminologie 'mocno wpisane', 'statycznie wpisane', 'bezpieczne' itp., i okazało się to niezwykle trudne... Użycie tych terminów jest tak różnorodne, że prawie bezużyteczny. "
- Benjamin C. Pierce (en)