La norme C a ceci à dire (5.1.2.3/5):
Au moins les exigences de conformité
la mise en œuvre sont:
- Lors de la séquence de points, la volatilité des objets
sont stables dans le sens que les précédentes
les accès sont complètes et suivantes
les accès n'ont pas encore eu lieu.
- À la fin du programme, toutes les données
écrites dans les fichiers doivent être identiques
pour le résultat que l'exécution de la
selon le programme de l'abstrait
la sémantique aurait produit.
- L'entrée et la sortie de la dynamique de
les dispositifs interactifs lieu
comme spécifié dans
7.19.3.
Donc, sans les fonctions de bibliothèque standard, le seul comportement d'un programme est la garantie d'avoir, concerne les valeurs de la volatilité des objets, parce que vous ne pouvez pas utiliser de la garantie de l'accès aux fichiers ou "dispositifs interactifs". "Pure C" ne fournit d'interaction via les fonctions de bibliothèque standard.
Pure C n'est pas toute l'histoire, bien que, depuis votre matériel pourrait avoir certaines adresses certaines choses lors de la lecture ou d'écriture (que ce soit un SATA ou bus PCI, raw vidéo mémoire, un port série, quelque chose à faire bip, ou un clignotement de la LED). Donc, de savoir quelque chose au sujet de votre matériel, vous pouvez faire beaucoup écrit en C sans utiliser les fonctions de bibliothèque standard. Potentiellement, vous pourriez mettre en œuvre la bibliothèque C standard, même si cela peut nécessiter l'accès à des instructions du PROCESSEUR ainsi que des adresses de mémoire.
Mais dans la pure C, sans les extensions, et les fonctions de bibliothèque standard supprimé, vous ne pouvez pas faire autre chose que de lire les arguments de ligne de commande, faire un peu de travail, et de renvoyer un code d'état d' main
. Ce n'est pas être sous-estimées, il est toujours Turing sous réserve de limites de ressources, bien que votre seule ressource est automatique et variables statiques, pas de tas de répartition. Ce n'est pas très riche environnement de programmation.
Les bibliothèques standard font partie de la spécification du langage, mais dans n'importe quelle langue il a tendance à être une ligne tirée entre la langue "en tant que tel", et les bibliothèques. C'est une différence conceptuelle, mais finalement pas très important dans le principe, parce que la norme dit qu'ils viennent ensemble. Quelqu'un de faire quelque chose de non-standard pourrait tout aussi facilement supprimer des fonctionnalités de langage que les bibliothèques. De toute façon, le résultat n'est pas conforme mise en œuvre de C.
Note qu'un "autonome" de la mise en œuvre de C n'a qu'à mettre en œuvre un sous-ensemble de la norme comprend pas compris les I/O, de sorte que vous êtes dans la position que j'ai décrit ci-dessus, de s'appuyer sur le matériel-les extensions spécifiques pour obtenir quelque chose d'intéressant à faire. Si vous souhaitez établir une distinction entre le "langage de base" et "les bibliothèques", basé sur le standard, c'est peut-être un bon endroit pour dessiner la ligne.