Statisk typning

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 25 februari 2021; kontroller kräver 5 redigeringar .

Statisk typning  är en teknik som ofta används i programmeringsspråk , där en variabel , en subrutinparameter, ett funktionsreturvärde är associerat med en typ vid tidpunkten för deklarationen och typen inte kan ändras senare (variabeln eller parametern kommer att acceptera, och funktionen returnerar endast värden av denna typ). Exempel på statiskt skrivna språk är Ada , C , C++ , C# , D , Java , ML , Pascal , Solidity , Go , Fortran. Den motsatta tekniken är dynamisk typning .

Vissa statiskt typade språk fick senare möjligheten att även använda dynamisk typning med hjälp av speciella delsystem. Till exempel, Varianti Delphi , paket i AliceML [1] , Data.Dynamici Haskell [2] .

Statisk typning producerar den enklaste maskinkoden , så den är användbar för språk som producerar körbara operativsystem eller JIT-kompilerad mellankod . Många fel elimineras redan vid kompileringsstadiet, så statisk typning är bra för att skriva komplex men snabb kod. I en IDE är mer relevant autokomplettering möjlig , särskilt om skrivningen är stark statisk: många val kan ignoreras eftersom de inte matchar typen. Ju större och mer komplext projektet är, desto större är fördelen med statisk typning och vice versa.

Samtidigt visar sig statiskt skrivna språk med en otillräckligt utvecklad matematisk bas vara ganska utförliga: varje gång måste du ange vilken typ av variabeln. Vissa språk har automatisk typinferens , men detta kan leda till subtila buggar. Detta är inte sant för språk i ML -familjen, baserat på det så kallade  " principal typing scheme [3] ", som både automatiskt härleder den mest allmänna typen av alla uttryck och strikt kontrollerar beroendetypsmatchning. Detta ger språket uttrycksförmågan hos dynamiskt typade, samtidigt som det ger bättre prestanda och typsäkerhet [3] .

Anteckningar

  1. AliceML-paket . Hämtad 13 februari 2015. Arkiverad från originalet 15 februari 2015.
  2. Dynamik i Haskell . Hämtad 13 februari 2015. Arkiverad från originalet 13 februari 2015.
  3. 1 2 Pierce, 2012 , 22 Rekonstruktion av typer, sid. 360-361.

Litteratur