Dans le langage de programmation C, le langage des révisions, j'ai travaillé avec des appliqués avant les déclarations de variables avant tout non-déclarative/assignative expressions susceptibles d'être évalués. C++ semble avoir renoncé à cette exigence de toutes les versions. Je reconnais aussi une version plus moderne de C ont renoncé à cette exigence, mais je n'ai pas encore utiliser l'une de ces normes.
La question que je me pose est: est-ce Qu'raisons historiques, était là pour empêcher le langage C de déclarer librement à la demande au lieu de l'avant?
Évidemment, il ya un certain nombre de raisons qui viennent à l'esprit à partir d'un point de vue de l'ingénierie, mais aucun d'entre eux semblent tout à fait plausibles pour moi.
- La prévention d'un obscur compilateur de comportement erreur se produise (comme infini analyse de boucles, d'une massive de la mémoire de la météorisation pour l'évaluation, ou quelque étrange cas du coin avec les Macros.)
- La prévention indésirables sortie du compilateur. Cela pourrait être quelque chose de symbole de sortie embrouiller le processus de débogage et la facilité de développement d'outils de débogage, inattendus de la pile de stockage de commandes.
- La lisibilité. Je trouve cela difficile à avaler, et, voyant que le C, le tout conçu pour des raisons de lisibilité par rapport à d'autres langues de l'époque, n'a pas d'appliquer ce type de structure près n'importe où ailleurs. (Sauf si vous voyez le prototypage comme étant un analogue de l'application, mais si je me souviens prototypes ont été ajoutés dans le '89 spec.)
- Complexité de mise en œuvre et des raisons pratiques. C'est celle que je suis plus enclin à croire. Comme les ingénieurs, nous avons à faire certaines considérations afin de livrer un produit viable dans un laps de temps imparti. Alors que je le ferai que le paysage professionnel de l'Informatique et de Génie Logiciel ont tous les deux changé de façon spectaculaire, l'Entreprise est toujours en activité. À la fin de la journée, je suis sûr que Bell voulait un produit fini qui peut être utilisé dans l'environnement Unix mettre en valeur ce qu'ils avaient accompli.
Quelqu'un a une bonne sources de la sauvegarde de tout ce qui précède? Ai-je raté quelque chose d'entièrement? Nous pouvons spéculer de l'aube à la tombée de la nuit, mais je suis à la recherche pour de bon dur de références.