You are on page 1of 3

Notacin hngara

Notacin hngara
En programacin informtica, la notacin hngara es un sistema usado normalmente para crear los nombres de variables. Tambin se utiliza para nombrar las instancias de objetos en lenguajes de programacin visuales, como por ejemplo Delphi. El nombre de la notacin proviene del hecho de que su inventor, Charles Simonyi, naci en Hungra. Esta convencin es muy poco utilizada en las viejas versiones de Delphi pero es muy utilizada por los programadores de Microsoft y, en particular, en la programacin del sistema operativo Windows. Consiste en prefijos en minsculas que se aaden a los nombres de las variables y que indican su tipo. El resto del nombre indica, lo ms claramente posible, la funcin que realiza la variable.

Ejemplos
Prefijo b by c dw f h l lbl lp lpfn lpsz n p e pt rgb sz txt w Booleano (int) BYTE o UCHAR (unsigned char) Carcter (un byte) Entero largo de 32 bits sin signo (double word) Flags empaquetados en un entero de 16 bits Manipulador de 16 bits (handle) Entero largo de 32 bits Objeto Label Puntero a entero largo de 32 bits Puntero largo a una funcin que devuelve un entero Puntero largo a una cadena terminada con cero Entero de 16 bits Puntero a entero de 16 bits Enumeracin Coordenadas (x, y) empaquetadas en un entero de 32 bits Valor de color RGB empaquetado en un entero de 32 bits Cadena terminada en cero Cajas de texto Entero corto de 16 bits sin signo (word) Significado

nContador: la variable es un entero que se usar como contador. szNombre: una cadena terminada con cero la cual almacena un nombre. bRespuesta: una variable booleana que almacena una respuesta. txtHora: una instancia de un objeto textbox que almacena la hora.

Notacin hngara

Situacin actual
Hoy da existen ms detractores que impulsores de la notacin hngara. De hecho, se suele calificar de una tcnica que a la larga provoca ms complejidad que ayuda a la mantenibilidad. Mxime cuando la mayora de entornos de desarrollo actuales, en particular los que se usan con lenguajes estticamente tipados, ofrecen mecanismos sencillos para averiguar el tipo de las variables sin recurrir a la bsqueda de su declaracin. Sin embargo, parece que, como en la mayora de las situaciones, en el medio est la virtud, pues por muchos editores de cdigo inteligente que utilicemos, la mayora de proyectos siempre acaban teniendo ciertas partes escritas en lenguajes dinmicamente tipados, en especial JavaScript, el nico implementado por la mayora de navegadores web para ejecutar cdigo en cliente Puesto que a la hora de realizar proyectos se suelen establecer previamente unas Coding Style Guidelines (Guas de estilo de programacin), no conviene hacerlas distintas para cada lenguaje y se podra definir un estndar de notacin hngara que tenga un ligero compromiso con la facilidad de reconocimiento de tipos, sin que llegue a suponer un infierno sobre la complejidad de lectura de cdigo.

Ejemplo notaciones de 1 carcter


Prefijo a b c d e f Significado 'array'. Para vectores/matrices/listas de n dimensiones ordenados escalarmente. 'booleano'. Para variables que tomen slo dos tipos de valores. 'char'. Para el tipo primitivo de carcter alfanumrico individual. 'double'. Para tipos numricos de alta precisin, como double o float. 'event'. Para eventos. 'funcin'. Slo la utilizaremos delante de funciones cuando se traten de funciones que se aadan como observadores de un evento (ya que usar esta notacin para cualquier mtodo o funcin sera bastante engorroso). 'delegated'. Para tipos delegados. 'hashtable'. Colecciones ordenables mediante clave hash (hUsuarios[juan23]). 'int'. Para nmeros enteros en general, tanto enteros normales como aquellos tipos enteros de ms capacidad (como long). 'lock'. Para objetos de control que nos faciliten el uso de exclusiones mutuas, candados y semforos. 'enum'. Para tipos enumerados. 'objeto'. Para objetos en general (no se debe usar la notacin hngara para distinguir entre tipos de objetos, salvo escasas excepciones). 'puntero'. Para lenguajes con aritmtica de punteros. 'string'. Para variables de tipo cadena de texto, ya sean nativos o arrays de chars. Este tipo de datos es muy habitual en lenguajes sin lgica de punteros. Si se usara el objeto de tipo String en estos casos, acudiremos a este identificador en lugar de al o de objeto. 'struct'. Similar al 'o' de objetos, ste se usara para variables de tipo struct en general (es decir, objetos de tipo primitivo). 'variable'. Para variables que adquieran diferentes tipos de valores. Normalmente slo acudiremos a esta opcin en lenguajes no tipados (como JavaScript/EcmaScript). La usaremos cuando no estemos seguros del tipo de valor que albergar una variable. Tambin puede valer para objetos que tengan un tipo genrico T. 'byte'.

g h i l n o p s

t v

Este ejemplo de notacin hngara no parecer tan crtico y extrao como el que se ha puesto de ejemplo al principio del artculo, en el cual se llegaban a utilizar hasta cuatro letras para denotar el tipo.

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Notacin hngara Fuente: http://es.wikipedia.org/w/index.php?oldid=64471411 Contribuyentes: Airunp, Angus, Beto29, Elwikipedista, Knocte, Locos epraix, Moriel, Mortadelo, Ni.cero, Pablo.cl, Pjimenez, Reyiyo, Sauron, Snakefang, SpeedyGonzalez, 39 ediciones annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

You might also like