5 Conformité
La conformité est intéressante pour les audiences suivantes :
- Ceux qui conçoivent, implémentent ou gèrent des implémentations C#.
- Entités gouvernementales ou commerciales souhaitant obtenir des implémentations C#.
- Les organisations de test qui souhaitent fournir une suite de tests de conformité C#.
- Programmeurs souhaitant porter le code d’une implémentation C# vers un autre.
- Enseignants souhaitant enseigner standard C#.
- Auteurs souhaitant écrire sur C#Standard.
Par conséquent, la conformité est la plus importante, et la majeure partie de cette spécification vise à spécifier les caractéristiques qui rendent les implémentations C# et les programmes C# conformes.
Le texte de cette spécification qui spécifie les exigences est considéré comme normative. Tout autre texte de cette spécification est informatif ; autrement dit, à des fins d’information uniquement. Sauf indication contraire, tout le texte est normative. Le texte normatif est encore divisé en catégories requises et conditionnelles. Le texte normative de manière conditionnelle spécifie une fonctionnalité et ses exigences dans lesquelles la fonctionnalité est facultative. Toutefois, si cette fonctionnalité est fournie, sa syntaxe et sa sémantique doivent être exactement comme spécifiés.
Le comportement non défini est indiqué dans cette spécification uniquement par les mots « comportement non défini ».
Un programme strictement conforme ne doit utiliser que les fonctionnalités du langage spécifié dans cette spécification, comme requis. (Cela signifie qu’un programme strictement conforme ne peut pas utiliser de fonctionnalité normative conditionnelle.) Elle ne produit pas de sortie dépendante d’un comportement non spécifié, non défini ou défini par l’implémentation.
Une implémentation conforme de C# accepte tout programme strictement conforme.
Une implémentation conforme de C# doit fournir et prendre en charge tous les types, valeurs, objets, propriétés, méthodes et syntaxe de programme et sémantiques décrites dans les parties normatives (mais pas conditionnellement normatives) de cette spécification.
Une implémentation conforme de C# interprète les caractères conformément à la norme Unicode. Les implémentations conformes acceptent les unités de compilation encodées avec le formulaire d’encodage UTF-8.
Une implémentation conforme de C# ne traduit pas correctement la source contenant une directive de prétraitement #error, sauf si elle fait partie d’un groupe ignoré par la compilation conditionnelle.
Une implémentation conforme de C# génère au moins un message de diagnostic si le programme source enfreint une règle de syntaxe, ou toute exigence négative (définie sous la forme d’une exigence « doit » ou « ne doit pas » ou « ne doit pas » ou « avertissement », sauf si cette exigence est marquée avec les mots « aucun diagnostic n’est requis ».
Une implémentation conforme de C# est autorisée à fournir des types, des valeurs, des objets, des propriétés et des méthodes supplémentaires au-delà de celles décrites dans cette spécification, à condition qu’elles ne modifient pas le comportement d’un programme strictement conforme. Les implémentations conformes sont requises pour diagnostiquer les programmes qui utilisent des extensions mal formées conformément à cette spécification. Toutefois, ils peuvent compiler et exécuter de tels programmes. (La possibilité d’avoir des extensions implique qu’une implémentation conforme ne réserve pas d’identificateurs autres que ceux explicitement réservés dans cette spécification.)
Une implémentation conforme de C# doit être accompagnée d’un document qui définit toutes les caractéristiques définies par l’implémentation et toutes les extensions.
Une implémentation conforme de C# prend en charge la bibliothèque de classes documentée dans l’annexe C. Cette bibliothèque est incluse par référence dans cette spécification.
Un programme conforme est un programme acceptable pour une implémentation conforme. (Un tel programme est autorisé à contenir des extensions ou des fonctionnalités normatives conditionnellement.)
ECMA C# draft specification