Sensibile alle maiuscoleSi dice sensibile alle maiuscole (in inglese e in gergo informatico case sensitive) ogni operazione di analisi del testo che considera come differenti due o più parole uguali solo per il fatto di essere scritte con lettere maiuscole o minuscole. Accade spesso che, quando una stessa parola viene scritta con iniziale maiuscola o minuscola, cambi completamente il significato; per esempio "Zucchero" è il nome d'arte del cantante Adelmo Fornaciari, a differenza di "zucchero", che è un sinonimo di "carboidrato". Ambito informaticoI calcolatori elettronici sono in grado di identificare diversamente lettere maiuscole e minuscole. Questo risulta importante, ad esempio, nel caso delle password; spesso, tuttavia, i nomi utente sono non sensibili (in inglese sono case insensitive), cosa che può causare confusione nell'utente inesperto. Le password sono rese sensibili affinché sia più difficile risalirvi per tentativi, mentre i nomi utente non soffrono di questo problema (una loro sensibilità alle maiuscole porterebbe solo ad una maggior difficoltà di memorizzazione). Alcuni linguaggi di programmazione come Java, C, C++ e Python sono sensibili, mentre altri non lo sono, ad esempio BASIC, Pascal e ASP. Quando un software deve confrontare dati in modo non sensibile alle maiuscole, è richiesto più lavoro, a seconda del loro tipo. Solitamente è sufficiente, in un tipo di codifica di caratteri come ASCII o EBCDIC, convertire l'intero testo tutto in minuscolo oppure in maiuscolo. Nel caso di codifiche multi-lingua come Unicode, l'elaborazione diventa più complessa in quanto non tutti i caratteri minuscoli hanno una corrispettiva versione maiuscola e viceversa: per esempio, in tedesco, prima del 2017, non esisteva una versione maiuscola della lettera «ß» (da non confondere con «β», forma minuscola della lettera greca beta, corrispondente alla «Β» dell'alfabeto latino). Le operazioni che non considerano maiuscole e minuscole sono chiamate a volte «fold case» (in inglese, minuscole ripiegate), dall'idea di ripiegare la tabella dei codici caratteri in modo che le lettere minuscole e maiuscole coincidano. La dizione alternativa «smash case» («minuscole distrutte») è spesso usata per riferirsi ad un comportamento volontario o involontario di un programma che converte permanentemente minuscole in maiuscole o viceversa. I sistemi operativi di tipo Unix (tranne macOS, di default) sono sensibili alle maiuscole, al contrario di altri sistemi come Microsoft Windows, che considera equivalenti le due forme. Essendo la maggior parte dei server web basati su sistemi Unix, molti siti considerano quindi differenti pagine come « La distinzione tra maiuscole e minuscole può variare a seconda della situazione:
Nei linguaggi di programmazioneAlcuni linguaggi di programmazione fanno distinzione tra maiuscole e minuscole per i loro identificatori (C, C ++, Java, C #, Verilog[1], Ruby[2], Python e Swift). Altri non fanno distinzione tra maiuscole e minuscole, come ABAP, Ada, la maggior parte dei BASIC (ad eccezione di BBC BASIC), Fortran, SQL (per la sintassi e per alcune implementazioni di fornitori, ad esempio Microsoft SQL Server, il dati stessi) e Pascal. Esistono anche linguaggi, come Haskell, Prolog e Go, in cui l'uso delle maiuscole di un identificatore codifica le informazioni sulla sua semantica. Alcuni altri linguaggi di programmazione hanno una diversa distinzione tra maiuscole e minuscole; in PHP, ad esempio, i nomi delle variabili fanno distinzione tra maiuscole e minuscole, ma i nomi delle funzioni non sono sensibili al maiuscolo/minuscolo. Ciò significa che se definisci una funzione in minuscolo, puoi chiamarla in maiuscolo, ma se definisci una variabile in minuscolo, non puoi fare riferimento ad essa in maiuscolo. Nim non distingue tra maiuscole e minuscole e ignora i trattini bassi, purché i primi caratteri corrispondano[3]. Nella ricerca di testoUn'operazione di ricerca di testo potrebbe essere sensibile al maiuscolo/minuscolo o senza distinzione tra maiuscole e minuscole, a seconda del sistema, dell'applicazione o del contesto. L'utente può in molti casi specificare se una ricerca è sensibile alle maiuscole/minuscole, ad esempio nella maggior parte degli editor di testo, elaboratori di testi e browser web. Una ricerca senza distinzione tra maiuscole e minuscole è più completa, trovando "Lingua" (all'inizio di una frase), "lingua" e "LINGUA" (in un titolo in maiuscolo); una ricerca con distinzione tra maiuscole e minuscole troverà il linguaggio del computer "BASIC" ma escluderà la maggior parte delle molte istanze indesiderate della parola. Ad esempio, il motore di ricerca di Google è fondamentalmente senza distinzione tra maiuscole e minuscole, senza alcuna opzione per la ricerca con distinzione tra maiuscole e minuscole[4]. In Oracle SQL la maggior parte delle operazioni e delle ricerche fa distinzione tra maiuscole e minuscole per impostazione predefinita[5], mentre nella maggior parte degli altri DBMS le ricerche SQL non fanno distinzione tra maiuscole e minuscole per impostazione predefinita[6]. A volte si dice che le operazioni senza distinzione tra maiuscole e minuscole pieghino le maiuscole, dall'idea di piegare la tabella dei codici dei caratteri in modo che le lettere maiuscole e minuscole coincidano. Nei filesystemNei filesystem in sistemi simili a Unix, i nomi dei file fanno solitamente distinzione tra maiuscole e minuscole (possono esserci file readme.txt e Readme.txt separati nella stessa directory). MacOS è piuttosto insolito in quanto, per impostazione predefinita, utilizza HFS + e APFS in modo che non faccia distinzione tra maiuscole e minuscole (in modo che non possano esserci un readme.txt e un Readme.txt nella stessa directory) ma la modalità di conservazione delle maiuscole (in modo che un file creato come readme.txt viene mostrato come readme.txt e un file creato come Readme.txt viene mostrato come Readme.txt) per impostazione predefinita. Ciò causa alcuni problemi per sviluppatori e utenti esperti, perché la maggior parte dei file system in altri ambienti Unix fanno distinzione tra maiuscole e minuscole e, ad esempio, un albero del codice sorgente per il software per sistemi Unix potrebbe avere sia un file denominato Makefile che un file denominato makefile nella stessa directory. Inoltre, alcuni programmi di installazione per Mac presumono che non facciano distinzione tra maiuscole e minuscole e non riescono sui file system sensibili al maiuscolo/minuscolo. I vecchi filesystem MS-DOS FAT12 e FAT16 non facevano distinzione tra maiuscole e minuscole e non preservavano maiuscole e minuscole, in modo che un file il cui nome è stato immesso come readme.txt o ReadMe.txt viene salvato come README.TXT. Successivamente, con VFAT in Windows 95, i file system FAT sono diventati un'estensione del formato di file Long di supporto[7]. I successivi file system di Windows, come NTFS, distinguono internamente tra maiuscole e minuscole e un readme.txt e un Readme.txt possono coesistere nella stessa directory. Tuttavia, per scopi pratici i nomi dei file si comportano in modo da non fare distinzione tra maiuscole e minuscole per quanto riguarda gli utenti e la maggior parte del software[8]. Ciò può causare problemi agli sviluppatori o al software proveniente da ambienti simili a Unix, simili ai problemi con i file system macOS senza distinzione tra maiuscole e minuscole. Note
Voci correlateAltri progetti
Collegamenti esterni
|