Ungarsk notation

(eller: Hungarian notation).

En standard for navngivning af variable i et program, således at typen og formålet med variablen er umiddelbart indlysende, når en programmør læser programkoden. Ungarsk notation er opkaldt efter nationaliteten af opfinderen, Charles Simonyi.

I ungarsk notation dannes alle variabelnavne af op til tre dele: et præfiks, en basistype og en tillægsbetegnelse (qualifier). Præfiks og basistypen skrives altid med små bogstaver. Tillægsbetegnelsen, der kan karakteriseres som det egentlige, beskrivende navn, skrives med små bogstaver, bortset fra de enkelte ords begyndelsesbogstaver, som skrives med stort. Det skal i denne forbindelse nævnes, at brugen af små bogstaver (eventuelt forstærket med store begyndelsesbogstaver) i sig selv øger læseligheden af programmer, sammenlignet med tidligere tiders brug af udelukkende store bogstaver.

Basistypen i ungarsk notation er en bogstavsforkortelse, der modsvarer en variabeltype i programmeringssproget C. F.eks. benyttes b for byte, ch for character (tegn), s for short integer og l for long integer. Variabelnavne kan således se ud som "bMenuValg" eller "chDrevBogstav".

Præfikset giver yderligere information om variabeltypen, f.eks. om den er et array (a), en pointer (p), et antal (c) eller et indeks (i). Med præfiks kan et variabelnavn se ud som "achFilNavn" (variablen indeholder et filnavn som et array af tegn) eller "clAntalFejl" (variablen indeholder en optælling af antal fejl som et langt (32-bit) heltal).

Ved første øjekast kan ungarsk notation virke lidt fremmed, men praksis viser, at programmører hurtigt vænner sig til formen. Anvendt konsekvent bevirker notationsformen programkode, som er nemmere at læse, en reduceret fejlhyppighed og en lettere vedligeholdelse, i særdeleshed for programmeringssprog som C, der ikke indeholder egentlig typecheck.

Ungarsk notation benyttes i API-definitionerne, skrevet i programmeringssproget C, for OS/2 og Windows og anbefales stærkt for samtlige programmer til disse miljøer. Ungarsk notation kan om ønsket endvidere benyttes i næsten samtlige andre programmeringssprog.

Forfattere: 
Tue Bertelsen
Casper Thomsen