Что такое венгерская нотация?

Венгерская нотация - способ присвоения специфических префиксов для имён типов данных, констант и переменных.

Возможно, вам доводилось встречать это словосочетание на программистских форумах либо в каких-либо статьях по программированию, либо просто слышать от знакомых разработчиков или преподавателей дисциплины "программирование". Если вы сами только начинаете программировать, то о венгерской нотации вряд ли слышали - она в наше время не слишком популярна, и на то есть ряд довольно веских причин. Впрочем, давайте, пожалуй, обо всём по порядку...

Венгерской нотацией называют специфический способ написания программного кода, который предусматривает присвоение специфических имён типам данных, константам и переменным. Система именования идентификаторов в коде (идентификаторами называются имена переменных, констант, функций, классов и т.д. и т.п.) включает, в основном, специальные префиксы (приставки), которые предназначены для того, чтобы программист мог с одного взгляда на имя переменной или константы определить её тип, область действия (глобальная она или локальная), при взгляде на имя типа данных - определить, это статический тип или указатель, и т.д. и т.п.

Венгерская нотация, конечно, может существенно различаться в зависимости от команды программистов, в которой она применяется. Наиболее употребителен формат венгерской нотации, употребляемый в Windows API. Его легко можно найти на Википедии. Кстати, происхождение самого термина "венгерская нотация" также тесно связано с крупнейшей софтверной корпорацией. Дело в том, что разработал и внедрил на практике её впервые программист венгерского происхождения - Чарльзу Шимоньи. Он, кстати, стал также известен как пятый по счёту космический турист.

В настоящее время венгерская нотация уже не столь актуальна при написании программного кода, поскольку объектно-ориентированные языки программирования, имеющие, ко всему прочему, строгую типизацию (то есть, не позволяющие вольным образом присваивать, например, булевским переменным строковые значения), как бы и устраняют необходимость в специальном именовании переменных. Впрочем, в языках с динамической типизацией (то есть, в таких, где одна и та же переменная может динамически изменять свой тип, в зависимости от присвоенного ей значения) использование венгерской нотации всё ещё довольно актуально, как, впрочем, и в Си, из которого венгерская нотация и пришла. Тем не менее, в общем и целом, венгерская нотация - это, скорее, пережиток прошлого, нежели насущная необходимость. Потому что, как верно заметил Линус Торвальдс (автор свободной ОС Linux), "компилятор и так знает типы и может проверить их".

Вадим СТАНКЕВИЧ

Версия для печатиВерсия для печати

Номер: 

01 за 2009 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!