Magyar jelölés
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