Los lenguajes de secuencias de comandos son lenguajes de programación que las personas consideran lenguajes de secuencias de comandos. Es una categoría artificial sin límites claros, y donde cada regla propuesta tiene una excepción.
Las reglas clásicas que se usan para decir que un lenguaje es un lenguaje de secuencias de comandos se caracterizan, no se definen. Si un lenguaje satisface una serie de reglas, existe una buena probabilidad de que se considere un lenguaje de secuencias de comandos. Si no, hay una buena posibilidad de que no lo sea. Las reglas generalmente incluyen:
- Está destinado a pequeños "scripts", no a grandes programas.
- Está incrustado en otra aplicación, utilizada para pequeñas modificaciones de esa aplicación.
- Se interpreta en lugar de compilarse.
- Está destinado a programadores novatos, no profesionales.
- Su nombre termina en "script".
Yo podria agregar:
- Un lenguaje de script es un lenguaje de programación donde casi todos los errores se detectan en tiempo de ejecución.
Es decir, podría ser un lenguaje interpretado.
Si un lenguaje de programación tiene un comportamiento significativo de "tiempo de compilación" en el que analiza el código e informa de errores sin ejecutar el programa, como errores de tipo de C, Java o C #, lo más probable es que no se considere un lenguaje de secuencias de comandos.
Tradicionalmente, muchos lenguajes de scripting se han interpretado directamente desde la fuente, pero los más populares tienen implementaciones más eficaces que precompilan el código, como los .pyc
archivos de Python , u optimizan los motores JavaScript que se compilan en código nativo antes de ejecutarse.
Si el lenguaje puede ser implementado por un intérprete, que solo mira el código fuente mientras lo está ejecutando, entonces es probable que se considere un lenguaje de script. Si realmente se implementa de esa manera no es importante, pero si puede serlo, tampoco puede requerir una verificación exhaustiva del código en tiempo de compilación.
Si el lenguaje proporciona una semántica estática útil que ayuda a detectar errores (que no sean errores de sintaxis) sin necesidad de ejecutar el programa, probablemente no sea un lenguaje de secuencias de comandos.
Siempre hay excepciones, generalmente basadas en la tradición en torno a un idioma más que cualquier regla real. BASIC generalmente no se considera un "lenguaje de secuencias de comandos", a pesar de que satisface prácticamente todos los criterios que alguien ha utilizado para ser uno. Es por eso que Visual Basic Script tuvo que agregar el "script" al nombre, para distinguirse de Visual Basic, un lenguaje de programación "real" destinado a programas más grandes.
BASIC también es un lenguaje de programación antiguo, como COBOL y Fortran, antes de que la gente esperara el análisis estático de un lenguaje, y básicamente antes de que los "lenguajes de secuencias de comandos" fueran algo.