Comment fonctionne une langue se développer?

Je suis en train d'apprendre le C++, et j'ai juste commencé à apprendre à propos de certains de Qts'capacités de code de programme avec une interface graphique. Je me suis posé la question suivante:

Comment C++, qui, auparavant, n'avait pas de syntaxe capable de demander à l'OS d'une fenêtre ou d'un moyen de communiquer à travers les réseaux (avec des Api qui je ne comprends pas complètement non plus, j'avoue) soudain obtenir de telles capacités par le biais des bibliothèques écrites en C++ eux-mêmes? Tout cela semble terriblement circulaire pour moi. Ce que le C++ instructions pourriez-vous éventuellement venir dans les bibliothèques?

Je me rends compte que cette question peut sembler trivial à une expérience de développeur de logiciel, mais j'ai fait des recherches pendant des heures sans trouver de réponse directe. Il est arrivé au point où je ne peux pas suivre le tutoriel sur Qt parce que l'existence de bibliothèques est incompréhensible pour moi.

  • Comment std::cout même de dessiner quoi que ce soit sur le moniteur? Ou faut-il s'asseoir sur le dessus d'un compilateur qui comprend votre matériel?
  • Grande question. En fin de compte, il est difficile de répondre jusqu'à ce que vous l'étude du matériel.
  • Voir aussi: stackoverflow.com/questions/9163554/...
  • Qt n'est pas une expansion de la langue (qui aurait besoin d'un Qt-connaissance du compilateur). Il s'agit simplement d'une bibliothèque qui est ajouté à votre arsenal. Finalement, au niveau le plus bas de toutes les bibliothèques de communiquer avec le système d'exploitation via des appels système, qui sont indépendants de la langue, mais très dépendant du système d'exploitation et l'architecture du PROCESSEUR.
  • autant que je sache, C++ a assembly en ligne, qui peut faire à peu près tout
  • C'est une précieuse question, et celui qui m'a dérangé pendant de nombreuses années, j'ai appris peu à peu sur l'informatique et la programmation.
  • En fait Qt ne développez la langue avec sa propre signal-slot mécanisme de réflexion et de nombreuses autres caractéristiques dynamiques. Et ces choses nécessitent un compilateur (le méta-objet compilateur pour compiler vers du code C++.
  • Ah. Merci de me rappeler pourquoi j'ai opté contre Qt retour dans la journée. 😉
  • Voir aussi cette question sur les Programmeurs - programmers.stackexchange.com/questions/105313/...
  • J'adore cette question. Il montre le genre de insightfulness qui ne peut venir que de faire le malin et inexpérimenté dans le même temps, et elle nous oblige à nous, les anciens, à n'oubliez pas de penser à l'extérieur de la boîte. Je vous souhaite bien dans votre programmation de carrière. Cela va faire plus de sens à mesure que vous grandissez plus expérimentés, et peut-être ensuite, vous pouvez revenir ici et de fournir une meilleure réponse.
  • Pas strictement pertinentes, mais j'ai toujours pensé que le fait suivant est très cool: Dites que vous voulez créer en C++. Vous écrire un compilateur à l'aide de dire assemblée, et maintenant vous avez un compilateur qui permet de compiler des programmes C++. Ensuite, vous écrivez un nouveau compilateur en C++ (et le compiler à l'aide du compilateur que vous avez). Maintenant jeter l'origine du compilateur, et vous avez tout un système en C++! Une autre apparence circulaire chose qui est très cool de l'omi.
  • Curiosité: Le compilateur C++ est écrit en C++. <insert xzibit mème ici>
  • assembleur peut faire les mêmes choses c++ (qui est parce que le c++ est juste traduit de l'assembleur).
  • Désolé de gâcher le plaisir, mais comment est-ce question sur le sujet?
  • Je dirais que Qt n'a pas vraiment de développer le C++. Qt utilise la génération de code basé sur le balisage (spécifique preprosessor macros) dans les sources C++. Les sources sont toujours 100% valide en C++.