Pregunta

Estoy a punto de iniciar una distribución de Linux basada en LFS solo para un proyecto de hobby.Planeo realizar algunas tareas no estándar y la mayoría implicará cambiar casi todos los scripts de la distribución.(principalmente scripts de inicio, pero también escribiré un conjunto simple de scripts de administrador de paquetes). Como me voy a alejar tanto de la norma y como nunca he sido fanático de los lenguajes de tipo dinámico (perl, python, bash y el resto son buenos, pero no son mi fuerte), me preguntaba si alguien conocía un lenguaje interpretado que realmente haya declarado variables.

¿Fue útil?

Solución

Mira a la orden de "componer" en la shell favorito. bash y ksh93 ambos pueden cumplir enteros y cadenas, las referencias de uso de variables (variables), etc. Con ksh93, también se puede hacer matemáticas de punto flotante y utilizar objetos con atributos. tipos estáticos en realidad no comprar nada útil en los scripts de inicio y similares. Estás principalmente va a ser la lectura de archivos y ejecutar comandos del sistema - que es lo que la cáscara es muy bueno en. Tómese su tiempo con el O'Reilly "aprender el shell Korn" libro antes de decidir que todos esos otros Unix están diseñados estúpidamente ...;)

Otros consejos

Normalmente las lenguas tipos estáticos se compilan idiomas. Supongo que la razón es, que el análisis estático de tipos es bastante caro y hay que tener una mirada en profundidad a todo el código que está procesando. Después de haber hecho que se siente como un desperdicio no escribir toda esa información en un archivo, de modo que usted no tiene que hacerlo de nuevo la próxima vez. Así que terminan rápidamente con un lenguaje compilado.

Por otro lado, a su vez un lenguaje compilado en un "no-compilado" uno es bastante fácil. Usted simplemente no almacena los resultados de la compilación en cualquier lugar, pero ejecutarlas directamente. Un compilador Sé que proporciona una envoltura de este tipo es GHC, el estándar Haskell . Puede añadir #!/usr/bin/runhaskell a los archivos de origen y luego ejecutar directamente. Y ya que usted está planeando estar lejos de la norma, Haskell parece ser un ajuste perfecto;). Pero esperar un poco de tiempo de inicio más grande para las secuencias de comandos, ya que todo el análisis de "tiempo de compilación" y la optimización no es libre.

Haskell no está hecho para secuencias de comandos shell y es un lenguaje funcional, por lo que si usted nunca ha visto antes, que podría tomar algún tiempo para acostumbrarse. Pero tiene muy poca sobrecarga sintáctica y la fuerza de los lenguajes funcionales es la abstracción, así que no veo por qué no se podía crear una biblioteca que se burla de shell scripting. Hay incluso algunos Haskell experimental cáscara , pero sí parece ser más una prueba de concepto que una solución real.

En general, diría que la sobrecarga de todos los análisis tipo es significativa, pero yo sugeriría que elija su favorito de tipo estático lenguaje compilado y buscar un envoltorio como runhaskell para ejecutar scripts escritos en ella.

Google rápido. F3, JavaFX script, Linden Scripting Language (secuencias de comandos para la segunda vida), a diferencia de la observación sobre la primera respuesta F # puede ser utilizado como un lenguaje de script http://blogs.msdn.com/chrsmith/archive/2008/09/12/scripting-in-f.aspx

Felix, Tuga, CFGScript, talco, AngelScript, y adivinar hay más de esa búsqueda rápida.

Douglas

F # proporciona una combinación de "seguridad de tipos , la concisión, el rendimiento, la expresividad y secuencias de comandos".

Groovy. Por defecto es dinámico, mecanografiado de pato. Pero también es compatible con tipos estáticos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top