2015-02-04 8 views
0

Кто знает о происхождении и причинах ++ postfix и sufix form. Я знаю, что они доступны даже в C. Но кто их изобрел; возможно, даже на других языках?Происхождение ++ postfix и prefix

+1

На самом деле это не место, где можно задать философские вопросы об истории конкретных особенностей языка программирования. – Justin

+1

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что этот вопрос легко ответить, посмотрев запись в википедии по этому вопросу. – Mithrandir

+2

Как обычно, я спрашивал у Google о моих вопросах. Сегодня обнаружена википедия –

ответ

7

Приводя из Wikipedia article on the B programming language:

«В также введены инкремента и декремента операторы (++ и --); Их префикс или положение постфикса определяет, будет ли принимать значение до или после изменения операнда. "

Я не вижу смысла дублировать всю статью в Википедии. Просто пойдите туда для более подробной информации.

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

+1

@ Bathsheba - обратите внимание, что вопрос отмечен C#/C++ (вместе с C), и нет возможности '++' является атомарным из-за возможности иметь пользовательские операторы ... –

+0

В ассемблере для процессоров x86 есть функция INC , поэтому ++ может быть реализован как атомный –

7

От Dennis M. Ritchie, The Development of the C Language, HOPL II, 1993:

Например, В введены обобщенные операторы присваивания, используя х = + у, чтобы добавить к у х. Обозначение произошло от Алгола 68 [Wijngaarden 75] через Макилрой, который включил его в свою версию TMG. (В B и начале C оператор был записан = + вместо + =, эта ошибка, исправленная в 1976 году, была вызвана соблазнительно простым способом обработки первой формы в лексическом анализаторе B.)

Томпсон пошел шаг дальше, изобретая операторы ++ и -, которые увеличивают или уменьшают; их префикс или постфиксная позиция определяют, происходит ли изменение до или после значения операнда.

Смежные вопросы