2009-10-15 5 views
2

Je suis en train de jouer avec l'idée d'écrire un interpréteur en ligne de commande et je soupçonne qu'un langage fonctionnel tel que Clojure est bien adapté à cette tâche.Implémentation d'un interpréteur de ligne de commande avec un langage fonctionnel

Je suis cependant 5 ans d'un diplôme de CS et ma seule expérience avec les langages fonctionnels a été une expérience déchirante avec Haskell dans un cours de langues de troisième année.

Alors, est-ce qu'un langage tel que Clojure est idéal pour cette tâche? Sinon, qu'est-ce qu'un langage idéal?

exigences separement:

  • doit fonctionner sur une machine virtuelle Java
  • Fournir un shell interactif où les utilisateurs d'entrer des commandes avec une CLI comme la syntaxe
  • utilisateur commandes finissent en fin de compte faire des appels à un service à distance à l'aide SAVON.

Merci!

+0

Ainsi, vos exigences (de la liste de vos besoins et le titre) sont "langage de programmation fonctionnel qui s'exécute sur la JVM et fait la compilation sur un serveur qui est connecté via SOAP "?! – scravy

Répondre

3

Vous pouvez le faire avec Clojure et Scala, et avec Java si vous ajoutez BeanShell. Vous pouvez regarder les installations REPL qu'ils ont déjà. J'imagine que cela convient uniquement aux utilisateurs sophistiqués. Mais vraiment, il est difficile d'imaginer un langage qui ne ferait pas un bon travail sur une CLI. En décidant entre plates-formes, plus il s'agit d'un système moderne, plus il aura un langage de script pratique.

Je sais certainement ce que je voudrais utiliser compte tenu de vos besoins: JRuby. (Il a aussi une REPL prête à l'emploi.)

+0

Merci pour les pistes. Je vais certainement y regarder. Vous faites un très bon point sur les utilisateurs sophistiqués. C'est quelque chose qui serait principalement utilisé par les administrateurs système qui auraient du mal à apprendre la programmation fonctionnelle. Je veux me familiariser avec un langage comme Clojure, donc je trouverai un meilleur clou pour ce marteau. Merci. – ckovacs

+0

Donc, si vous installez ceux-ci, vous obtenez le Scala REPL en exécutant simplement 'scala', le JRuby REPL en lançant' jirb', le REPL Clojure en exécutant 'bin/repl.sh' et je n'ai aucune idée de comment exécuter BeanShell, mais ce ne serait pas drôle si c'était «$ bs». :-) – DigitalRoss

+0

+1 pour jruby - c'est très bien adapté pour ce genre de choses –

0

Je ne pense pas qu'un CLI a des exigences spécifiques linguistiques; vous pourriez probablement le faire aussi bien en Java ou Scala. En fin de compte, je pense que le choix de la langue est en baisse à:

  1. Lesquels vous êtes le plus à l'aise de travailler avec.
  2. Les bibliothèques qui supportent adéquatement ce que vous voulez faire (c'est-à-dire les services Web).
Questions connexes