Question

Je suis sur le point de démarrer une distro linux basée sur LFS juste pour un projet passe-temps. Je prévois de faire des tâches très non standard, et la plupart d'entre elle impliquera le changement presque tous les scripts du distro. (Principalement les scripts d'initialisation, mais aussi je vais écrire un simple ensemble de scripts de gestionnaire de package.) Depuis que je vais y aller ce loin la norme, et comme je ne l'ai jamais été fan de langues typé dynamique (perl, python, bash et le reste sont bonnes, mais tout simplement pas mon fort), je me demandais si quelqu'un connaissait un langage interprété qui a effectivement déclaré les variables.

Était-ce utile?

La solution

Regardez dans la commande « typeset » dans votre shell préféré. bash et ksh93 les deux peuvent appliquer des entiers et des chaînes, utilisez les références (variables variables), etc. Avec ksh93, vous pouvez également faire des calculs à virgule flottante et utiliser des objets avec des attributs. typage statique ne pas vraiment vous acheter quelque chose d'utile dans les scripts d'initialisation et similaire. Vous allez surtout être la lecture de fichiers et l'exécution des commandes du système - qui est ce que la coquille est vraiment bon. Prenez un peu de temps avec le livre O'Reilly « apprendre Korn Shell » avant de décider qui sont bêtement conçus tous les autres ... unix;)

Autres conseils

Généralement, les langues sont compilées langues statiquement typés. Je suppose que la raison est que l'analyse des types est statique assez cher et vous devez avoir un regard en profondeur tout le code que vous traitez. Une fois que vous avez fait cela, il se sent comme un gaspillage de ne pas écrire toutes ces informations dans un fichier, afin que vous ne devez pas le faire à nouveau la prochaine fois. Donc, vous vous retrouvez rapidement avec un langage compilé.

Par contre, pour transformer un langage compilé dans un « non-COMPILÉE » on est assez facile. Tu ne stocke pas les résultats de la compilation mais ne importe où les exécuter directement. Un compilateur Je sais que fournit un tel emballage est GHC, la norme Haskell. Vous pouvez ajouter #!/usr/bin/runhaskell à vos fichiers source, puis les exécuter directement. Et puisque vous avez l'intention d'être loin de la norme, Haskell semble comme un ajustement parfait;). Mais attendez un peu de temps de démarrage assez grand pour vos scripts, parce que tout l'analyse « compilation » et l 'optimisation est pas libre.

Haskell n'est pas fait pour les scripts shell et il est un langage fonctionnel, donc si vous ne l'avez jamais vu auparavant, il pourrait prendre un certain temps pour s'y habituer. Mais il a très peu de frais généraux et la force syntactique des langages fonctionnels est l'abstraction, donc je ne vois pas pourquoi vous ne pouvez pas créer une bibliothèque qui se moque de scripts shell. Il y a même une certaine shell Haskell expérimental , mais il ne semble plus être une preuve de concept que d'une véritable solution.

En général, je dirais que les frais généraux de toutes les analyses de type est importante, mais je vous suggère de choisir votre favori statiquement typé langage compilé et recherchez un emballage comme runhaskell pour exécuter des scripts écrits en elle.

google rapide. F3, le script JavaFX, Linden Scripting Language (script pour la deuxième vie), contrairement au commentaire sur la première réponse F # peut être utilisé comme un langage de script http://blogs.msdn.com/chrsmith/archive/2008/09/12/scripting-in-f.aspx

Felix, Tuga, CFGScript, Talc, AngelScript et deviner il y a plus que la recherche rapide.

Douglas

F # fournit une combinaison de « sécurité de type , succinctness, performance, expresivity et les scripts ».

Groovy. Par défaut, il est dynamique, typé canard. Mais prend également en charge le typage statique.

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