Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Notación húngara - Wikipedia, la enciclopedia libre

Notación húngara

De Wikipedia, la enciclopedia libre

En programación informática, la notación húngara es un sistema usado normalmente para crear los nombres de variables. El nombre de la notación proviene del hecho de que su inventor, Charles Simonyi, nació en Hungría.

Esta convención es muy utilizada en las viejas versiones de Visual Basic. También 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.

Tabla de contenidos

[editar] Ejemplos

Prefijo Significado

b Booleano
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
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
w Entero corto de 16 bits sin signo (word)

[editar] Ejemplos

  • 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.

[editar] Situación actual

Hoy 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 lenguaje del que nunca nos podremos olvidar mientras los navegadores web no implementen otro para la ejecución de código en cliente.

Puesto que a la hora de realizar proyectos se suelen establecer previamente unas Coding Style Guidelines, no conviene hacerlas distintas para cada lenguaje y se podría definir un estándar de notación húngara que tenga un ligero compromismo con la facilidad de reconocimiento de tipos, sin que llegue a suponer un infierno sobre la complejidad de lectura de código.

Ejemplo:

Prefijo Significado

a de 'array'. Para vectores/matrices/listas de n dimensiones ordenados escalarmente.
b de 'booleano'. Para variables que tomen sólo dos tipos de valores.
c de 'char'. Para el tipo primitivo de carácter alfanumérico individual.
d de 'double'. Para tipos numéricos de alta precisión, como double o float.
e de 'event'. Para eventos.
f de '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 de 'delegated'. Para tipos delegados.
h de 'hashtable'. Colecciones ordenables mediante clave hash (hUsuarios[“juan23”]).
i de 'int'. Para números enteros en general, tanto enteros normales como aquellos tipos enteros de más capacidad (como long).
l de 'lock'. Para objetos de control que nos faciliten el uso de exclusiones mutuas, candados y semáforos.
n de 'enum'. Para tipos enumerados.
o de 'objeto'. Para objetos en general (no se debe usar la notación húngara para distinguir entre tipos de objetos, salvo escasas excepciones).
p de 'puntero'. Para lenguajes con aritmética de punteros.
s de '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 de 'struct'. Similar al 'o' de objetos, éste se usaría para variables de tipo struct en general (es decir, objetos de tipo primitivo).
v de '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.
y de 'byte'.

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

[editar] Artículos relacionados

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com