9
votes

Que signifie "langue fondamentale"?

dans la table sur Cette page de la documentation de la GCC, l'un des Les articles (à mi-chemin de la table) sont répertoriés uniquement comme «langue de base». Qu'est-ce que ça veut dire? Quelles parties de la langue ne seraient pas incluses?


0 commentaires

3 Réponses :


11
votes

La bibliothèque standard fait partie de la langue. Pour exprimer le sous-ensemble de la langue qui concerne uniquement les règles de la syntaxe, des règles sémantiques et non, mais pas avec la bibliothèque, les gens utilisent le terme langage de base . Par exemple, il existe un groupe de travail appelé «Groupe de travail de base» (CWG) et «Groupe de travail de la bibliothèque» (LWG) au Comité C ++.


0 commentaires

3
votes

Les gens signent souvent tout de C ++, à l'exception de la bibliothèque standard, qui fait également partie de la spécification linguistique.

comme exemple plus faisant autorité Stephan T. Lavavej (STL) est un développeur clé C ++ sur Microsoft. Dans sa série de conférences sur la la langue principale il le définit comme tout ce que vous avez accès à sans y compris l'en-tête.

Il ne se considère pas Développeur de langue de base. Par exemple, il a travaillé sur partagé_ptr qui est une partie fondamentale de C ++ 11, sans doute plus fondamentale que les chaînes et les flux des commentaires mentionnés.

La norme C ++ ne mentionne pas langage de base , mais la bibliothèque standard est xxx

Je dirais que le chapitre 1 à 16 est (presque?) Uniquement concerné par la langue principale, mais il peut y avoir plus.


6 commentaires

Tout sauf que la STL comprendrait des ruisseaux et des chaînes. :)


L'article 17 fait également partie de la bibliothèque et je vais contester que la plupart des personnes du comité l'appelent la bibliothèque de modèles standard, ils l'appellent la bibliothèque standard.


Oui, 17 est une introduction. Lisez à nouveau, je n'ai pas prétendu avoir appelé la bibliothèque standard la STL.


Il y a un petit ensemble de choses qui sont intermédiaires entre Core et Bibliothèque; Ce sont eux dans 18 ans, la bibliothèque de support de langue. Des choses comme opérateur Nouveau , Opérateur Supprimer et type_info , qui nécessitent une coopération étroite entre le compilateur et la bibliothèque.


@Petebecker, opérateur nouveau est explicitement appelé bibliothèque standard dans la norme, mais je suppose que peu de discussions et pensez-y comme ça.


@Johanlundberg - Oui, mon point était qu'il y ait certaines choses dans la bibliothèque standard qui ont une connexion intime avec la langue principale. Opérateur Nouveau est un: le compilateur l'appelle même s'il n'y a pas d'appel à celui-ci dans le code source et même si vous n'avez pas # compris l'en-tête approprié.



1
votes

Johannes's's Réponse explique ce que signifie "langue fondamentale" en général. Dans le contexte spécifique, vous posez des questions sur cela signifie que les parties linguistiques principales de N3050 sont implémentés dans GCC 4.7, mais pas nécessairement les parties de la bibliothèque (ces changements du papier qui s'appliquent aux clauses 17-30)

En fait, certaines modifications de la bibliothèque sont également implémentées dans GCC 4.7, mais l'état de la bibliothèque est documenté ailleurs


0 commentaires