A magyar jelölés egy elnevezési megállapodás a számítógép-programozásban. Ebben a jelölésrendszerben egy objektum neve feltünteti a típusát és a tervezett használatát is.

A magyar jelölést a BCPL programozási nyelvben való használatra tervezték, melyben alig van korlátozás a különböző adattípusokkal történő műveletekre, és így a nyelv a véletlen típusokkal kapcsolatos hibáknak erősen ki van téve. A magyar jelölés ezt próbálja orvosolni, mégpedig úgy, hogy a programozónak világos képet ad a változó típusáról.

A magyar jelölésben a változó neve egy vagy több kisbetűvel kezdődik, melyek emlékeztetnek a változó típusára vagy céljára; ezt követi a programozó által választott név. A megadott név nagy kezdőbetűs, hogy el legyen választva a típusjelölőktől.

Rendszer vagy alkalmazás jelölés

A rendszer magyar jelölésben a prefix az adat típusát jelöli, például: lSzamlalo: long típusú számláló arru8Szamok: egy tömb 8 bites előjel nélküli egészeknek

Az alkalmazás magyar jelölés ellenben a felhasználás típusát jelöli, például: rwNev: egy írható és olvasható név usNev: "unsafe" azaz még nem ellenőrzött adat

Hasonló jelölések más programozási nyelvekben Néhány programozási nyelvben hasonló jelöléseket építenek a nyelvbe. Például a BASIC-ben a name$ egy karakterláncot nevez meg, a count% pedig egy egész számot. A FORTRAN nyelvben az I... N-nel, kezdődő változók automatikusan egész számként értelmeződnek.

Példák nMeret: egész szám („number”) cAlma: elemek száma („count”) dwFenyev: duplaszó („double word”) bElfoglalt: logikai („boolean”) pFoo: mutató („pointer”) szVezeteknev: nullával végződő karakterlánc („string” és „zero”) rgTanulok: tömb vagy tartomány („range”)

A mutatókra és tömbökre vonatkozó emlékeztető betűsort – melyek nem adattípusok – általában maga az adatelem típusa követi: rgfEgyensuly: lebegőpontos értékek tömbje („floating-point”) pszOwner: nullával végződő karakterláncra való mutató

Habár a magyar jelölés bármely programozási nyelvben és környezetben használható, a Microsoft Windowsra írt C nyelvre készült, és még mindig erősen erre a területre korlátozzák. Így sok gyakran látott magyar jelöléses betűsor Windows-specifikus: hwndFoo: egy ablak azonosítószáma („handle” és „window”) lpszBar: nullával végződő karakterláncra való hosszú mutató („long pointer”)

A magyar jelölést néha kiterjesztik a C++-ban, hogy tartalmazza a változó érvényességi tartományát – ezt egy aláhúzásjellel választják el: m_nKerekek: egy osztály tagja („member”), egész szám

Eredet A magyar jelölést Simonyi Károly fia, Charles Simonyi szoftverfejlesztő, a szándékorientált programozás (Intentional Programming, IP) kutatója dolgozta ki, amely hatékonyabbá tette a fejlesztői munkát. Charles Simonyi korábban a Xeroxnál, majd a Microsoftnál dolgozott, később saját céget alapított. A jelölés elnevezése Simonyi magyar származásából ered, így nevezik más nyelveken is (például angolul Hungarian notation, németül ungarische Notation), s mivel a legtöbb Microsoft dokumentáció a magyar jelöléssel lett közzétéve, ezért a Microsofton kívül is sokan átvették a módszert.

Források Hungarian Notation (Simonyi eredeti cikkével, angol nyelven) Coding Conventions: The Hungarian Notation

Kategória:Számítógép-programozás