A statikus gépelés a programozási nyelvekben széles körben használt technika , amelyben egy változó , egy szubrutin paraméter, egy függvény visszatérési értéke a deklaráció időpontjában társítva van egy típushoz , és a típus később nem módosítható (a változó vagy paraméter elfogadja, ill. a függvény csak ilyen típusú értékeket ad vissza). Statikusan tipizált nyelvek például az Ada , C , C++ , C# , D , Java , ML , Pascal , Solidity , Go , Fortran . Az ellenkező technika a dinamikus gépelés .
Egyes statikusan gépelt nyelvek később speciális alrendszerek segítségével dinamikus gépelést is használhatnak. Például Delphiben AliceML [1]Variant , Haskell [ 2 ] csomagok .Data.Dynamic
A statikus gépelés a legegyszerűbb gépi kódot állítja elő , ezért hasznos azoknál a nyelveknél, amelyek operációs rendszer futtatható fájljait vagy JIT által lefordított köztes kódot állítanak elő . Sok hibát már a fordítási szakaszban kiküszöbölünk, így a statikus gépelés alkalmas összetett, de gyors kód írásához. Az IDE -ben relevánsabb automatikus kiegészítés is megvalósítható , különösen, ha a gépelés erős statikus: sok választási lehetőség elvethető, mivel nem egyezik a típussal. Minél nagyobb és összetettebb a projekt, annál nagyobb a statikus gépelés előnye, és fordítva.
Ugyanakkor a nem kellően fejlett matematikai alappal rendelkező, statikusan beírt nyelvek meglehetősen bőbeszédűek: minden alkalommal meg kell adni, hogy milyen típusú lesz a változó. Egyes nyelveken van automatikus típuskövetkeztetés , de ez finom hibákhoz vezethet. Ez nem igaz az ML családhoz tartozó nyelvekre, amelyek az úgynevezett " főtípus tipizálási sémán [3] " alapulnak, amely egyrészt automatikusan kikövetkezi bármely kifejezés legáltalánosabb típusát, másrészt szigorúan ellenőrzi a függőségi típusok egyezését. Ez adja a nyelvnek a dinamikusan tipizáltak kifejezőképességét, miközben jobb teljesítményt és típusbiztonságot biztosít [3] .