Pseudokood

Pseudokood on mitteametlik kõrgtasemeline arvutiprogrammi või algoritmi tööpõhimõtte kirjeldus.
Pseudokoodis kasutatakse normaalse programmeerimiskeele struktuuri, aga selle põhiline eesmärk on olla loetav inimeste, mitte masina jaoks. Tüüpiliselt ei sisalda pseudokood detaile, mida masin vajab algoritmi mõistmiseks, näiteks muutujate deklaratsioonid, süsteemispetsiifilised koodiread ning alamprogrammid. Programmeerimiskeelele lisatakse vajadusel kirjeldusi loomulikus keeles või kompaktses matemaatilises kirjaviisis. Pseudokoodi eesmärk on lihtsal viisil inimestele seletada, kuidas kood töötab. See on palju tõhusam ja keskkonnast sõltumatu kirjeldus algoritmi tööpõhimõttest. Seda kasutatakse sagedasti õpikutes ja teaduslikes väljaannetes, mis dokumenteerivad erinevaid algoritme. Samuti ka arvutiprogrammide arendamises, kus visandatakse valmis programmi struktuur enne  programmeerimise alustamist.
Pseudokoodi süntaksil puudub igasugune standard, kuna pseudokoodis programmi ei saa jooksutada. Pseudokood sarnaneb, aga ei tohi eksitada luukere programmeerimisega, mis kompileerub ilma veateadeteta. Voodiagrammid, drakon-diagrammid ja ühtse modelleerimiskeele diagramme saab vaadata kui graafilisi alternatiive pseudokoodile, aga need nõuavad rohkem ruumi paberi peal. Programmeerimiskeel HAGGIS kujutab endast ühendavat silda pseudokoodi ja teiste programmeerimiskeelte vahel.

Rakendus

Arvutiteaduse ja numbrilise arvutamisega seotud õpikud ja teaduslikud väljaanded kasutavad tihtipeale algoritmide kirjeldamisel pseudokoodi selliselt, et programmeerijad saavad neist aru isegi kui nad ei tunne kõiki programmeerimiskeeli. Tüüpiliselt seletatakse õpikutes lahti, kuidas kasutatud pseudokoodist aru saada. Pseudokoodi detailitase võib kohati sarnaneda tavakeelega.
Programmeerijad, kes hakkavad tundmatut algoritmi programmeerima, alustavad tihtipeale algoritmi kirjeldamisega pseudokoodis ja alles siis "tõlgivad" selle kirjelduse vastavasse programmeerimiskeelde ning muudavad seda selliselt, et see töötaks ülejäänud programmiga. Samuti võivad programmeerijad alustada projektiga, visandades koodi pseudokoodis paberi peale enne tegelikule programmeerimiskeelele üle minemisele. Seda nimetatakse top-down struktuuriliseks lähenemiseks.

Matemaatilises stiilis pseudokood

Numbrilises arvutuses pseudokood sisaldab tihti matemaatilist kirjaviisi, mis on tüüpiliselt saadud hulga- ja maatriksiteooriast, millesse on lisatud mõne tavapärase programmeerimiskeele kontrollstruktuurid ja vahel ka kirjeldus loomulikus keeles. See on kompaktne ja üldiselt mitteametlik kirjaviis, millest võivad aru saada paljud matemaatikud, ja on tihti kasutatud ühe viisina matemaatiliste algoritmide lahti seletamiseks. Näiteks summa tehetemärki või korrutuse tehetemärki võib kasutada for-tsüklina ja valitud struktuurina ühes väljendis:
Return 
Matemaatiliste tehete kirjutamisel kasutatakse üldiselt mitte-ASCII ladumist (näiteks märgendus keeltes nagu TeX, MathML või kinnistes valemi redaktorites.
Matemaatilises stiilis pseudkoodi on mõnikord nimetatud ka pidžin koodiks. Näiteks "pidžin ALGOL" (mõiste päritolu), "pidžin Fortran", "pidžin BASIC", "pidžin Pascal", "pidžin C" ja "pidžin Lisp".

Näide

Allpool on pikem näide matemaatilises stiilis pseudokoodist Ford-Fulkerson algoritmist:
algorithm ford-fulkerson is
    input: Graph G with flow capacity c, 
           source node s, 
           sink node t
    output: Flow f such that f is maximal from s to t

    (f(u,v) on voog sõlmkohast u kuni sõlmkohani v ja c(u,v) on voo maht sõlmkohast u kuni sõlmkohani v)

    for each edge (u, v) in GE do
        f₍ᵤ, ᵥ₎ ← 0
        f₍ᵥ, ᵤ₎ ← 0

    while there exists a path p from s to t in the residual network Gf do
        let cf be the flow capacity of the residual network Gf
        cf(p) ← min{cf(u, v) | (u, v) in p}
        for each edge (u, v) in p do
            f₍ᵤ, ᵥ₎ ←  f₍ᵤ, ᵥ₎ + cf(p)
            f₍ᵥ, ᵤ₎ ← −f₍ᵤ, ᵥ₎

    return f

Loomiliku keele grammatika programmeerimiskeeltes

Erinevate katsetega on üritatud tuua loomuliku keele grammatika elemendid arvutiprogrammeerimisse, tänu millele on loodud sellised programmeerimiskeeled nagu HyperTalk, Lingo, AppleScript, SQL, Inform ja vähemal määral ka Python. Nendes keeltes on ümarsulud ja muud erimärgid asendatud eesõnadega, mistõttu on kood väga "jutukas". Neid keeli kirjutatakse üldiselt dünaamiliselt, mis tähendab, et muutujate väljakutsumised ja muud korduvad read saab välja jätta. Sellised keeled teevad elu lihtsamaks nendel inimestel, kes ei saa antud programmeerimiskeelest aru ning soovivad seda omandada. Sarnasus loomuliku keelega on siiski pigem tehislik. Süntaksireeglid võivad olla sama ranged ja ametlikud kui traditsioonilises programmeerimises ja see ei tee programmide arendamise sugugi kergeks.