En las computadoras, la distinción entre mayúsculas y minúsculas define si las letras mayúsculas y minúsculas se tratan como distintas ( case-sensitive ) o equivalentes ( case-insensitive ). Por ejemplo, cuando los usuarios interesados en aprender sobre perros buscan un libro electrónico , "perro" y "Perro" tienen el mismo significado para ellos. Por lo tanto, solicitan una búsqueda sin distinción entre mayúsculas y minúsculas. Pero cuando buscan en una enciclopedia en línea información sobre las Naciones Unidas , por ejemplo, o algo sin ambigüedad con respecto a la capitalización y la ambigüedad entre dos o más términos reducidos por la capitalización, es posible que prefieran una búsqueda que distinga entre mayúsculas y minúsculas.
La distinción entre mayúsculas y minúsculas puede variar según la situación:
Algunos lenguajes de programación distinguen entre mayúsculas y minúsculas en sus identificadores ( C , C++ , Java , C# , Verilog , [2] Ruby , [3] Python y Swift ). Otros no distinguen entre mayúsculas y minúsculas (es decir, no distinguen entre mayúsculas y minúsculas), como ABAP , Ada , la mayoría de los BASIC (una excepción es BBC BASIC ), Common Lisp , Fortran , SQL (para la sintaxis y, para algunas implementaciones de proveedores, p. ej., Microsoft SQL Server , los datos en sí) [NB 2] Pascal , Rexx y ooRexx . También hay lenguajes, como Haskell , Prolog y Go , en los que la capitalización de un identificador codifica información sobre su semántica . Algunos otros lenguajes de programación tienen distinta sensibilidad a las mayúsculas y minúsculas; en PHP , por ejemplo, los nombres de las variables distinguen entre mayúsculas y minúsculas, pero los nombres de las funciones no. Esto significa que si una función se define en minúsculas, se puede llamar en mayúsculas, pero si una variable se define en minúsculas, no se puede hacer referencia a ella en mayúsculas. Nim no distingue entre mayúsculas y minúsculas e ignora los guiones bajos, siempre que los primeros caracteres coincidan. [4]
Una operación de búsqueda de texto puede distinguir entre mayúsculas y minúsculas o no, dependiendo del sistema, la aplicación o el contexto. En muchos casos, el usuario puede especificar si una búsqueda distingue entre mayúsculas y minúsculas, por ejemplo, en la mayoría de los editores de texto, procesadores de texto y navegadores web. Una búsqueda que no distingue entre mayúsculas y minúsculas es más completa y encuentra "Idioma" (al principio de una oración), "idioma" e "IDIOMA" (en un título en mayúsculas); una búsqueda que distingue entre mayúsculas y minúsculas encontrará el lenguaje informático "BASIC", pero excluirá la mayoría de las muchas instancias no deseadas de la palabra. Por ejemplo, el motor de búsqueda de Google es básicamente insensible a mayúsculas y minúsculas, sin opción para búsquedas que distingan entre mayúsculas y minúsculas. [5] En Oracle SQL, la mayoría de las operaciones y búsquedas distinguen entre mayúsculas y minúsculas de forma predeterminada, [6] mientras que en la mayoría de los demás DBMS , las búsquedas SQL no distinguen entre mayúsculas y minúsculas de forma predeterminada. [7]
A veces se dice que las operaciones que no distinguen entre mayúsculas y minúsculas pliegan case , a partir de la idea de plegar la tabla de códigos de caracteres para que las letras mayúsculas y minúsculas coincidan.
En los sistemas de archivos de sistemas similares a Unix , los nombres de archivo suelen distinguir entre mayúsculas y minúsculas (puede haber archivos readme.txt y Readme.txt separados en el mismo directorio). MacOS es algo inusual en el sentido de que, de forma predeterminada, utiliza HFS+ y APFS sin distinguir entre mayúsculas y minúsculas (de modo que no puede haber un readme.txt y un Readme.txt en el mismo directorio) pero en modo de conservación de mayúsculas y minúsculas (de modo que un archivo creado como readme.txt se muestra como readme.txt y un archivo creado como Readme.txt se muestra como Readme.txt) de forma predeterminada. Esto causa algunos problemas para los desarrolladores y usuarios avanzados , porque la mayoría de los sistemas de archivos en otros entornos similares a Unix distinguen entre mayúsculas y minúsculas y, por ejemplo, un árbol de código fuente para software para sistemas similares a Unix puede tener un archivo llamado Makefile y un archivo llamado makefile en el mismo directorio. Además, algunos instaladores de Mac asumen que no distinguen entre mayúsculas y minúsculas y fallan en sistemas de archivos que distinguen entre mayúsculas y minúsculas.
Los sistemas de archivos MS-DOS más antiguos , FAT12 y FAT16, no distinguían entre mayúsculas y minúsculas ni las conservaban, de modo que un archivo cuyo nombre se ingresa como readme.txt o ReadMe.txt se guarda como README.TXT. Más tarde, con VFAT en Windows 95, los sistemas de archivos FAT comenzaron a conservar las mayúsculas y minúsculas como una extensión de la compatibilidad con nombres de archivo largos . [8] Los sistemas de archivos de Windows posteriores, como NTFS, distinguen entre mayúsculas y minúsculas internamente, y un readme.txt y un Readme.txt pueden coexistir en el mismo directorio. Sin embargo, para fines prácticos, los nombres de archivo se comportan como insensibles a mayúsculas y minúsculas en lo que respecta a los usuarios y la mayoría del software. [9] Esto puede causar problemas para los desarrolladores o el software que proviene de entornos tipo Unix, similares a los problemas con los sistemas de archivos insensibles a mayúsculas y minúsculas de macOS.