Question

Je suis un étudiant à partir de CS, et mes cours sont la plupart du temps en Java. Je vais actuellement par une étude de soi « Petit Schemer », et dans le processus de savoir comment faire que j'ai trouvé de nombreuses références à des « mises en œuvre » du schéma. Ma question est, quelles sont mises en œuvre?

Sont-ils sous-dialectes du schéma, ou est-ce quelque chose d'autre (DrScheme semblent permettre différentes « saveurs » de la langue)? Est-il juste le nom donné à un écosystème donné Intégrant un IDE, interprète, outil interactif, etc.?

Est-ce que toutes les autres langues (par exemple, Java) ont également une variété de « mises en œuvre », ou est-il quelque chose réservé aux langues « ouvert »?

Merci,

Joss Delage

Était-ce utile?

La solution

Une mise en œuvre d'un langage de programmation est un compilateur ou un interprète pour cette langue. D'autres composants du système écologique, comme IDEs, peuvent faire partie d'une mise en œuvre, mais ne sont pas nécessaires. Pour le schéma il y a beaucoup, par exemple DrScheme, Guile, Gambit.

De nombreux langages de programmation ont des implémentations différentes, mais toutes les implémentations d'une certaine langue devraient mettre en œuvre (à savoir compiler) exactement le même dialecte. C'est plus facile s'il y a une spécification claire et officielle de la langue, comme est le cas pour le schéma. Bien sûr, la plupart des spécifications linguistiques passent par de nombreuses versions, ainsi les implémentations différentes peuvent prendre en charge les différentes versions de la langue.

Pour Java, il existe des implémentations de Sun, Oracle, IBM, et je pense un autre.

Autres conseils

mise en œuvre d'une langue signifie tout programme qui fonctionne ou compile cette langue spécifique.

Dans le schéma en particulier, il est une bonne question, parce qu'il ya eu plusieurs révisions majeures de la spécification du langage. Au-delà de cela, il y a beaucoup de langues (y compris le schéma original!) Que l'on appelle le schéma qui ne suivent pas des spécifications complètement. Les langues débutants pour HTDP sont petites pour être un peu restrictive sur la façon dont les problèmes sont résolus (et probablement pour d'autres raisons). GIMP jusqu'à très récemment utilisé un interprète schéma non standard appelé SIRS (schéma Dans un DEFUN ou le système en un jour). Il y a beaucoup d'autres exemples; voir par exemple Dialects du schéma pour le prendre du PLT Scheme sur support standard linguistique.

Une mise en œuvre est une version de fournisseur particulier / produit qui met en œuvre (conforme à, prévoit, etc.) un certain standard (interface de classe, API, spécification du langage, etc.).

Pour faire ce simple à comprendre par analogie, peuvent être considérés à la fois Coca-Cola et Pepsi être mises en œuvre de Soda (ou, si vous êtes si incliné, de la pop). Soda / Pop est un concept général, et Coca-Cola et Pepsi sont des produits particuliers qui sont conformes à ce concept.

De même, Mac OS X et Linux sont deux implémentations de la Single UNIX Specification. Le compilateur GNU C ++ et le compilateur Intel C sont mises en œuvre du langage de programmation C ++. Le JDK Sun Java 6, OpenJDK, et le compilateur GNU pour Java (GCJ) sont toutes les implémentations de Java.

Dans Java, comme vous le découvrirez bientôt, le mot « outils » est utilisé comme un mot-clé quand une classe fournit une définition concrète d'une fonction déclarée dans une interface, car, en fournissant la définition concrète, cette classe implémente les exigences du concept général énoncé par l'interface.

J'espère que aide à améliorer votre compréhension de la signification de « mise en œuvre ».

Une mise en œuvre est un compilateur ou un interprète pour un langage de programmation; il est un moyen de traduire les instructions de la langue dans le comportement. La langue la plus commune avec plusieurs implémentations d'aujourd'hui est probablement JavaScript.

Quand les gens parlent de mises en œuvre, il est souvent dans le contexte d'avoir à faire face aux problèmes qui se posent d'avoir plusieurs. Il y a des avantages - votre préféré fera les choses comme vous aimez - mais les problèmes peuvent être frustrant. Parce que Chrome et Firefox et IE et Safari se comportent tous un peu différemment avec le même code JavaScript, les développeurs web doivent passer beaucoup de temps à tester leur code sur les différents navigateurs, détection celui que vous utilisez, et adapter le code à la ensembles légèrement différents des bibliothèques, des bugs, etc.

Certaines langues sont définies par une implémentation standard (Ruby, Perl, python) plutôt que par un document, ce qui est la raison pour laquelle vous ne pas entendre parler de plusieurs implémentations de ceux-ci. Même dans les langues que vous avez le problème connexe de différentes versions ayant un comportement différent.

ne sont pas Implémentations un phénomène nouveau. Retour dans ses journées d'études secondaires, Bill Gates a fait ses débuts à écrire l'une des nombreuses implémentations BASIC, par exemple

Ce qui rend les problèmes pire avec le schéma qu'avec d'autres langues est que la spécification est volontairement petite - essaie de préciser très peu. L'avantage est que les gens qui conçoivent les langages de programmation peuvent créer une nouvelle mise en œuvre du schéma expérimental avec des propriétés nouvelles nettes relativement rapidement. Une fois qu'ils ont fait, ils peuvent affirmer que même la petite langue qu'ils ont écrit est « utile » parce que d'autres ont montré comment étendre la petite langue à l'utile. Cependant, il y a beaucoup de travail dans ce « simple question de programmation », et chaque mise en œuvre doit faire un grand nombre de décisions eux-mêmes, de sorte que les différences entre les mises en œuvre sont nombreux et grands. Ainsi, les problèmes associés à de multiples implémentations sont nombreuses et grandes dans le schéma par rapport aux langues spécifiées plus en détail.

La communauté Scheme reconnaît le problème, ainsi que l'avantage d'une petite spécification, et travaille activement sur les moyens de faire la transition de la langue à la langue expérimentale utile plus claire avec les nouvelles versions de la norme.    http://scheme-reports.org/

Pour l'instant (2010), je recommande que les nouveaux utilisateurs commencent à travailler dans le schéma de PLT, et je suis heureux que vous ayez commencé là-bas. Ne laissez pas la peur de problème de nombreuses implémentations vous: il y a beaucoup d'avantages à travailler dans la langue que les concepteurs de langage de programmation conçu pour eux-mêmes. PLT a une grande communauté et un bon ensemble de bibliothèques qui vous aideront à surmonter les difficultés évoquées ci-dessus.

Best, Grem

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top