ilyachalov (ilyachalov) wrote,
ilyachalov
ilyachalov

Categories:

Юникод и знак минуса в программах

В текстовых редакторах, предназначенных для программистов, используются моноширинные шрифты (в которых каждый символ занимает место одной и той же ширины). Это удобно с точки зрения читабельности текстов программ.

Однако, моноширинность шрифта ухудшает ситуацию с разными символами, начертание которых сходно. Один из таких символов — знак минуса, имеющий кучу похожих на него «братьев», которые не принимаются компилятором.

Кроме того, исторически сложилось, что в компьютерных программах вместо знака минуса используется знак дефиса. Это тоже вносит некоторую путаницу.

Когда программа набирается ручками, мы используем соответствующую клавишу либо на основной клавиатуре, либо на цифровой (numpad). Ошибок не возникает. Ошибки могут возникнуть тогда, когда копируется текст программы из какого-нибудь отсканированного бумажного или изначально электронного учебника в формате, к примеру, PDF.

И с основной, и с цифровой клавиатуры мы получаем один и тот же символ. В Юникоде он имеет код U+002D и называется «hyphen-minus» (так как, как было указано выше, изначально использовался и используется в качестве и дефиса, и минуса в компьютерных текстах). Компилятор среды «Visual Studio Community 2017» принимает в качестве обозначения операции арифметического вычитания только его.

В Юникоде еще есть дефис (hyphen, U+2010), неразрывный дефис (non-breaking hyphen, U+2011), цифровое тире (figure dash, U+2012), среднее тире (en dash, U+2013), длинное тире (em dash, U+2014), горизонтальная линия (horizontal bar, U+2015), минус (minus sign, U+2212) и другие. Все они (в том числе и, собственно, минус) не принимаются упомянутым выше компилятором в качестве обозначения операции вычитания.

Из книги «The Promise of Space» Артура Кларка, 1968 год:

«Mariner 1», запущенный 22 июля 1962 года, был угроблен самым дорогостоящим дефисом в истории. Ошибка всего с одним «-» в программе привела к тому, что компьютер сбился с курса и ракету-носитель «Atlas-Agena» пришлось уничтожить.

Писатель, конечно, немножко переврал, но получилось красиво.
Tags: Графоману, Программирование
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments