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 szerkeszté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 szerkesztés

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 IN-nel, kezdődő változók automatikusan egész számként értelmeződnek.

Példák szerkesztés

  • 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 szerkesztés

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 szerkesztés