9
votes

Pourquoi le compilateur ne peut-il pas simplement compiler mon code comme je le saisis?

Pourquoi le compilateur ne peut-il pas compiler mon code comme je le tape?

Du point de vue de l'utilisateur, cela pourrait fonctionner aussi bien que la coloration de la syntaxe fait aujourd'hui. Si vous arrêtez de taper assez longtemps (peut-être quelques secondes) la compilation (non liaison) finirait et que les erreurs de codes seraient identifiées à l'aide de quelque chose comme la coloration de la syntaxe.

Ce n'est pas comme si mon ordinateur de monstre de 3Ghz Quad Core était vraiment occupé à faire autre chose. Pourquoi ne pas laisser compiler tout le temps?


2 commentaires

Peut-être parce que quand vous l'avez, quelqu'un voudra éteindre. Stackoverflow.com/questions/665747 / ...


Quelle langue utilisez-vous? Il n'est pas rare que les IDes compilent à la volée de nos jours.


7 Réponses :


3
votes

Certains IDes compilent (ou au moins de la syntaxe de contrôle de la syntaxe et de la sémantique) telle qu'elle est dactylographiée. Par exemple, je pense que Eclipse le fait. Je pense que Visual Basic 6 (et peut-être des versions antérieures).


1 commentaires

Autant que j'ai vécu, Eclipse (le JDT, au moins) fait la syntaxe-vérifie lors de la frappe, mais la compilation actuelle (c'est-à-dire la production de fichiers de classe) uniquement lors de la sauvegarde d'un fichier. (Cela aurait pu changer au cours des dernières années, cependant.)



5
votes

ça peut. Ou, pour être plus utile, la réponse à cette question dépend de

  1. Quelle langue
  2. quel degré d'optimisation vous avez besoin
  3. Comment vous serez ennuyé si vous tapez temporairement quelque chose d'idiot, et que le compilateur compile et injecte le résultat dans le binaire de votre débogage avant de pouvoir le réparer.

    Certaines optimisations vraiment fortes seraient très désordonnées de gâcher à la volée. D'autre part, une compilation de base, s'il n'ya pas besoin de s'inquiéter de l'attribution de compensations pour les instructions X86? Bien sûr.


0 commentaires

3
votes

Notez que vous utilisez l'IDE, mais c'est ainsi que VB.NET fonctionne.


0 commentaires

6
votes

C'est exactement ce que l'éditeur de code VB.NET dans Visual Studio fait.

L'avantage est beaucoup plus précis intellisense que c #. L'inconvénient est qu'il gaspille vraiment de vastes quantités de temps de processeur et de mémoire. : - (


3 commentaires

Ce n'est qu'un déchet s'il n'est pas utilisé utilisé.


@RocketMagneNet: Il peut rendre l'interface utilisateur SLINGISH & Interface avec les processus d'arrière-plan (c'est-à-dire d'autres programmes). Ce n'est pas comme SQL Server où vous pouvez définir une limite sur l'utilisation de la mémoire et de la CPU.


@RocketMagneNet: Malheureusement, il est utilisé. Il existe une limite supérieure très évidente sur la taille et la complexité d'une solution VB.NET. En revanche, j'ai travaillé sur C # Solutions 20 fois la taille et je n'ai pas encore atteint une limite pratique.



2
votes

Je ne suis pas bien versé dans les compilateurs ou les méthodes par quel code est converti en une langue IL et de la machine, etc. Mais même pour que je puisse voir comment modifier mon programme par une déclaration de contrôle de flux peut complètement invalider le travail d'un compilateur a fait jusqu'à ce point. En ajoutant ou en modifiant une ligne de code unique, des parties entières d'un programme peuvent devenir obsolètes, inutilisées ou d'une autre manière nécessitent une réévaluation.

Je pense que je préférerais sauver ces cycles CPU pour distribuer.net ou seti @ home au lieu de recompiler constamment mon code comme je l'modifiais.


0 commentaires

0
votes

qui dépend totalement de la langue.

Les langues offrant des syntaxes de contexte "pourraient" pré-compiler des expressions une fois dactylographiés. Cependant, la compilation de ce projet de langues est toujours rapide, alors pourquoi utiliser la CPU lorsque vous pouvez lotter rapidement le travail lorsque le code est prêt?

D'autres langues, telles que ceci, c ++, dépendent du contexte. Dans la plupart des cas, le compilateur ne peut pas comprendre une expression sans avoir déjà lu le code entier avant l'expression. Il est vraiment très difficile d'analyser et c'est pourquoi nous avons une erreur d'erreur avant la compilation que maintenant (dans VS2010 et autre IDE récent). Dans ce cas, il semble impossible de mettre en œuvre la fonctionnalité que vous demandez.

Cela dit, je ne suis pas un spécialiste du tout. C'est tout ce que je sais à ce sujet.


0 commentaires

0
votes

Même interprété des langues comme PHP ont un support pour cela dans l'éditeur de Komodo. Je suis sûr qu'il y a beaucoup plus d'éditeurs qui l'appuient pour presque toutes les langues.


0 commentaires