Ohjelmoinnissa muuttumaton on objekti , jonka tilaa ei voi muuttaa luomisen jälkeen.
Toiminnallisessa ohjelmoinnissa kaikki ( puhtaiden kielten tapauksessa) tai melkein kaikki (epäpuhtaiden kielten tapauksessa ) ohjelman tiedot, sekä paikalliset että globaalit, ovat muuttumattomia. Toisaalta tämä lisää merkittävästi ohjelmien vakautta yksinkertaistamalla ohjelmien muodollista todentamista . Toisaalta tämä vaikeuttaa useiden ongelmien ratkaisemista (joista useimmiten huomioidaan käyttöliittymän toteuttamistehtävä , joka on olennaisesti muuttuva tila), mikä pakottaa kielen tyyppiset järjestelmät monimutkaisemaan - esimerkiksi monadit tai yksilölliset tyypit .
Olio -ohjelmoinnissa muuttumattomat objektit luodaan sopivan suunnittelumallin avulla .
Muuttumattomat objektit ovat mielenkiintoisia esimerkiksi siksi, että ne ovat lankaturvallisia .
Objekti voi olla täysin tai osittain muuttumaton. Esimerkiksi const - direktiivin soveltaminen mihin tahansa luokan jäseneen C++ : ssa tekee objektista osittain muuttumattoman. Joissakin tapauksissa objektia pidetään muuttumattomana luokan käyttäjän näkökulmasta, vaikka sen sisäiset kentät muuttuisivat . Tyypillisesti muuttumaton objekti vastaanottaa kaikki sisäiset arvot alustuksen aikana tai arvot asetetaan useassa vaiheessa, mutta ennen kuin objektia käytetään.