Agregar un tipo "booleano" separado que no sea compatible con enteros habría complicado el compilador más que el simple uso de enteros para tal fin. Tener un tipo booleano diferente que sea compatible con enteros hace necesario especificar las posibles consecuencias de almacenar un valor distinto de 0 o 1 en un objeto booleano, o realizar cálculos numéricos en un objeto booleano cuya representación no contiene ni el patrón de bits asociado con "0" ni "1". Teniendo en cuenta:
someBool = intFunction();
someInt = someBool;
exigir que someInt debe recibir el valor 1 si intFunction devuelve cualquier valor distinto de cero sería en general que el anterior más caro que
someChar = intFunction();
someInt = someChar;
En los casos en que se requeriría que el ex semántica, que podrían cumplirse sin el uso de un tipo booleano, a través de:
someChar = !!intFunction();
someInt = someChar;
ya que cualquier cosa que se pueda hacer uso de tipos de Boole también se puede hacer sin ellos, y en muchos casos c La oda que usa tipos de caracteres puede ser más eficiente que los tipos booleanos, sugiero que nunca hubo (y todavía no existe) ninguna necesidad real de ellos.
-1: ¿Qué problema se resuelve conociendo la historia de los detalles de implementación de C de Kernighan y Ritchie? –
@ S.Lott - lo siento, ¿no entendí el propósito de StackOverflow? ¿Esta pregunta no está relacionada con la programación? De las preguntas frecuentes: "este es un lugar para preguntas que pueden ser respondidas". "Siempre y cuando su pregunta sea ... detallada y específica, escrita de manera clara y simple, de interés para al menos otro programador en alguna parte". ¿Qué más extrañé? –
@ S.Lott sospecho que debe eliminar el capítulo "Antecedentes e Historia" de su libro de Python. –