SlideShare une entreprise Scribd logo
1  sur  7
Télécharger pour lire hors ligne
NOTACIÓN HÚNGARA
La notación húngara es una convención de nombres identificador de programación
informática, en la que el nombre de una variable o función indica el tipo o uso previsto. Hay dos
tipos de notación húngara: Sistemas de notación húngara y aplicaciones notación húngara.
La notación húngara fue diseñada para ser independiente del lenguaje, y encontró su primer
uso importante con el lenguaje de programación BCPL. Debido BCPL tiene ningún tipo de datos que
no sean la palabra de la máquina, no hay nada en la propia lengua ayuda a un programador recordar
variables de tipos. Notación húngara tiene como objetivo remediar esto proporcionando el
programador con conocimiento explícito de tipo de datos de cada variable.
En la notación húngara, un nombre de variable empieza con un grupo de letras minúsculas
que son mnemotécnicos para el tipo o propósito de esa variable, seguido por el nombre que el
programador ha elegido; esta última parte a veces se distingue por ser el nombre dado. El primer
carácter del nombre que puede ser capitalizado para separarlo de los indicadores de tipo. De lo
contrario el caso de este carácter denota alcance.
Historia
La notación húngara original, que ahora se llamaría Aplicaciones húngaro, fue inventada por
Charles Simonyi, un programador que trabajaba en Xerox PARC circa 1972-1981, y que más tarde se
convirtió en arquitecto jefe de Microsoft. Puede haber sido derivado del principio anterior de utilizar
la primera letra del nombre de una variable para ajustar su tipo - por ejemplo, las variables cuyos
nombres comenzaron con las letras I a N en FORTRAN son enteros por defecto.
La notación es una referencia a la nación de Simonyi de origen, nombres de las personas
húngaras se "invierten" en comparación con la mayoría de los nombres europeos, el apellido
precede al nombre. Por ejemplo, el nombre anglicismo "Charles Simonyi" en húngaro era
originalmente "Charles Simonyi". De la misma manera el nombre del tipo precede al "nombre" en
la notación húngara en lugar de la más natural, la mayoría europeos, "type última" Smalltalk
nombramiento estilo por ejemplo unPunto y lastPoint. Este estilo de denominación esta última era
más común en el Xerox PARC durante el mandato de Simonyi allí.
El nombre Aplicaciones húngaro fue acuñado desde la convención se utilizó en la división
de aplicaciones de Microsoft. Sistema húngaro desarrolló más tarde en el equipo de desarrollo de
Microsoft Windows. El artículo de Simonyi se refirió a los prefijos utilizados para indicar el "tipo" de
la información que se almacena. Su propuesta fue en gran parte que ver con nombres de
identificadores de decoración en base a la información semántica de lo que almacenan, en
consonancia con aplicaciones húngaro. Sin embargo, sus sugerencias no fueron enteramente
distinto de lo que se conoce como Sistemas de Hungría, ya que algunos de sus prefijos propuestos
contienen poca o ninguna información semántica.
La notación húngara plazo es memorable por muchas personas debido a que las cadenas de
consonantes impronunciables vagamente se parecen a la consonante-rica ortografía de algunas
lenguas de Europa del Este a pesar de que Hungría es un lenguaje Uralic, ya diferencia de las lenguas
eslavas es bastante rico en vocales. Por ejemplo, el prefijo de cadena terminada en cero "sz"
también es una letra del alfabeto húngaro.
Sistemas vs Aplicaciones húngaro
Cuando los sistemas de notación y la notación aplicaciones difieren es en el fin de los prefijos.
En la notación húngara Sistemas, el prefijo codifica el tipo de datos real de la variable. Por ejemplo:
 lAccountNum: variable es un entero largo;
 arru8NumberList: variable es una matriz de un entero sin signo de 8 bits;
 szName: variable es una cadena terminada en cero, lo que fue uno de los prefijos
sugeridos originales de Simonyi.
 Breadline: función con un código de retorno de valor de byte.
Aplicaciones notación húngara se esfuerza para codificar el tipo de datos lógicos en lugar del tipo
de datos físicos, de esta manera, da una idea de lo que el propósito de la variable es, o lo que
representa.
 rwPosition: variable representa una fila;
 usName: variable representa una cadena insegura, que debe ser "saneada" antes de su
uso
 strNombre: Variable representa una cadena que contiene el nombre, pero no específica
cómo se aplica esa cadena.
La mayoría, pero no todos, de los prefijos Simonyi sugeridas son de naturaleza semántica. Los
siguientes son ejemplos del documento original:
 pX: es un puntero a otro tipo X, lo que contiene muy poca información semántica.
 d es un prefijo que significa diferencia entre dos valores, por ejemplo, dY podría
representar una distancia a lo largo del eje Y de un gráfico, mientras que sólo una
variable llamada y podría ser una posición absoluta. Esto es totalmente de naturaleza
semántica.
 Sz: es una cadena nula o terminada en cero. En C, este contiene alguna información
semántica, ya que no está claro si una variable de tipo char * es un puntero a un carácter
individual, un conjunto de caracteres o una cadena terminada en cero.
 W: representa una variable que es una palabra. Este no contiene esencialmente
información semántica en absoluto, y probablemente ser considerado Sistemas
húngaro.
 b: representa un byte, que en contraste con w pueda disponer de información
semántica, porque en C el único tipo de datos byte de tamaño es el carbón, por lo que
éstos se utilizan a veces para contener valores numéricos. Este prefijo puede eliminar la
ambigüedad entre si la variable es la celebración de un valor que debe ser tratado como
un carácter o un número.
Mientras la notación siempre utiliza letras minúsculas iniciales como mnemotécnicos, no
prescribe la nemotécnica sí mismos. Hay varias convenciones ampliamente utilizadas, pero
cualquier conjunto de letras se pueden utilizar, siempre y cuando sean compatibles dentro de un
cuerpo de código dado.
Es posible que el código utilizando aplicaciones notación húngara para contener a veces
Sistemas húngaros al describir las variables que se definen únicamente en función de su tipo.
Relación con sigilos
En algunos lenguajes de programación, una notación parecida llama ahora sigilos está
integrado en el lenguaje y aplicadas por el compilador. Por ejemplo, en algunas formas de BASIC,
name $ nombres una cadena y count% nombres de un número entero. La principal diferencia entre
la notación y sigilos húngaro es que los sigilos declarar el tipo de la variable para el compilador,
mientras que la notación húngara es puramente un esquema de nombres.
Ejemplos
 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 función
Los mnemónicos para punteros y matrices, que no son tipos de datos reales, son seguidos
generalmente por el tipo del elemento de datos en sí:
 pszOwner: Puntero a una cadena terminada en cero
 rgfpBalances: array de valores de punto flotante
 aulColors: array de unsigned long
Mientras que la notación húngara se puede aplicar a cualquier lenguaje de programación y
el medio ambiente, que fue ampliamente adoptado por Microsoft para su uso con el lenguaje C, en
particular, para Microsoft Windows, y su uso sigue siendo limitado en gran medida a esa área. En
particular, el uso de la notación húngara fue ampliamente evangelizada por Charles Petzold
"Programming Windows", el libro original de programación API de Windows. Por lo tanto, muchas
construcciones comúnmente vistos de notación húngara son específicos de Windows:
 Para los programadores que aprendieron de programación de Windows en C,
probablemente los ejemplos más memorables son el wParam y lParam para la
función WindowProc.
 hwndFoo: identificador de una ventana
 lpszBar: puntero largo a una cadena terminada en cero
La notación a veces se extiende en C para incluir el ámbito de una variable, separados por un guión
bajo. Esta extensión se utiliza a menudo también sin el tipo de especificación de Hungría:
 g_nWheels: miembros de un espacio de nombres global, entero
 m_nWheels: miembros de una estructura/clase, número entero
 m_wheels, _Ruedas: miembros de una estructura/clase
 s_wheels: miembros estáticos de una clase
 c_wheels: Miembro estático de una función
Ventajas
Los partidarios argumentan que los beneficios de la notación húngara incluyen:
 El tipo de variable se puede ver a partir de su nombre. .
 El tipo de valor devuelto por una función se determina sin búsqueda
 El formato de los nombres de las variables puede simplificar algunos aspectos de
refactorización de código.
 Múltiples variables con semántica similares pueden ser utilizados en un bloque de
código: dwWidth, iWidth, fWidth, dancho
 Los nombres de variables pueden ser fácil de recordar de conocer sólo sus tipos.
 Esto lleva a los nombres de variables más consistentes
 Tipo inapropiados fundición y operaciones con tipos incompatibles se pueden detectar
fácilmente durante la lectura de código de
 Es útil con lenguajes basados en cadenas donde numéricos son cadenas
 En Aplicaciones húngaro, los guardias nombre de la variable contra el uso en una
operación inadecuada con el mismo tipo de datos al hacer que el error evidente como
en:
 heightWindow = window.getWidth
 Al programar en un lenguaje que utiliza tipado dinámico o que está completamente sin
tipo, los adornos que se refieren a los tipos dejan de ser redundante. Estos idiomas no
suelen incluir declaraciones de tipos, por lo que las únicas fuentes de qué tipos se
permiten son los mismos nombres, documentación, tales como comentarios y por la
lectura del código de entender lo que hace. En estos idiomas, incluyendo una indicación
del tipo de una variable puede ayudar al programador. Como se mencionó
anteriormente, la notación húngara se expandió en un lenguaje.
 En programas complejos con una gran cantidad de objetos globales, con una notación
básica prefijo puede facilitar el trabajo de búsqueda de la parte interior del editor.
Escribiendo btn y presionando causas del editor para que aparezca una lista de los
objetos Button.
 La aplicación de la notación húngara de una manera más estrecha, tales como la
aplicación sólo para variables miembro ayuda a evitar la colisión de nombres.
Desventajas
La mayoría de los argumentos en contra de la notación húngara son objeto los sistemas de notación
húngara, no aplicaciones notación húngara. Algunos temas posibles son:
 La notación húngara es redundante cuando el tipo de comprobación se realiza por el
compilador. Compiladores para lenguajes proporcionan tipo de comprobación de
garantizar el uso de una variable es coherente con el tipo de forma automática, los
controles de los ojos son redundantes y sujeto a errores humanos.
 Todos los entornos de desarrollo integrados modernos muestran los tipos de variables
en la demanda, y de forma automática operaciones de bandera que utilizan tipos
incompatibles, por lo que la notación en gran medida obsoleta.
 Notación húngara vuelve confuso cuando se utiliza para representar varias propiedades,
como en a_crszkvc30LastNameCol: un argumento de referencia constante, que sostiene
el contenido de una base de datos de la columna Apellidos de tipo VARCHAR que es
parte de la clave primaria de la tabla.
 Puede dar lugar a incoherencias cuando el código se modifica o portado. Si se cambia el
tipo de una variable, ya sea la decoración en el nombre de la variable será incompatible
con el nuevo tipo, o el nombre de la variable debe ser cambiado. Un ejemplo muy
conocido es el tipo WPARAM estándar, y el parámetro formal wParam acompañante en
muchas declaraciones de función de sistema de Windows. La 'w' significa 'palabra',
donde 'palabra' es el tamaño de la palabra nativa de la arquitectura de hardware de la
plataforma. Originalmente era un tipo de 16 bits en arquitecturas de palabras de 16 bits,
pero se cambió a una de 32 bits en arquitectura de palabras de 32 bits o 64 bits de tipo
de arquitecturas de palabras de 64 bits en versiones posteriores del sistema operativo
sin perder su nombre original. La impedancia de semántica, y por lo tanto la confusión
programador y la inconsistencia de plataforma en plataforma, es en el supuesto de que
'w' significa 16 bits en los diferentes entornos.
 La mayor parte del tiempo, sabiendo que el uso de una variable implica conocer su tipo.
Por otra parte, si no se conoce el uso de una variable, no puede deducirse de su tipo.
 Hace código menos legible, por ofuscar el propósito de la variable con el tipo de huelga
y los prefijos de alcance.
 La información de tipo adicional puede sustituir insuficientemente nombres más
descriptivos. Por ejemplo sDatabase no le dice al lector lo que es. databaseName podría
ser un nombre más descriptivo.
 Cuando los nombres son suficientemente descriptivos, la información de tipo adicional
puede ser redundante. Por ejemplo firstName es más probable una cadena. Así
nombrarlo sFirstName sólo añade confusión al código.
 Es difícil recordar los nombres.
Opiniones notables
 Robert C. Martin:
"Hoy en día... HN y otras formas de codificación tipo son simplemente obstáculos. Ellos
hacen que sea más difícil para cambiar el nombre o el tipo de una variable, función, o
miembro de la clase. Ellos hacen que sea más difícil de leer el código. Ellos crean la
posibilidad de que el sistema de codificación se induzca a error al lector”.
 Linus Torvalds:
"Codificación del tipo de una función en el nombre es cerebro dañado-el compilador
sabe los tipos de todos modos y puede comprobar aquellos, y sólo confunde el
programador."
 Steve McConnell:
"A pesar de la convención de nomenclatura de Hungría ya no es de uso generalizado, la
idea básica de la estandarización en concisas, precisas abreviaturas sigue teniendo
valor. Prefijos estandarizados permiten comprobar los tipos de precisión cuando se está
utilizando tipos de datos abstractos que el compilador no puede necesariamente
marque”.
 Bjarne Stroustrup:
"No, no lo recomiendo" húngaro”. Considero 'húngaro' una técnica que puede ser útil
en las lenguas sin tipo, pero es totalmente inadecuado para un lenguaje de
programación que soporte genérico y programación orientada a objetos, tanto de los
que hacen hincapié en la selección de las operaciones en función del tipo un
argumentos. En este caso, "la construcción del tipo de un objeto en los nombres
'simplemente complica y reduce al mínimo la abstracción".
 Joel Spolsky:
"Si usted lee el artículo de Simonyi de cerca, lo que quería llegar era el mismo tipo de
convención de nombres como lo hacía 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 semánticamente diferentes. Tienen que ser interpretado de manera
diferente y se tratan de manera diferente y algún tipo de función de conversión tendrá
que llamar si asignar una a la otra, o usted tendrá un error de tiempo de ejecución. Si
tiene suerte. Todavía hay una enorme cantidad de valor a las aplicaciones de Hungría,
ya que aumenta la función de proximidad en el código, lo que hace que el código sea
más fácil de leer, escribir, depurar y mantener, y lo más importante, tiene un código
incorrecto mirar mal. "
 Instrucciones de diseño de Microsoft desalientan a los desarrolladores de utilizar la
notación húngara cuando eligen nombres para los elementos de. NET Class Libraries,
aunque era común en las plataformas de desarrollo de Microsoft anteriores como Visual
Basic 6 y anteriores. Estas Instrucciones de diseño no se pronuncian sobre las
convenciones de nomenclatura para las variables locales dentro de funciones.

Contenu connexe

Tendances

Manual para ponchar un cable utp cruzado y directo
Manual para ponchar un cable utp cruzado y directoManual para ponchar un cable utp cruzado y directo
Manual para ponchar un cable utp cruzado y directo
valenzapata1008
 
Ejercicios en clase Unidad II
Ejercicios en clase Unidad IIEjercicios en clase Unidad II
Ejercicios en clase Unidad II
Luis Caiza
 
Multímetro y sus partes
Multímetro y sus partesMultímetro y sus partes
Multímetro y sus partes
sonriealavida
 
Patrones de medición y tipos de errores
Patrones de medición y tipos de erroresPatrones de medición y tipos de errores
Patrones de medición y tipos de errores
Yenifer
 
U8 Tipos de lámparas y su conexión
U8 Tipos de lámparas y su conexión U8 Tipos de lámparas y su conexión
U8 Tipos de lámparas y su conexión
Miguel Á Rodríguez
 
NORMAS PARA LOS CABLES UTP Y STP
NORMAS PARA LOS CABLES UTP Y STPNORMAS PARA LOS CABLES UTP Y STP
NORMAS PARA LOS CABLES UTP Y STP
luissuarez10
 

Tendances (20)

Tipos de microcontroladores
Tipos de microcontroladoresTipos de microcontroladores
Tipos de microcontroladores
 
Compuertas Lógicas NOR, XOR, NAND, XNOR
Compuertas Lógicas NOR, XOR, NAND, XNORCompuertas Lógicas NOR, XOR, NAND, XNOR
Compuertas Lógicas NOR, XOR, NAND, XNOR
 
Codificación. Código Fuente, Objeto y Ejecutable.
Codificación. Código Fuente, Objeto y Ejecutable.Codificación. Código Fuente, Objeto y Ejecutable.
Codificación. Código Fuente, Objeto y Ejecutable.
 
Informe laboratorio ponchado cable utp
Informe laboratorio ponchado cable utpInforme laboratorio ponchado cable utp
Informe laboratorio ponchado cable utp
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Modelo e r
Modelo e rModelo e r
Modelo e r
 
Patrones de Medicion
Patrones de MedicionPatrones de Medicion
Patrones de Medicion
 
Cuadro comparativo de compuertas logicas
Cuadro comparativo de compuertas logicasCuadro comparativo de compuertas logicas
Cuadro comparativo de compuertas logicas
 
Tema 4
Tema 4Tema 4
Tema 4
 
Mis proyectos con Arduino
Mis proyectos con ArduinoMis proyectos con Arduino
Mis proyectos con Arduino
 
Manual para ponchar un cable utp cruzado y directo
Manual para ponchar un cable utp cruzado y directoManual para ponchar un cable utp cruzado y directo
Manual para ponchar un cable utp cruzado y directo
 
Ejercicios en clase Unidad II
Ejercicios en clase Unidad IIEjercicios en clase Unidad II
Ejercicios en clase Unidad II
 
Multímetro y sus partes
Multímetro y sus partesMultímetro y sus partes
Multímetro y sus partes
 
Sensores de caudal tipo Turbina
Sensores de caudal tipo TurbinaSensores de caudal tipo Turbina
Sensores de caudal tipo Turbina
 
Cuadro comparativo de familias logicas
Cuadro comparativo de familias logicasCuadro comparativo de familias logicas
Cuadro comparativo de familias logicas
 
Instrumentacion unidad-ii (2)
Instrumentacion unidad-ii (2)Instrumentacion unidad-ii (2)
Instrumentacion unidad-ii (2)
 
Patrones de medición y tipos de errores
Patrones de medición y tipos de erroresPatrones de medición y tipos de errores
Patrones de medición y tipos de errores
 
U8 Tipos de lámparas y su conexión
U8 Tipos de lámparas y su conexión U8 Tipos de lámparas y su conexión
U8 Tipos de lámparas y su conexión
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajes
 
NORMAS PARA LOS CABLES UTP Y STP
NORMAS PARA LOS CABLES UTP Y STPNORMAS PARA LOS CABLES UTP Y STP
NORMAS PARA LOS CABLES UTP Y STP
 

Similaire à Notacion Hungara

37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacion
karenyulithza
 
Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_
Jennybeatriz1
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuela
royimar
 
Lenguajes De Bajo Nivel
Lenguajes De Bajo NivelLenguajes De Bajo Nivel
Lenguajes De Bajo Nivel
guestbf0046
 
Tipos de datos en programacion
Tipos de datos en programacionTipos de datos en programacion
Tipos de datos en programacion
Alfonso
 
Clase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - MéridaClase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - Mérida
guestc906c2
 
Clase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - MéridaClase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - Mérida
guestc906c2
 
Presentacion de tipos_de_datos_para_c_
Presentacion de tipos_de_datos_para_c_Presentacion de tipos_de_datos_para_c_
Presentacion de tipos_de_datos_para_c_
GamePlayer34
 

Similaire à Notacion Hungara (20)

Segundo trabajo
Segundo trabajoSegundo trabajo
Segundo trabajo
 
Actividades 1 7
Actividades 1 7Actividades 1 7
Actividades 1 7
 
Actividades 1 7
Actividades 1 7Actividades 1 7
Actividades 1 7
 
Actividades 1 7
Actividades 1 7Actividades 1 7
Actividades 1 7
 
Actividades 1-7
Actividades 1-7Actividades 1-7
Actividades 1-7
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacion
 
Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_
 
Dp2
Dp2Dp2
Dp2
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuela
 
Lenguajes De Bajo Nivel
Lenguajes De Bajo NivelLenguajes De Bajo Nivel
Lenguajes De Bajo Nivel
 
Notacion hungara
Notacion hungaraNotacion hungara
Notacion hungara
 
Introducción a los lenguajes de programación( imodulo)
Introducción a los lenguajes de programación( imodulo)Introducción a los lenguajes de programación( imodulo)
Introducción a los lenguajes de programación( imodulo)
 
Tipos de datos en programacion
Tipos de datos en programacionTipos de datos en programacion
Tipos de datos en programacion
 
Clase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - MéridaClase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - Mérida
 
Clase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - MéridaClase III Estructura de Datos IUTE - Mérida
Clase III Estructura de Datos IUTE - Mérida
 
Presentación de c #
Presentación de c #Presentación de c #
Presentación de c #
 
Presentacion de tipos_de_datos_para_c_
Presentacion de tipos_de_datos_para_c_Presentacion de tipos_de_datos_para_c_
Presentacion de tipos_de_datos_para_c_
 
Datos simples
Datos simplesDatos simples
Datos simples
 
Datos simples
Datos simples Datos simples
Datos simples
 
tipos
tipos tipos
tipos
 

Plus de Ashley Stronghold Witwicky

Plus de Ashley Stronghold Witwicky (20)

Clase 0.3 normalizacion. sql server aplicado
Clase 0.3   normalizacion. sql server aplicadoClase 0.3   normalizacion. sql server aplicado
Clase 0.3 normalizacion. sql server aplicado
 
Carpeta de investidura para guias mayores (venezuela)
Carpeta de investidura para guias mayores (venezuela)Carpeta de investidura para guias mayores (venezuela)
Carpeta de investidura para guias mayores (venezuela)
 
Sanson mata un leon con sus manos
Sanson mata un leon con sus manosSanson mata un leon con sus manos
Sanson mata un leon con sus manos
 
Consecuencias personales y sociales del uso de drogas
Consecuencias personales y sociales del uso de drogasConsecuencias personales y sociales del uso de drogas
Consecuencias personales y sociales del uso de drogas
 
Constancia de servicio
Constancia de servicioConstancia de servicio
Constancia de servicio
 
Requisitos para Guia Mayor
Requisitos para Guia MayorRequisitos para Guia Mayor
Requisitos para Guia Mayor
 
Instructivo de llenado carta poder
Instructivo de llenado carta poderInstructivo de llenado carta poder
Instructivo de llenado carta poder
 
Constancia experiencia profesional
Constancia experiencia profesionalConstancia experiencia profesional
Constancia experiencia profesional
 
Ideales ja
Ideales jaIdeales ja
Ideales ja
 
Mysql
MysqlMysql
Mysql
 
Especialidad de insectos desarrollada
Especialidad de insectos desarrolladaEspecialidad de insectos desarrollada
Especialidad de insectos desarrollada
 
Manual basico autocad_2012
Manual basico autocad_2012Manual basico autocad_2012
Manual basico autocad_2012
 
Derivadas e integrales apunte para principiantes
Derivadas e integrales apunte para principiantesDerivadas e integrales apunte para principiantes
Derivadas e integrales apunte para principiantes
 
Ecuaciones primer grado con una incognita
Ecuaciones primer grado con una incognitaEcuaciones primer grado con una incognita
Ecuaciones primer grado con una incognita
 
Conversion de unidades
Conversion de unidadesConversion de unidades
Conversion de unidades
 
Curso de my sql
Curso de my sqlCurso de my sql
Curso de my sql
 
Manual de microsoft publisher 2007
Manual de microsoft publisher 2007Manual de microsoft publisher 2007
Manual de microsoft publisher 2007
 
Unidad v paradigma funcional de programacion fiuncional
Unidad v   paradigma funcional de programacion fiuncionalUnidad v   paradigma funcional de programacion fiuncional
Unidad v paradigma funcional de programacion fiuncional
 
Biblia de publisher 2007
Biblia de publisher 2007Biblia de publisher 2007
Biblia de publisher 2007
 
Ejercicios en microsoft publisher 2007
Ejercicios en microsoft publisher 2007Ejercicios en microsoft publisher 2007
Ejercicios en microsoft publisher 2007
 

Dernier

Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
MiNeyi1
 

Dernier (20)

AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 

Notacion Hungara

  • 1. NOTACIÓN HÚNGARA La notación húngara es una convención de nombres identificador de programación informática, en la que el nombre de una variable o función indica el tipo o uso previsto. Hay dos tipos de notación húngara: Sistemas de notación húngara y aplicaciones notación húngara. La notación húngara fue diseñada para ser independiente del lenguaje, y encontró su primer uso importante con el lenguaje de programación BCPL. Debido BCPL tiene ningún tipo de datos que no sean la palabra de la máquina, no hay nada en la propia lengua ayuda a un programador recordar variables de tipos. Notación húngara tiene como objetivo remediar esto proporcionando el programador con conocimiento explícito de tipo de datos de cada variable. En la notación húngara, un nombre de variable empieza con un grupo de letras minúsculas que son mnemotécnicos para el tipo o propósito de esa variable, seguido por el nombre que el programador ha elegido; esta última parte a veces se distingue por ser el nombre dado. El primer carácter del nombre que puede ser capitalizado para separarlo de los indicadores de tipo. De lo contrario el caso de este carácter denota alcance. Historia La notación húngara original, que ahora se llamaría Aplicaciones húngaro, fue inventada por Charles Simonyi, un programador que trabajaba en Xerox PARC circa 1972-1981, y que más tarde se convirtió en arquitecto jefe de Microsoft. Puede haber sido derivado del principio anterior de utilizar la primera letra del nombre de una variable para ajustar su tipo - por ejemplo, las variables cuyos nombres comenzaron con las letras I a N en FORTRAN son enteros por defecto. La notación es una referencia a la nación de Simonyi de origen, nombres de las personas húngaras se "invierten" en comparación con la mayoría de los nombres europeos, el apellido precede al nombre. Por ejemplo, el nombre anglicismo "Charles Simonyi" en húngaro era originalmente "Charles Simonyi". De la misma manera el nombre del tipo precede al "nombre" en la notación húngara en lugar de la más natural, la mayoría europeos, "type última" Smalltalk nombramiento estilo por ejemplo unPunto y lastPoint. Este estilo de denominación esta última era más común en el Xerox PARC durante el mandato de Simonyi allí. El nombre Aplicaciones húngaro fue acuñado desde la convención se utilizó en la división de aplicaciones de Microsoft. Sistema húngaro desarrolló más tarde en el equipo de desarrollo de Microsoft Windows. El artículo de Simonyi se refirió a los prefijos utilizados para indicar el "tipo" de la información que se almacena. Su propuesta fue en gran parte que ver con nombres de identificadores de decoración en base a la información semántica de lo que almacenan, en consonancia con aplicaciones húngaro. Sin embargo, sus sugerencias no fueron enteramente distinto de lo que se conoce como Sistemas de Hungría, ya que algunos de sus prefijos propuestos contienen poca o ninguna información semántica. La notación húngara plazo es memorable por muchas personas debido a que las cadenas de consonantes impronunciables vagamente se parecen a la consonante-rica ortografía de algunas lenguas de Europa del Este a pesar de que Hungría es un lenguaje Uralic, ya diferencia de las lenguas
  • 2. eslavas es bastante rico en vocales. Por ejemplo, el prefijo de cadena terminada en cero "sz" también es una letra del alfabeto húngaro. Sistemas vs Aplicaciones húngaro Cuando los sistemas de notación y la notación aplicaciones difieren es en el fin de los prefijos. En la notación húngara Sistemas, el prefijo codifica el tipo de datos real de la variable. Por ejemplo:  lAccountNum: variable es un entero largo;  arru8NumberList: variable es una matriz de un entero sin signo de 8 bits;  szName: variable es una cadena terminada en cero, lo que fue uno de los prefijos sugeridos originales de Simonyi.  Breadline: función con un código de retorno de valor de byte. Aplicaciones notación húngara se esfuerza para codificar el tipo de datos lógicos en lugar del tipo de datos físicos, de esta manera, da una idea de lo que el propósito de la variable es, o lo que representa.  rwPosition: variable representa una fila;  usName: variable representa una cadena insegura, que debe ser "saneada" antes de su uso  strNombre: Variable representa una cadena que contiene el nombre, pero no específica cómo se aplica esa cadena. La mayoría, pero no todos, de los prefijos Simonyi sugeridas son de naturaleza semántica. Los siguientes son ejemplos del documento original:  pX: es un puntero a otro tipo X, lo que contiene muy poca información semántica.  d es un prefijo que significa diferencia entre dos valores, por ejemplo, dY podría representar una distancia a lo largo del eje Y de un gráfico, mientras que sólo una variable llamada y podría ser una posición absoluta. Esto es totalmente de naturaleza semántica.  Sz: es una cadena nula o terminada en cero. En C, este contiene alguna información semántica, ya que no está claro si una variable de tipo char * es un puntero a un carácter individual, un conjunto de caracteres o una cadena terminada en cero.  W: representa una variable que es una palabra. Este no contiene esencialmente información semántica en absoluto, y probablemente ser considerado Sistemas húngaro.  b: representa un byte, que en contraste con w pueda disponer de información semántica, porque en C el único tipo de datos byte de tamaño es el carbón, por lo que éstos se utilizan a veces para contener valores numéricos. Este prefijo puede eliminar la ambigüedad entre si la variable es la celebración de un valor que debe ser tratado como un carácter o un número.
  • 3. Mientras la notación siempre utiliza letras minúsculas iniciales como mnemotécnicos, no prescribe la nemotécnica sí mismos. Hay varias convenciones ampliamente utilizadas, pero cualquier conjunto de letras se pueden utilizar, siempre y cuando sean compatibles dentro de un cuerpo de código dado. Es posible que el código utilizando aplicaciones notación húngara para contener a veces Sistemas húngaros al describir las variables que se definen únicamente en función de su tipo. Relación con sigilos En algunos lenguajes de programación, una notación parecida llama ahora sigilos está integrado en el lenguaje y aplicadas por el compilador. Por ejemplo, en algunas formas de BASIC, name $ nombres una cadena y count% nombres de un número entero. La principal diferencia entre la notación y sigilos húngaro es que los sigilos declarar el tipo de la variable para el compilador, mientras que la notación húngara es puramente un esquema de nombres. Ejemplos  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 función Los mnemónicos para punteros y matrices, que no son tipos de datos reales, son seguidos generalmente por el tipo del elemento de datos en sí:  pszOwner: Puntero a una cadena terminada en cero  rgfpBalances: array de valores de punto flotante  aulColors: array de unsigned long Mientras que la notación húngara se puede aplicar a cualquier lenguaje de programación y el medio ambiente, que fue ampliamente adoptado por Microsoft para su uso con el lenguaje C, en particular, para Microsoft Windows, y su uso sigue siendo limitado en gran medida a esa área. En particular, el uso de la notación húngara fue ampliamente evangelizada por Charles Petzold
  • 4. "Programming Windows", el libro original de programación API de Windows. Por lo tanto, muchas construcciones comúnmente vistos de notación húngara son específicos de Windows:  Para los programadores que aprendieron de programación de Windows en C, probablemente los ejemplos más memorables son el wParam y lParam para la función WindowProc.  hwndFoo: identificador de una ventana  lpszBar: puntero largo a una cadena terminada en cero La notación a veces se extiende en C para incluir el ámbito de una variable, separados por un guión bajo. Esta extensión se utiliza a menudo también sin el tipo de especificación de Hungría:  g_nWheels: miembros de un espacio de nombres global, entero  m_nWheels: miembros de una estructura/clase, número entero  m_wheels, _Ruedas: miembros de una estructura/clase  s_wheels: miembros estáticos de una clase  c_wheels: Miembro estático de una función Ventajas Los partidarios argumentan que los beneficios de la notación húngara incluyen:  El tipo de variable se puede ver a partir de su nombre. .  El tipo de valor devuelto por una función se determina sin búsqueda  El formato de los nombres de las variables puede simplificar algunos aspectos de refactorización de código.  Múltiples variables con semántica similares pueden ser utilizados en un bloque de código: dwWidth, iWidth, fWidth, dancho  Los nombres de variables pueden ser fácil de recordar de conocer sólo sus tipos.  Esto lleva a los nombres de variables más consistentes  Tipo inapropiados fundición y operaciones con tipos incompatibles se pueden detectar fácilmente durante la lectura de código de  Es útil con lenguajes basados en cadenas donde numéricos son cadenas  En Aplicaciones húngaro, los guardias nombre de la variable contra el uso en una operación inadecuada con el mismo tipo de datos al hacer que el error evidente como en:  heightWindow = window.getWidth  Al programar en un lenguaje que utiliza tipado dinámico o que está completamente sin tipo, los adornos que se refieren a los tipos dejan de ser redundante. Estos idiomas no suelen incluir declaraciones de tipos, por lo que las únicas fuentes de qué tipos se permiten son los mismos nombres, documentación, tales como comentarios y por la lectura del código de entender lo que hace. En estos idiomas, incluyendo una indicación del tipo de una variable puede ayudar al programador. Como se mencionó anteriormente, la notación húngara se expandió en un lenguaje.
  • 5.  En programas complejos con una gran cantidad de objetos globales, con una notación básica prefijo puede facilitar el trabajo de búsqueda de la parte interior del editor. Escribiendo btn y presionando causas del editor para que aparezca una lista de los objetos Button.  La aplicación de la notación húngara de una manera más estrecha, tales como la aplicación sólo para variables miembro ayuda a evitar la colisión de nombres. Desventajas La mayoría de los argumentos en contra de la notación húngara son objeto los sistemas de notación húngara, no aplicaciones notación húngara. Algunos temas posibles son:  La notación húngara es redundante cuando el tipo de comprobación se realiza por el compilador. Compiladores para lenguajes proporcionan tipo de comprobación de garantizar el uso de una variable es coherente con el tipo de forma automática, los controles de los ojos son redundantes y sujeto a errores humanos.  Todos los entornos de desarrollo integrados modernos muestran los tipos de variables en la demanda, y de forma automática operaciones de bandera que utilizan tipos incompatibles, por lo que la notación en gran medida obsoleta.  Notación húngara vuelve confuso cuando se utiliza para representar varias propiedades, como en a_crszkvc30LastNameCol: un argumento de referencia constante, que sostiene el contenido de una base de datos de la columna Apellidos de tipo VARCHAR que es parte de la clave primaria de la tabla.  Puede dar lugar a incoherencias cuando el código se modifica o portado. Si se cambia el tipo de una variable, ya sea la decoración en el nombre de la variable será incompatible con el nuevo tipo, o el nombre de la variable debe ser cambiado. Un ejemplo muy conocido es el tipo WPARAM estándar, y el parámetro formal wParam acompañante en muchas declaraciones de función de sistema de Windows. La 'w' significa 'palabra', donde 'palabra' es el tamaño de la palabra nativa de la arquitectura de hardware de la plataforma. Originalmente era un tipo de 16 bits en arquitecturas de palabras de 16 bits, pero se cambió a una de 32 bits en arquitectura de palabras de 32 bits o 64 bits de tipo de arquitecturas de palabras de 64 bits en versiones posteriores del sistema operativo sin perder su nombre original. La impedancia de semántica, y por lo tanto la confusión programador y la inconsistencia de plataforma en plataforma, es en el supuesto de que 'w' significa 16 bits en los diferentes entornos.  La mayor parte del tiempo, sabiendo que el uso de una variable implica conocer su tipo. Por otra parte, si no se conoce el uso de una variable, no puede deducirse de su tipo.  Hace código menos legible, por ofuscar el propósito de la variable con el tipo de huelga y los prefijos de alcance.  La información de tipo adicional puede sustituir insuficientemente nombres más descriptivos. Por ejemplo sDatabase no le dice al lector lo que es. databaseName podría ser un nombre más descriptivo.
  • 6.  Cuando los nombres son suficientemente descriptivos, la información de tipo adicional puede ser redundante. Por ejemplo firstName es más probable una cadena. Así nombrarlo sFirstName sólo añade confusión al código.  Es difícil recordar los nombres. Opiniones notables  Robert C. Martin: "Hoy en día... HN y otras formas de codificación tipo son simplemente obstáculos. Ellos hacen que sea más difícil para cambiar el nombre o el tipo de una variable, función, o miembro de la clase. Ellos hacen que sea más difícil de leer el código. Ellos crean la posibilidad de que el sistema de codificación se induzca a error al lector”.  Linus Torvalds: "Codificación del tipo de una función en el nombre es cerebro dañado-el compilador sabe los tipos de todos modos y puede comprobar aquellos, y sólo confunde el programador."  Steve McConnell: "A pesar de la convención de nomenclatura de Hungría ya no es de uso generalizado, la idea básica de la estandarización en concisas, precisas abreviaturas sigue teniendo valor. Prefijos estandarizados permiten comprobar los tipos de precisión cuando se está utilizando tipos de datos abstractos que el compilador no puede necesariamente marque”.  Bjarne Stroustrup: "No, no lo recomiendo" húngaro”. Considero 'húngaro' una técnica que puede ser útil en las lenguas sin tipo, pero es totalmente inadecuado para un lenguaje de programación que soporte genérico y programación orientada a objetos, tanto de los que hacen hincapié en la selección de las operaciones en función del tipo un argumentos. En este caso, "la construcción del tipo de un objeto en los nombres 'simplemente complica y reduce al mínimo la abstracción".  Joel Spolsky: "Si usted lee el artículo de Simonyi de cerca, lo que quería llegar era el mismo tipo de convención de nombres como lo hacía 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 semánticamente diferentes. Tienen que ser interpretado de manera diferente y se tratan de manera diferente y algún tipo de función de conversión tendrá que llamar si asignar una a la otra, o usted tendrá un error de tiempo de ejecución. Si tiene suerte. Todavía hay una enorme cantidad de valor a las aplicaciones de Hungría, ya que aumenta la función de proximidad en el código, lo que hace que el código sea más fácil de leer, escribir, depurar y mantener, y lo más importante, tiene un código incorrecto mirar mal. "
  • 7.  Instrucciones de diseño de Microsoft desalientan a los desarrolladores de utilizar la notación húngara cuando eligen nombres para los elementos de. NET Class Libraries, aunque era común en las plataformas de desarrollo de Microsoft anteriores como Visual Basic 6 y anteriores. Estas Instrucciones de diseño no se pronuncian sobre las convenciones de nomenclatura para las variables locales dentro de funciones.