Просто интересно... так как они все еще существуют и используются в С# сегодня...
Откуда взялся шаблон использования escape-кодов строки? На каком языке оно впервые появилось? Какие языки, если таковые имеются, решили проблему по-другому?
Просто интересно... так как они все еще существуют и используются в С# сегодня...
Откуда взялся шаблон использования escape-кодов строки? На каком языке оно впервые появилось? Какие языки, если таковые имеются, решили проблему по-другому?
Я подозреваю, что эти escape-коды были созданы на B, языке программирования высокого уровня для операционной системы Honeywell 6000 GCOS. Этот язык был разработан в Bell Labs на основе британского языка BCPL. Поскольку BCPL был довольно многословным, разработчики B упростили синтаксис и добавили такие вещи, как фигурные скобки, вместо BEGIN и END. Отсюда и произошло название B, потому что это была сокращенная форма BCPL.
Позже некоторые люди в Bell Labs создали язык, который стал преемником B, в основном за счет добавления типизации и стандартной библиотеки ввода-вывода. Поскольку это был преемник B, они выбрали следующую букву в имени BCPL.
Я не припоминаю, чтобы видел обратную косую черту перед B, и, поскольку C и UNIX унаследовали ее от B, я думаю, что B является источником этой записи, или, точнее, Bell Labs была источником. Вполне возможно, что это обозначение использовалось в другом программном обеспечении Bell Labs до B, поскольку они были плодовитым производителем программного обеспечения, большая часть которого бесплатно распространялась среди университетов, таких как тот, в котором я учился в середине 1970-х годов.
Между прочим, идея escape-последовательности существовала задолго до этого, восходя к коду Бодо 19-го века, который представлял собой 5-битный двоичный код фиксированной длины, предназначенный для замены кода Морзе переменной длины. У Бодо были коды SI (Shift In) и SO (Shift Out), которые переводили буквы в их заглавные вариации, как клавиша Shift на пишущей машинке.
begin
или end
. По памяти это были $(
и $)
. Я также не помню, чтобы он был особенно многословным (если только вы не говорите о CPL, на которой он был основан).
- person paxdiablo; 06.01.2011