quel est la différence entre une commande et une déclaration
Souvent lors de la lecture sur Tcl (par exemple http://antirez.com/articoli/tclmisunderstood.html) vous lu que "tout est une commande". Parfois, vous entendez également comment d'autres langues, comme Tcl, "les langages de commande."
Pour moi, avec mon expérience dans d'autres langues, je viens de visionner ces "commandes" que des déclarations. Ce qui précisément est la différence entre une commande et une déclaration?
Merci tout le monde. PS...viens de recevoir mon exemplaire de Ousterhout (et Jones) "Tcl et Tk Trousse à outils", 2e édition
Avez-vous trouvez la réponse que vous cherchiez dans les réponses?
Avez-vous trouvez la réponse que vous cherchiez dans les réponses?
OriginalL'auteur George Jempty | 2009-09-25
Vous devez vous connecter pour publier un commentaire.
Traditionnellement, en Tcl, le membre de phrase "tout est une commande" signifie qu'il n'y a pas une telle chose comme un "mot réservé de la commande", ou celui qui est défini par le système que vous ne pouvez pas changer. Chaque exécutable unique morceau de code Tcl est de la forme:
Il n'y a pas une telle chose comme une commande qui fait partie de la syntaxe et ne peuvent pas être écrasés (comme "si" et les autres structures de contrôle dans la plupart des langues). Il est tout à fait possible de redéfinir le "si" de commande pour faire quelque chose de légèrement différent.
Par exemple, vous pouvez redéfinir le "tout":
Le code ci-dessus étant non testé... mais il montre que l'idée générale.
OriginalL'auteur RHSeeger
Une commande est ce que les autres langues appeler une fonction, une routine ou un mot réservé, et peuvent être définis par le "proc" de la commande ou en C ou quoi que ce soit. Une déclaration est une invocation d'une commande. En utilisant les définitions traditionnelles, une déclaration en Tcl est une commande suivie par zéro ou plusieurs arguments.
Considérons le code suivant:
Ligne 1 définit une commande nommée "bonjour", la ligne 4 est une déclaration qui appelle le "bonjour" de la commande.
Certes, des articles sur Tcl utiliser le terme "commande" désigne à la fois le nom d'une commande et l'invocation de la commande. Je n'aurais pas trop accroché. Pense que des états comme l'invocation d'une commande et vous serez amende.
Quand vous voyez la phrase "tout est une commande", cela signifie qu'il n'y a pas de mots réservés. Des choses qui ressemblent à la syntaxe de la langue ou de mots clés -- si, au retour, à la sortie, de pause, de temps, et ainsi de suite... -- sont toutes les commandes. Ils peuvent tous être traités de la même manière: ils peuvent être renommés, ils peuvent être supprimés, ils peuvent être re-mise en œuvre, etc.
pinaille alerte:
else
n'est pas une commande. C'est un argument deif
merci. Je le fixe que dans ma réponse.
OriginalL'auteur Bryan Oakley
Je dirais qu'une commande est ce que vous exécutez dans une déclaration; les différents états peuvent exécuter la même commande (avec des arguments différents, généralement). La commande est l'opération; une déclaration est une invocation de l'opération.
OriginalL'auteur Jonathan Leffler
Je suppose que c'est surtout une question de sémantique, il peut donc y avoir une certaine variation dans la compréhension de ces concepts. Cela dit, cet article de Wikipédia fournit des indications qui est en accord avec mon intuition sur le sujet.
Une déclaration est une unité d'un programme impératif. Plus précisément, il s'agit de l'unité qui se termine par la déclaration d'un terminateur. En C c'est un point-virgule. Ou, en Pascal et de ses descendants, c'est l'unité qui est séparé par la déclaration de séparateur. Je pense que dans la plupart des saveurs de Pascal qui est aussi un point-virgule.
Une commande est une action, comme un appel de fonction ou un mot-clé qui exécute une action. L'article de Wikipédia compare à des verbes, et je pense que c'est une bonne description.
Donc, une déclaration de variable est une déclaration, mais probablement pas une commande. Et une affectation de variable par l'intermédiaire d'un opérateur d'affectation pourrait être considérée comme une commande par certains et pas par d'autres. On entend parfois qu'il désignait comme une cession de commande, mais pas souvent. Si elle ressemble à un appel de fonction, comme dans TCL, alors il est plus "de commande", puisqu'il y a un explicite verbe
set
.Aussi, les déclarations peuvent être constitués de plusieurs commandes. Par exemple, réfléchir à plusieurs appels de fonction en C rejoint par des virgules. Je considère qu'un énoncé, car il a un point-virgule et renvoie une valeur. Cependant, chacun de ces appels pourraient être considérés comme une commande.
L'autre chose à garder à l'esprit lorsque l'on considère l'énoncé ou la commande de la terminologie est que les déclarations font généralement référence à des programmes impératifs, tandis que les commandes généralement référence à des coquilles et des scripts. Ainsi, lors de l'utilisation d'un shell de commande comme bash, on parle de commandes. Si j'écris un script bash, alors il est habituellement considéré comme un script de commandes, plutôt que d'un programme de déclarations, même si la différence est en grande partie académique.
TCL, comme l'un des premiers langages de script, a probablement voulu faire une distinction entre lui-même comme un langage de script interprété cours d'exécution dans un shell (wish), alors que les langages compilés comme le C et Pascal. Perl, par exemple, venus de popularité, un peu plus tard, n'a généralement pas de la harpe sur la distinction.
Cependant, vous avez encore entends souvent des gens se réfèrent à des scripts Perl, plutôt que les programmes Perl, et de même pour TCL.
J'ai peur que ma réponse n'a rien fait pour clarifier la distinction, mais j'espère que cela aide.
OriginalL'auteur Jeremy Bourque
Je me suis souvent demandé pourquoi le terme "déclaration" est utilisé dans la programmation, car il ne semble pas correspondre avec la signification du mot dans le langage naturel, où une commande est un impératif et d'un énoncé n'est pas. Intuitivement, je préfère le mot de commande.
En Pascal, une déclaration de variable n'est pas considéré comme une déclaration, comme Jeremy Bourque suggère (c'est peut-être vrai pour les autres langues), puisque chaque programmation de bloc est divisé en une section de déclaration avec toutes les déclarations et la déclaration de l'article avec toutes les instructions.
Déclarations sont séparées par des points-virgules, comme Jeremy Bourque dit ci-dessus. Je ne pense pas que c'est possible d'avoir plus d'une commande dans un énoncé (comme en C, apparemment). À l'exception du composé déclarations de cours, qui ont un ou plusieurs sous-états. Donc je suppose que l'on pourrait envisager de commandement et d'instruction des synonymes en Pascal.
Cependant, dans les implémentations de Pascal, le mot de commande est souvent utilisée pour les commandes que pour le compilateur et l'environnement de développement (IDE). Il peut être utile d'avoir un mot différent pour les commandes (déclarations) dans le code source. Peut-être que les gens qui ont développé Pascal et d'autres précurseurs de langues, considéré comme une commande comme quelque chose qui devait être exécuté immédiatement. Donc Bourque remarques à propos de la différence entre compilé et écrit des langues logique pour moi.
OriginalL'auteur Bram van Reemst
Je pense qu'une commande est une instruction dans le code, et une instruction peut exécuter plusieurs commandes, mais à la fin évalue à true ou false.
OriginalL'auteur karl.r