Silne pisanie

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.

Zasady i Warunki

Dosyć trudno jest podać dokładną definicję silnego typowania. Język jest silnie wpisany, jeśli:

  1. Kompilacja lub wykonanie może wykryć błędy w pisowni. W przeciwnym razie mówi się, że język jest słabo napisany;
  2. Niejawne konwersje typów są surowo zabronione. Jeśli takie konwersje są możliwe, język jest słabo napisany. Przykłady spełniające to kryterium: OCaml , Haskell , PureScript .

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)

Zobacz również