fbpx
Wikipedia

Notación húngara

En programación informática, la notación húngara es un sistema usado normalmente para crear los nombres de variables. También se utiliza para nombrar las instancias de objetos en lenguajes de programación visuales, como por ejemplo Delphi. El nombre de la notación proviene del hecho de que su inventor, Charles Simonyi, nació en Hungría.

Esta convención es muy poco utilizada en las viejas versiones de Delphi pero es muy utilizada por los programadores de Microsoft y, en particular, en la programación del sistema operativo Windows.

Consiste en prefijos en minúsculas que se añaden a los nombres de las variables y que indican su tipo. El resto del nombre indica, lo más claramente posible, la función que realiza la variable.

Ejemplos

Prefijo Significado
b Booleano (int)
by BYTE o UCHAR (unsigned char)
c Carácter (un byte)
dw Entero largo de 32 bits sin signo (double word)
f Flags empaquetados en un entero de 16 bits
h Manipulador de 16 bits (handle)
l Entero largo de 32 bits
lbl Objeto Label
lp Puntero a entero largo de 32 bits
lpfn Puntero largo a una función que devuelve un entero
lpsz Puntero largo a una cadena terminada con cero
n Entero de 16 bits
p Puntero a entero de 16 bits
e Enumeración
pt Coordenadas (x, y) empaquetadas en un entero de 32 bits
rgb Valor de color RGB empaquetado en un entero de 32 bits
sz Cadena terminada en cero
txt Cajas de texto
w Entero corto de 16 bits sin signo (word)
  • 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.

Situación actual

Hoy en día existen más detractores que impulsores de la notación húngara. De hecho, se suele calificar de una técnica que a la larga provoca más complejidad que ayuda a la mantenibilidad. Máxime cuando la mayoría de entornos de desarrollo actuales, en particular los que se usan con lenguajes estáticamente tipados, ofrecen mecanismos sencillos para averiguar el tipo de las variables sin recurrir a la búsqueda de su declaración.

Sin embargo, parece que, como en la mayoría de las situaciones, en el medio está la virtud, pues por muchos editores de código inteligente que utilicemos, la mayoría de proyectos siempre acaban teniendo ciertas partes escritas en lenguajes dinámicamente tipados, en especial JavaScript, el único implementado por la mayoría de navegadores web para ejecutar código en cliente

Puesto que a la hora de realizar proyectos se suelen establecer previamente unas Coding Style Guidelines (Guías de estilo de programación), no conviene hacerlas distintas para cada lenguaje y se podría definir un estándar de notación húngara 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 código.

Ejemplo notaciones de 1 carácter

Prefijo Significado
a 'array'. Para vectores/matrices/listas de n dimensiones ordenados escalarmente.
b 'booleano'. Para variables que tomen sólo dos tipos de valores.
c 'char'. Para el tipo primitivo de carácter alfanumérico individual.
d 'double'. Para tipos numéricos de alta precisión, como double o float.
e 'event'. Para eventos.
f 'función'. Sólo la utilizaremos delante de funciones cuando se traten de funciones que se añadan como observadores de un evento (ya que usar esta notación para cualquier método o función sería bastante engorroso).
g 'delegated'. Para tipos delegados.
h 'hashtable'. Colecciones ordenables mediante clave hash (hUsuarios[“juan23”]).
i 'int'. Para números enteros en general, tanto enteros normales como aquellos tipos enteros de más capacidad (como long).
l 'lock'. Para objetos de control que nos faciliten el uso de exclusiones mutuas, candados y semáforos.
n 'enum'. Para tipos enumerados.
o 'objeto'. Para objetos en general (no se debe usar la notación húngara para distinguir entre tipos de objetos, salvo escasas excepciones).
p 'puntero'. Para lenguajes con aritmética de punteros.
s '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 lógica de punteros. Si se usara el objeto de tipo “String” en estos casos, acudiremos a este identificador en lugar de al ‘o’ de objeto.
t 'struct'. Similar al 'o' de objetos, este se usaría para variables de tipo struct en general (es decir, objetos de tipo primitivo).
v 'variable'. Para variables que adquieran diferentes tipos de valores. Normalmente sólo acudiremos a esta opción en lenguajes no tipados (como JavaScript/EcmaScript). La usaremos cuando no estemos seguros del tipo de valor que albergará una variable. También puede valer para objetos que tengan un tipo genérico T.
y 'byte'.

Este ejemplo de notación húngara no parecerá tan crítico y extraño como el que se ha puesto de ejemplo al principio del artículo, en el cual se llegaban a utilizar hasta cuatro letras para denotar el tipo.

Véase también

  •   Datos: Q903244

notación, húngara, programación, informática, notación, húngara, sistema, usado, normalmente, para, crear, nombres, variables, también, utiliza, para, nombrar, instancias, objetos, lenguajes, programación, visuales, como, ejemplo, delphi, nombre, notación, pro. En programacion informatica la notacion hungara es un sistema usado normalmente para crear los nombres de variables Tambien se utiliza para nombrar las instancias de objetos en lenguajes de programacion visuales como por ejemplo Delphi El nombre de la notacion proviene del hecho de que su inventor Charles Simonyi nacio en Hungria Esta convencion es muy poco utilizada en las viejas versiones de Delphi pero es muy utilizada por los programadores de Microsoft y en particular en la programacion del sistema operativo Windows Consiste en prefijos en minusculas que se anaden a los nombres de las variables y que indican su tipo El resto del nombre indica lo mas claramente posible la funcion que realiza la variable Indice 1 Ejemplos 2 Situacion actual 2 1 Ejemplo notaciones de 1 caracter 3 Vease tambienEjemplos EditarPrefijo Significadob Booleano int by BYTE o UCHAR unsigned char c Caracter un byte dw Entero largo de 32 bits sin signo double word f Flags empaquetados en un entero de 16 bitsh Manipulador de 16 bits handle l Entero largo de 32 bitslbl Objeto Labellp Puntero a entero largo de 32 bitslpfn Puntero largo a una funcion que devuelve un enterolpsz Puntero largo a una cadena terminada con ceron Entero de 16 bitsp Puntero a entero de 16 bitse Enumeracionpt Coordenadas x y empaquetadas en un entero de 32 bitsrgb Valor de color RGB empaquetado en un entero de 32 bitssz Cadena terminada en cerotxt Cajas de textow Entero corto de 16 bits sin signo word nContador la variable es un entero que se usara 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 Situacion actual EditarHoy en dia existen mas detractores que impulsores de la notacion hungara De hecho se suele calificar de una tecnica que a la larga provoca mas complejidad que ayuda a la mantenibilidad Maxime cuando la mayoria de entornos de desarrollo actuales en particular los que se usan con lenguajes estaticamente tipados ofrecen mecanismos sencillos para averiguar el tipo de las variables sin recurrir a la busqueda de su declaracion Sin embargo parece que como en la mayoria de las situaciones en el medio esta la virtud pues por muchos editores de codigo inteligente que utilicemos la mayoria de proyectos siempre acaban teniendo ciertas partes escritas en lenguajes dinamicamente tipados en especial JavaScript el unico implementado por la mayoria de navegadores web para ejecutar codigo en clientePuesto que a la hora de realizar proyectos se suelen establecer previamente unas Coding Style Guidelines Guias de estilo de programacion no conviene hacerlas distintas para cada lenguaje y se podria definir un estandar de notacion hungara 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 codigo Ejemplo notaciones de 1 caracter Editar Prefijo Significadoa array Para vectores matrices listas de n dimensiones ordenados escalarmente b booleano Para variables que tomen solo dos tipos de valores c char Para el tipo primitivo de caracter alfanumerico individual d double Para tipos numericos de alta precision como double o float e event Para eventos f funcion Solo la utilizaremos delante de funciones cuando se traten de funciones que se anadan como observadores de un evento ya que usar esta notacion para cualquier metodo o funcion seria bastante engorroso g delegated Para tipos delegados h hashtable Colecciones ordenables mediante clave hash hUsuarios juan23 i int Para numeros enteros en general tanto enteros normales como aquellos tipos enteros de mas capacidad como long l lock Para objetos de control que nos faciliten el uso de exclusiones mutuas candados y semaforos n enum Para tipos enumerados o objeto Para objetos en general no se debe usar la notacion hungara para distinguir entre tipos de objetos salvo escasas excepciones p puntero Para lenguajes con aritmetica de punteros s 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 logica de punteros Si se usara el objeto de tipo String en estos casos acudiremos a este identificador en lugar de al o de objeto t struct Similar al o de objetos este se usaria para variables de tipo struct en general es decir objetos de tipo primitivo v variable Para variables que adquieran diferentes tipos de valores Normalmente solo acudiremos a esta opcion en lenguajes no tipados como JavaScript EcmaScript La usaremos cuando no estemos seguros del tipo de valor que albergara una variable Tambien puede valer para objetos que tengan un tipo generico T y byte Este ejemplo de notacion hungara no parecera tan critico y extrano como el que se ha puesto de ejemplo al principio del articulo en el cual se llegaban a utilizar hasta cuatro letras para denotar el tipo Vease tambien EditarProgramacion Sistema operativo Datos Q903244 Obtenido de https es wikipedia org w index php title Notacion hungara amp oldid 132337939, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos