Académique Documents
Professionnel Documents
Culture Documents
eslavas es bastante rico en vocales. Por ejemplo, el prefijo de cadena terminada en cero "sz"
tambin es una letra del alfabeto hngaro.
Sistemas vs Aplicaciones hngaro
Cuando los sistemas de notacin y la notacin aplicaciones difieren es en el fin de los prefijos.
En la notacin hngara Sistemas, el prefijo codifica el tipo de datos real de la variable. Por ejemplo:
Aplicaciones notacin hngara se esfuerza para codificar el tipo de datos lgicos en lugar del tipo
de datos fsicos, de esta manera, da una idea de lo que el propsito de la variable es, o lo que
representa.
La mayora, pero no todos, de los prefijos Simonyi sugeridas son de naturaleza semntica. Los
siguientes son ejemplos del documento original:
pX: es un puntero a otro tipo X, lo que contiene muy poca informacin semntica.
d es un prefijo que significa diferencia entre dos valores, por ejemplo, dY podra
representar una distancia a lo largo del eje Y de un grfico, mientras que slo una
variable llamada y podra ser una posicin absoluta. Esto es totalmente de naturaleza
semntica.
Sz: es una cadena nula o terminada en cero. En C, este contiene alguna informacin
semntica, ya que no est claro si una variable de tipo char * es un puntero a un carcter
individual, un conjunto de caracteres o una cadena terminada en cero.
W: representa una variable que es una palabra. Este no contiene esencialmente
informacin semntica en absoluto, y probablemente ser considerado Sistemas
hngaro.
b: representa un byte, que en contraste con w pueda disponer de informacin
semntica, porque en C el nico tipo de datos byte de tamao es el carbn, por lo que
stos se utilizan a veces para contener valores numricos. Este prefijo puede eliminar la
ambigedad entre si la variable es la celebracin de un valor que debe ser tratado como
un carcter o un nmero.
bBusy: boolean
chInitial: char
cApples: recuento de los elementos
dwLightYears: palabra doble
fBusy: boolean
nSize: integer o recuento
ISIZE: integer o ndice
fpPrice: coma flotante
dbPi: double
Pfoo: Puntero
rgStudents: matriz o rango
szLastName: string terminado en cero
u32Identifier: entero sin signo de 32 bits
stTime: Estructura de la hora del reloj
fnFunction: nombre de la funcin
Los mnemnicos para punteros y matrices, que no son tipos de datos reales, son seguidos
generalmente por el tipo del elemento de datos en s:
"Programming Windows", el libro original de programacin API de Windows. Por lo tanto, muchas
construcciones comnmente vistos de notacin hngara son especficos de Windows:
La notacin a veces se extiende en C para incluir el mbito de una variable, separados por un guin
bajo. Esta extensin se utiliza a menudo tambin sin el tipo de especificacin de Hungra:
Ventajas
Los partidarios argumentan que los beneficios de la notacin hngara incluyen:
En programas complejos con una gran cantidad de objetos globales, con una notacin
bsica prefijo puede facilitar el trabajo de bsqueda de la parte interior del editor.
Escribiendo btn y presionando causas del editor para que aparezca una lista de los
objetos Button.
La aplicacin de la notacin hngara de una manera ms estrecha, tales como la
aplicacin slo para variables miembro ayuda a evitar la colisin de nombres.
Desventajas
La mayora de los argumentos en contra de la notacin hngara son objeto los sistemas de notacin
hngara, no aplicaciones notacin hngara. Algunos temas posibles son:
Opiniones notables
Robert C. Martin:
"Hoy en da... HN y otras formas de codificacin tipo son simplemente obstculos. Ellos
hacen que sea ms difcil para cambiar el nombre o el tipo de una variable, funcin, o
miembro de la clase. Ellos hacen que sea ms difcil de leer el cdigo. Ellos crean la
posibilidad de que el sistema de codificacin se induzca a error al lector.
Linus Torvalds:
"Codificacin del tipo de una funcin en el nombre es cerebro daado-el compilador
sabe los tipos de todos modos y puede comprobar aquellos, y slo confunde el
programador."
Steve McConnell:
"A pesar de la convencin de nomenclatura de Hungra ya no es de uso generalizado, la
idea bsica de la estandarizacin en concisas, precisas abreviaturas sigue teniendo
valor. Prefijos estandarizados permiten comprobar los tipos de precisin cuando se est
utilizando tipos de datos abstractos que el compilador no puede necesariamente
marque.
Bjarne Stroustrup:
"No, no lo recomiendo" hngaro. Considero 'hngaro' una tcnica que puede ser til
en las lenguas sin tipo, pero es totalmente inadecuado para un lenguaje de
programacin que soporte genrico y programacin orientada a objetos, tanto de los
que hacen hincapi en la seleccin de las operaciones en funcin del tipo un
argumentos. En este caso, "la construccin del tipo de un objeto en los nombres
'simplemente complica y reduce al mnimo la abstraccin".
Joel Spolsky:
"Si usted lee el artculo de Simonyi de cerca, lo que quera llegar era el mismo tipo de
convencin de nombres como lo haca en mi ejemplo anterior donde decidimos que
significa eso de" cadena insegura "y s significa" cadena de seguridad". Son los dos tipos
cadena. El compilador no le ayudar si asigna una a la otra e Intellisense no le dir
bupkis. Pero son semnticamente diferentes. Tienen que ser interpretado de manera
diferente y se tratan de manera diferente y algn tipo de funcin de conversin tendr
que llamar si asignar una a la otra, o usted tendr un error de tiempo de ejecucin. Si
tiene suerte. Todava hay una enorme cantidad de valor a las aplicaciones de Hungra,
ya que aumenta la funcin de proximidad en el cdigo, lo que hace que el cdigo sea
ms fcil de leer, escribir, depurar y mantener, y lo ms importante, tiene un cdigo
incorrecto mirar mal. "