Article de reference

Chaîne vide

En théorie formelle des langages , la chaîne vide , également appelée mot vide ou chaîne nulle , est la seule chaîne de longueur zéro. théorie formelle Formellement, une chaîne ...

théorie formelle des langages , la chaîne vide , également appelée mot vide ou chaîne nulle , est la seule chaîne de longueur zéro.

caractères tels que des lettres, des chiffres ou des espaces. La chaîne vide est le cas particulier où la séquence est de longueur nulle ; elle ne contient donc aucun symbole. Il n’existe qu’une seule chaîne vide, car deux chaînes ne diffèrent que par leur longueur ou leur séquence de symboles. Dans les formulations formelles , la chaîne vide est notée ε, ou parfois Λ ou λ .

Il ne faut pas confondre la chaîne vide avec le langage vide , qui est un langage formel (c'est-à-dire un ensemble de chaînes) qui ne contient aucune chaîne, pas même la chaîne vide.

La chaîne vide possède plusieurs propriétés :

Dans les grammaires hors contexte , une règle de production qui permet à un symbole de produire la chaîne vide est appelée une ε-production, et le symbole est dit « annulable ».

Utilisation dans les langages de programmation

Dans la plupart des langages de programmation , le terme « chaîne de caractères » désigne souvent des instances d'un type de données et constitue donc un concept distinct de celui de la théorie formelle. Ces chaînes sont généralement stockées à des adresses mémoire distinctes et possèdent ainsi une identité. Par conséquent, des représentants d'une même chaîne formelle (par exemple, la chaîne vide) peuvent être stockés à plusieurs endroits en mémoire et ces emplacements peuvent être considérés comme des appellations de la chaîne vide formelle.

Ainsi, plusieurs représentations de la chaîne vide pourraient être présentes en mémoire, contrairement à la définition théorique formelle qui n'admet qu'une seule chaîne vide possible. Cependant, une fonction de comparaison de chaînes indiquerait que toutes ces représentations sont égales.

Même une chaîne de caractères vide peut nécessiter de la mémoire pour être stockée, selon le format utilisé. Dans la plupart des langages de programmation, une chaîne vide se distingue d'une référence nulle (ou pointeur nul) car une référence nulle ne pointe vers aucune chaîne, pas même vers la chaîne vide. La chaîne vide est une chaîne valide, sur laquelle la plupart des opérations sur les chaînes devraient fonctionner. Certains langages traitent de manière similaire les éléments suivants : les chaînes vides, les références nulles, l'entier 0, le nombre à virgule flottante 0, la valeur booléenne ` false` , le caractère ASCII `NUL` , ou d'autres valeurs de ce type.

La chaîne vide est généralement représentée de la même manière que les autres chaînes. Dans les implémentations utilisant un caractère de fin de chaîne ( chaînes terminées par un caractère nul ou lignes de texte brut), la chaîne vide est indiquée par l'utilisation immédiate de ce caractère.

Il existe différentes fonctions, méthodes, macros ou expressions idiomatiques pour vérifier si une chaîne de caractères est vide dans différents langages.représentation λLangages de programmationC , C# , C++ , Go , Haskell , Java , JavaScript , Julia , Lua , M , Objective-C (sous forme de chaîne C), OCaml , Perl , PHP , PowerShell , Python , Ruby , Scala , Standard ML , Swift , Tcl , Visual Basic .NET''APL , Delphi , JavaScript , Lua , MATLAB , Pascal , Perl , PHP , PowerShell , Python , R , Ruby , Smalltalk , SQLcharacter(0)R {'\0'}C , C++ , Objective-C (sous forme de chaîne C)new String()(de java.lang.Stringou System.String)Java , C#string()(depuis std::string)C++sC++ (depuis la norme de 2014 )@""Objective-C (en tant NSStringqu'objet constant)[NSString string]Objective-C (en tant que nouvel NSStringobjet)q(), qq()Perlstr()r""u""Python%{}%()RubisString::new()(de std::string::String) RouillerString.Empty(depuis System.String)C# , Visual Basic .NETString.make 0 '-'OCaml{}Tcl[[]]Lua“”

‘’„”‚‘

PowerShell.byte 0

.ascii "".asciz ""

A64

Représentations de la chaîne vide

zéro en notation positionnelle (dans n'importe quelle base), sans zéros non significatifs . Comme la chaîne vide n'a pas de représentation visuelle standard en dehors de la théorie des langages formels, le nombre zéro est traditionnellement représenté par un seul chiffre décimal : 0 .

Une zone mémoire remplie de zéros, interprétée comme une chaîne de caractères terminée par un caractère nul , est une chaîne vide.

Les lignes vides affichent une chaîne vide. Cela peut se produire après deux fins de ligne consécutives , comme c'est souvent le cas dans les fichiers texte . Ce procédé est parfois utilisé en traitement de texte pour séparer les paragraphes , par exemple dans MediaWiki .