Хорошо, поэтому при программировании логического символа ИЛИ (обычно ||) применительно к операндам a и b, то есть a || b означает, что либо a, либо b могут быть истинными, ИЛИ оба могут быть истинными. Если вы хотите, чтобы только один был истинным, вы используете XOR (иногда символ ^).
Однако в теории формального языка концепция ИЛИ (обычно символа +), по-видимому, подразумевает исключающее-или (xor) вместо обычного ИЛИ. Например, если мы опишем язык L с помощью регулярного выражения aa + bb + ab, допустимая строка (слово) из языка будет одной из этих (aa, bb или ab), а не какой-либо их конкатенацией. Чтобы сделать это, вы должны использовать замыкание Клини, как в (aa + bb + ab) *, верно?
Возможно, я просто думаю о + как об определенном смысле, или, может быть, операнды больше не являются булевыми?
Я просто ищу подтверждение, если мне кажется, что + (ИЛИ) имеет, по-видимому, другое значение в формальном языке / вычислительном моделировании, чем в языках программирования. Спасибо!