Vahva kirjoittaminen on tyyppijärjestelmä, jota käytetään ohjelmointikielien kanssa ja joka pakottaa ohjelmoijan syöttämään koodin tietyllä tavalla tyyppijärjestelmän ja kielen standardien mukaan. Vahvan kirjoittamisen voimakkuus voi vaihdella, mutta useimmat tyyppijärjestelmät käyttävät korkean lujuuden rajoituksia. Tämä voi pysäyttää useimmat tai kaikki virheelliset merkinnät, mikä voi auttaa estämään koodausvirheitä. Jotkut ohjelmointikielet sallivat ohjelmoijien käyttää erilaisia kokonaislukuja, mutta tämä kirjoitusjärjestelmä rajoittaa muunnoksia. Johdonmukaisuus pakotetaan käyttäjälle, mikä voi olla hyödyllistä, mutta tämä kirjoitusjärjestelmä voi myös viedä luovuuden.
Kun joku käyttää sarjaa tai ohjelmointikieltä, jolla on vahva kirjoitus, tämä kirjoitusjärjestelmä voidaan määrittää korkealla tai matalalla vahvuudella. Korkea lujuus tarkoittaa, että kirjoitusjärjestelmä asettaa käyttäjälle voimakkaita rajoituksia, kun taas heikko lujuus on hieman lievempi virheiden ja epäjohdonmukaisen koodin suhteen. Vaikka joissakin järjestelmissä käytetään alhaista lujuutta, suuri lujuus on paljon yleisempi, koska tämän kirjoitusjärjestelmän edut säilyvät parhaiten korkealla lujuudella.
Ohjelmoijat voivat luoda virheellisiä merkintöjä luodessaan ohjelmaa joko virheenä tai tarkoituksenaan kokeilla uutta koodausta. Heikolla kirjoitusjärjestelmällä nämä virheet käyvät kääntäjän läpi, mikä voi aiheuttaa vakavia virheitä. Kun käytetään vahvaa kirjoittamista, nämä virheet saatetaan ohjelmoijan tietoon. Järjestelmä myös yleensä hylkää ohjelmoinnin kokoamisen, kunnes koodaus on korjattu varmistaen, että virheet ovat minimaaliset.
Ohjelmoinnissa käytetään usein kokonaislukuja, ja joskus ohjelmointikieli sallii käyttäjien syöttää kokonaislukuja, jotka eivät ole kielen mukaisia. Samaan aikaan, jos kielellä on muuntotyökalu, tämä muuntaa kokonaisluvut, jotta niitä voidaan käyttää. Vahva kirjoittaminen poistaa tämän käytännön käytöstä ja kieltäytyy hyväksymästä epätavallisia kokonaislukuja.
Tapa, jolla vahva kirjoittaminen ohjaa käyttäjän ohjelmointikielen käyttöönottoa, tarkoittaa monia etuja ja haittoja. Tämä ei salli virheitä tai epätyypillistä koodausta, joten tämä kirjoitusjärjestelmä varmistaa koodauksen johdonmukaisuuden. Se yleensä myös varmistaa, että koodaus toimii käännettäessä. Suurin haittapuoli on, että luovuus on vakavasti rajoitettua. Jos käyttäjä yrittää kirjoittaa koodausta standardien vastaisella tavalla, vaikka koodi itse toimisi ja voisi olla parempi kuin tavallinen koodaus, vahva kirjoittaminen poistaa koodauksen käytöstä, kunnes käyttäjä standardoi sen.