Pergunta

Estou prestes a iniciar uma distro linux LFS baseada apenas para um projeto de hobby. Estou pensando em fazer algumas tarefas muito fora do padrão, e mais do que envolverá a mudança quase todos os scripts na distro. (Principalmente scripts de inicialização, mas também vou escrever um simples conjunto de scripts de gerenciador de pacotes.) Desde que eu vou estar indo tão longe fora da norma, e desde que eu nunca fui um fã de línguas digitado-dinâmicos (perl, python, bash e o resto são bons, mas não apenas o meu forte), eu estava me perguntando se alguém sabia de uma linguagem interpretada que realmente declarou variáveis.

Foi útil?

Solução

olhar para o comando "typeset" em seu shell favorito. bash e ksh93 ambos podem impor inteiros e strings, referências de uso (variáveis ??variáveis), etc. Com ksh93, você também pode fazer objetos de matemática e uso de ponto flutuante com atributos. tipagem estática realmente não comprar qualquer coisa útil em scripts de inicialização e similar. Você está indo principalmente para ser a leitura de arquivos e executar comandos do sistema - que é o que o shell é realmente bom. Tire algum tempo com a O'Reilly "aprender a Korn Shell" livro antes de decidir que todos os outros Unixes são estupidamente projetado ...;)

Outras dicas

línguas Normalmente as linguagens de tipagem estática são compilados. Eu acho que a razão é, que a análise estática de tipos é bastante caro e você tem que ter um olhar em profundidade de todo o código que você está processamento. Depois de ter feito que parece um desperdício para não escrever toda essa informação em um arquivo, de modo que você não tem que fazê-lo novamente na próxima vez. Então você acaba rapidamente com uma linguagem compilada.

Por outro lado, para virar uma linguagem compilada em um "não-compilado" é bastante fácil. Você simplesmente não armazenar os resultados do lugar compilação, mas executá-los diretamente. Um compilador Eu sei que prevê tal um invólucro é GHC, o padrão Haskell compilador. Você pode adicionar #!/usr/bin/runhaskell a seus arquivos de origem e, em seguida, executá-los diretamente. E uma vez que você está planejando para ser longe da norma, Haskell parece ser um ajuste perfeito;). Mas esperar algum tempo de inicialização bastante grande para seus scripts, porque toda a análise "tempo de compilação" e otimização não é livre.

Haskell não é feita para shell script e é uma linguagem funcional, por isso, se você nunca viu isso antes, isso pode levar algum tempo para se acostumar. Mas tem muito pouca sobrecarga sintática e a força de linguagens funcionais é abstração, então eu não vejo por que você não poderia criar uma biblioteca que faz Fun Shell scripting. Há mesmo alguns experimental Haskell shell , mas ele parece ser mais uma prova de conceito do que uma solução real.

Geralmente eu diria que a sobrecarga de toda a análise tipo é significativo, mas eu sugiro que você escolher a sua linguagem compilada tipagem estática favorito e olhar para um wrapper como runhaskell para executar scripts escritos nele.

google rápido. F3, JavaFX Script, Linden Scripting Language (scripting para segunda vida), ao contrário do comentário sobre a primeira resposta F # pode ser usado como uma linguagem de script http://blogs.msdn.com/chrsmith/archive/2008/09/12/scripting-in-f.aspx

Felix, Tuga, CFGScript, Talco, AngelScript, e supondo que não há mais do que isso busca rápida.

Douglas

F # fornece uma combinação de "segurança de tipo , concisão, desempenho, expressividade e scripting".

Groovy. Por padrão, ele é dinâmico, digitou-pato. Mas também suporta tipagem estática.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top