I would be especially interested in Indo-European languages or other common language families, but failing that, I would be very interested if it exists at all, because it is an important distinction in formal discourse, but can almost always be taken from context in informal speech.
Yes, Basque (in the batua dialect) has ala "or (exclusive)" and edo "or (inclusive)", although ala can only be used in questions.
You may also be interested in the WALS maps of languages with an Inclusive/Exclusive Distinction in Independent Pronouns and an Inclusive/Exclusive Distinction in Verbal Inflection.
In Finnish, tai is inclusive, vai exclusive, and eli is for an equivalence.
Haluaisitko omenia tai päärynöitä?
"Would you like some apples or pears?
Haluatko omenan, vai päärynän?
"Do you want an apple, or a pear?"
Se on hyvän- ja pahantiedon puun hedelmä, eli omena.
"It's the fruit of the tree of knowledge of good and bad, or an apple."
Not sure about other languages, but I know that Latin made this distinction:
In Latin they had several different words for these different 'ors'. AUT was generally exclusive, VEL inclusive, as was -VE on the end of a word, whilst the 'or' of equivalence was denoted by SIVE or SEU
In many European languages we can modify the "or" word by prefixing with "either" to make it exclusive, as in "You must chose either a or b" (explicitly not both).
But without modification it's inclusive or exclusive depending on context: "Left or right?" is exclusive since "both" is not "possible" (usually), while "Milk or sugar?" is inclusive because "both" is possible and quite common.
PS: As a programmer I'd really like the languages to have words for inclusive-or and exclusive-or clearly defined... ;)
I think the closest thing you can get in natural languages the distinction between choice-aimed and simple alternative. Finnish and Basque have already been mentioned, and here are some more:
There are, however, 9 European languages that do not have any general marker for alternative, but show two distinct connectives for choice-aimed alternative and simple alternative relations. These languages are Polish (choice-aimed: czy, simple: lub/albo), Finnish (choice-aimed: vai, simple: tai), Belorussian (choice-aimed: ci, simple: abo), Albanian (choice-aimed: apo, simple: ose), Basque (choice-aimed: ala, simple: edo), Ukrainian (choice-aimed: čy, simple: abo), Georgian (choice-aimed: tu, simple: an), Lezgian (choice-based: tax̂ajt'a, simple: ja/wa-ja), Dargi (choice-aimed: aħi, simple: ya-ra).
This distinction is also present in Mandarin Chinese: choice-aimed alternatives use 還是 háishì and simple alternatives use 或者 huòzhě.
Note that Polish, Belorussian, Ukrainian and Albanian are all Indo-European, just like you wanted.
Just to coin one more way to express inclusive OR versus exclusive OR.
In Ukrainian, we use "or X, or Y" construct to denote exclusivity:
дай мені яблуко або помаранч — "give me an apple or an orange", inclusive;
дай мені або яблуко, або помаранч — "give me either an apple or an orange", exclusive.
In Azerbaijani language there are separate connectives for both inclusive and exclusive ors.
VƏ YA — inclusive or
YA DA — exclusive or
Qapını ört ya da bağla — Close or open the door (exclusive sense)
Çantalarınızı və ya zənbillırinizi masanın üzərinə qoyun — Put your bags or packages on the table (inclusive sense)
But in non-formal speech "ya da" is used more frequently. And the interesting fact is that inclusive or "və ya" is literally translated as "and or" (which is true including third case, when A and B are both true).
Let us understand the structure of XOR through boolean logic.
A XOR B is (A OR B) AND NOT (A AND B )
Assuming that inclusive OR appears in languages first... XOR could be obtained by applying a further condition to the OzR clause as is done by AND above...
This condition is imposed by . Either .in English. . 'Ya' . in Hindi interestingly inclusive OR is also Ya in Hindi.
This is derived from Sanskrit 'Va'... and as per Sanskrit grammer a repetition of this word suggests exclusion (Learn Sanskrit Online: "And," "Or," and "Not").
So the basic point is that the truth table for XOR can be realized by filtering out the truth table for OR and interestingly most languages make use of this mechanism instead of having a separate XOR operator (word).