Permettez-moi d'expliquer. Supposons que je veux apprendre à Python à quelqu'un qui parle seulement l'espagnol. Comme vous le savez, dans la plupart des langues de programmation, tous les mots-clés sont en anglais. Quelle complexe serait-il de créer un programme qui trouvera tous les mots-clés dans un code source donné et les traduire? Aurais-je besoin d'utiliser un analyseur et des trucs ou un couple de feeds et de fonctions de cordes sera-t-il suffisant? P>
Si cela dépend du langage de programmation source, alors Python et JavaScript seraient les plus importants. P>
Ce que je veux dire par «comment complexité serait-il» est-ce que cela suffirait à avoir une liste de mots-clés et d'analyser le code source pour trouver des mots-clés non dans des guillemets? Ou y a-t-il suffisamment d'étranges syntaxiques que quelque chose de plus compliqué est nécessaire? P>
9 Réponses :
Le problème que vous rencontrerez est que, à moins que vous n'ayez pas de normes de codage strictes, le fait que les gens ne suivent pas nécessairement un modèle dans la manière dont ils effectuent le code. Et dans toute langue dynamique, vous aurez un problème sur lequel la fonction Si vous essayez d'enseigner une langue, vous pouvez créer un DSL qui contient des mots-clés en espagnol, de sorte que vous puissiez enseigner dans votre langue et vous pouvez être traité dans Python ou JavaScript, vous avez donc créé votre propre langue. , avec les constructions que vous voulez, pour enseigner. P>
Une fois qu'ils comprennent comment programmer, ils devront alors commencer à apprendre des langues avec les mots-clés "anglais", de sorte qu'ils puissent communiquer avec d'autres, mais cela pourrait venir après avoir compris comment programmer, si cela ferait votre vie plus facile. p>
Donc, pour répondre à votre question, il y a suffisamment d'étrangeté syntaxique qu'elle serait considérablement plus compliquée de traduire les mots-clés. P> eval code> aura des mots-clés dans les guillemets. P>
Ce n'est pas une réponse optimiste ni une excellente. Cependant, je pense que cela a du mérite.
Je peux parler de C # et la traduction ne vaut pas la peine. Voici des raisons:
p>
J'ai vu quelques personnes discuter de C # code dans la langue autre que l'anglais. Dans tous les cas, les auteurs expliquent le code dans leur langue maternelle, mais écrivez-le dans le code d'apparence anglaise car il est naturellement. La meilleure approche semble essayer d'apprendre assez d'anglais pour être à l'aise avec C # comme c'est naturellement. p>
Je suis d'accord avec ça. Les parties importantes sont la documentation et la discussion, pas les 20 mots clés. Je veux dire, la plupart des mots-clés ne sont même pas des mots anglais ( code> est grec,
routine code> est français (je pense),
fonction code> est latin, lambda N'est-ce même pas un mot, juste une lettre orthographiée). Et quel genre de mot est
= ~ code> ??? Et même si i> Ce sont des mots anglais, ils ne veulent généralement pas dire ce qu'ils veulent dire en anglais de toute façon.
Le rendement code> est un bon exemple. Heck, dans la plupart des langages de programmation
Le rendement code> ne signifie même pas ce qu'il signifie normalement en informatique, plus cela signifie différent i> choses dans chaque langue.
Il serait impossible de faire une traduction qui gérerait tous les cas. Prenons par exemple ce code JavaScript:
var x = Math.random() < 0.5 ? window : { location : { href : '' } }; var y = x.location.href;
Vous devriez penser que la langue «de facto» pour les jetons sur les langages de programmation couramment utilisés est l'anglais. Ainsi, pour des objectifs purement éducatifs, enseigner sur une langue traduite peut être nocif pour votre (s) étudiant (s). Mais si vous voulez vraiment traduire une tôle de langue informatique, vous devriez penser aux problèmes suivants: p>
Si tout ce que vous voulez, c'est traduire des mots-clés, alors (pendant que vous avez définitivement besoin d'un analyseur approprié, évitez tout autrement tout changement dans les chaînes, les commentaires et c deviennent un cauchemar) La tâche est assez simple. Par exemple, comme vous avez mentionné Python:
per x in range (8 ): se x %2 : y =x mentre y >0 : stampa y , y -=3 stampa
Bien que je n'ai pas de réponse à la question, je pense que c'est une personne intéressante. Cela soulève des problèmes que je pensais: P>
Alors que les pays en développement commencent à mettre en place leur population à des technologies supérieures, certains seront naturellement intéressés à apprendre à programmer. Les langages de programmation anglais que l'anglais seront-elles un obstacle? P> LI>
Disons qu'un langage de programmation a été développé dans une partie non anglaise du monde: les mots-clés ont été écrits dans la langue maternelle de cette zone et ont utilisé la ponctuation native (par exemple, «» au lieu de "", une virgule comme point décimal (123,45), et ainsi de suite). C'est un langage de programmation fantastique, générant beaucoup de buzz. Pensez-vous que cela verrait une adoption généralisée? vous em> l'utiliserait? P> LI>
ul>
La plupart des gens anglophones répondent à "Non" à la première question. Même les personnes non-anglais (mais éduquées) répondent non. Mais ils répondent également "non" à la deuxième question, ce qui semble être une contradiction. P>
Le créateur de Ruby est japonais, mais il l'a fait en anglais
Bon point. Peut-être-t-il réalisé que l'utilisation de mots-clés japonais serait un préjudice à son adoption.
Il y avait un moment où je pensais quelque chose comme ça pour les scripts Bash, mais une idée peut également être mise en œuvre dans d'autres langues aussi: alors nous pouvons ajouter ceci à un script: p> Ceci produira: p>
Vous pourriez trouver Perl's LINGUA :: Romana :: Perligata Intéressant - Il vous permet d'écrire vos programmes PERL en latin. Ce n'est pas tout à fait la même chose que votre idée, car elle restructure essentiellement la sémantique du langage autour des idées latines, plutôt que de traduire les cordes. P>
Il est relativement facile de traduire les mots-clés d'un langage de programmation en une autre langue. Il y a plusieurs Langues de programmation non anglaise , y compris Python chinois , qui remplace les mots-clés anglais avec le chinois Mots-clés. P>
Il serait beaucoup plus difficile de traduire chaque nom de variable individuel de l'anglais dans une autre langue naturelle. Si deux noms de variable anglais différents n'avaient qu'une traduction dans une autre langue, il y aurait un Nom Collision . P>
Si l'objectif est d'apprendre réellement la langue, ce que vous proposez serait contre-productif.
Cela n'a pas vraiment d'importance, j'ai d'abord pensé à l'idée d'enseigner à quelqu'un, mais cela a jeté cela. C'est juste pour s'amuser. Quoi qu'il en soit, je pourrais toujours utiliser la langue «traduite» pour enseigner des concepts de programmation de base.
Je me souviens qu'il y avait des tentatives sérieuses de traduire la langue de base en espagnol, français, etc., iirc quelque chose comme "Para" était la déclaration "for" espagnole, malheureusement, je ne trouve pas de références à cela sur le Web - mais de toute façon, mais il n'a jamais pris.
Est-ce que c'est difficile d'enseigner des mots-clés anglais simples comme
pour code>,
pendant code>,
fonction code>? En outre, ce sont mots-clés b>. S'ils ont déjà besoin d'une journée à Google pour l'aide sur certains sujets de programmation, ils ne seront pas capables de comprendre ce que les autres écrivent.
J'ai vu un programme écrit avec un tel langage de programmation traduit il y a des années. Si je me souviens bien, il était en français en français. Je suis un président natif du français et je peux vous dire que même si une langue "traduite" existait toujours aujourd'hui, je ne l'utiliserais pas. Obtenir de l'aide sur Internet est beaucoup plus difficile si personne ne comprend votre code.
La langue anglaise est-elle complète?
Il existe plusieurs questions existantes concernant les langues de programmation dans les langues humaines non anglaise. Il existe en particulier Stackoverflow.com/questions/202723/... , mais aussi Stackoverflow.com/questions/440052/... et Stackoverflow.com/questions/250824/...