Staattinen kirjoitus

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 25. helmikuuta 2021 tarkistetusta versiosta . tarkastukset vaativat 5 muokkausta .

Staattinen kirjoitus  on ohjelmointikielissä laajalti käytetty tekniikka , jossa muuttuja , aliohjelman parametri, funktion palautusarvo liitetään tyyppiin ilmoitushetkellä eikä tyyppiä voi muuttaa myöhemmin (muuttuja tai parametri hyväksyy, ja funktio palauttaa vain tämän tyyppiset arvot ). Esimerkkejä staattisesti kirjoitetuista kielistä ovat Ada , C , C++ , C# , D , Java , ML , Pascal , Solidity , Go , Fortran. Päinvastainen tekniikka on dynaaminen kirjoitus .

Jotkut staattisesti kirjoitetut kielet saivat myöhemmin mahdollisuuden käyttää myös dynaamista kirjoitusta erityisten alijärjestelmien avulla. Esimerkiksi VariantDelphissä paketit AliceML : ssä [1] , Data.DynamicHaskellissa [2] .

Staattinen kirjoittaminen tuottaa yksinkertaisimman konekoodin , joten se on hyödyllinen kielille, jotka tuottavat käyttöjärjestelmän suoritettavaa tiedostoa tai JIT-käännöstä välikoodia . Monet virheet poistetaan jo käännösvaiheessa, joten staattinen kirjoittaminen sopii monimutkaisen mutta nopean koodin kirjoittamiseen. IDE : ssä osuvampi automaattinen täydennys on mahdollista , varsinkin jos kirjoitus on vahvaa staattista: monet vaihtoehdot voidaan hylätä, koska ne eivät vastaa tyyppiä. Mitä suurempi ja monimutkaisempi projekti on, sitä suurempi on staattisen kirjoittamisen etu ja päinvastoin.

Samaan aikaan staattisesti kirjoitetut kielet, joilla on riittämättömästi kehittynyt matemaattinen perusta, osoittautuvat melko monisanaisiksi: joka kerta on määritettävä, minkä tyyppinen muuttuja on. Joillakin kielillä on automaattinen tyyppipäätelmä , mutta tämä voi johtaa hienovaraisiin virheisiin. Tämä ei päde ML -perheen kielille, jotka perustuvat ns.  " päätyyppisyyteen [3] ", joka sekä päättelee automaattisesti minkä tahansa lausekkeen yleisimmän tyypin ja tarkastaa tiukasti riippuvuustyyppien vastaavuuden. Tämä antaa kielelle dynaamisesti kirjoitettujen ilmaisukykyä ja samalla parantaa suorituskykyä ja tyyppiturvallisuutta [3] .

Muistiinpanot

  1. AliceML-paketit . Haettu 13. helmikuuta 2015. Arkistoitu alkuperäisestä 15. helmikuuta 2015.
  2. Dynamiikka Haskellissa . Haettu 13. helmikuuta 2015. Arkistoitu alkuperäisestä 13. helmikuuta 2015.
  3. 1 2 Pierce, 2012 , 22 Tyyppien rekonstruktio, s. 360-361.

Kirjallisuus