În informatică , se spune că un limbaj de programare este puternic tastat atunci când garantează că tipurile de date utilizate descriu corect datele tratate. În schimb, o limbă fără tastare puternică poate fi tastată slab sau deloc tastată (dar în practică acest lucru nu este niciodată cazul).
De la invenția sa, termenul de tipare puternică a fost folosit cu multe semnificații contradictorii, ceea ce l-a făcut aproape lipsit de sens. Următoarea listă reunește câteva afirmații posibile despre tastarea puternică, cu exemple de limbi puternic tastate care îndeplinesc criteriul.
Este destul de dificil să se dea o definiție precisă a tastării puternice. O limbă este puternic tastată dacă:
Cu această ultimă abordare, am putea obține, de exemplu, următoarea clasificare:
Tastare | Puternic | Scăzut |
---|---|---|
Static | Ada , Java , Pascal sau chiar Visual Basic cu opțiunea explicită |
Limbaj C : adăugare scurtă (int x, int y) {return x + y; }
C ++ : Persoana p; p <13; |
Dinamic | Ruby , Python | JavaScript : „2” + 4 → „24” |
(În exemplul JavaScript, ambiguitatea ia naștere din faptul că același simbol, + , este folosit pentru a reprezenta atât concatenarea, cât și adunarea , în funcție de context).
(În exemplul C ++, compilatorul va apela implicit la constructorul Person (int) și la operatorul <pentru a face o comparație. Aceasta permite aici, de exemplu, să știe dacă vârsta persoanei este mai mică de 13.)
Astfel, un expert în limbaje de programare spune:
„Am petrecut câteva săptămâni încercând să clarific terminologiile„ puternic tastate ”,„ tipizate static ”,„ sigure ”etc. și mi s-a părut extraordinar de dificilă ... Utilizarea acestor termeni este atât de diversă încât îi face aproape inutil. "
- Benjamin C. Pierce (ro)