Pregunta

Qué hace que un idioma, un lenguaje de secuencias de comandos?He oído que algunas personas dicen que "cuando se interpreta en lugar de compilado".Que haría PHP (por ejemplo) un lenguaje de secuencias de comandos.Es que el único criterio?O hay otros criterios?

Vea también:

¿Fue útil?

Solución

Un lenguaje de programación es un lenguaje que "scripts" otras cosas para hacer las cosas.El principal objetivo no es principalmente la construcción de sus propias aplicaciones tanto como conseguir una aplicación existente para actuar de la manera que usted desea, por ejemplo,JavaScript para navegadores, VBA para MS Office.

Otros consejos

Simple.Cuando yo lo uso, es un moderno lenguaje dinámico, cuando se utiliza, es simplemente un lenguaje de secuencias de comandos!

Tradicionalmente, cuando se habla de la diferencia acerca de la comparación de secuencias de comandos de programación, scripts se interpretan y se compilan programas.Un lenguaje puede ser ejecutado en diferentes formas - interpretado o compilado a (a bytecode o código máquina).Esto no idioma uno u otro.

En los ojos de algunos, la forma de uso un idioma hace que sea un lenguaje de secuencias de comandos (por ejemplo, los desarrolladores de juegos que se desarrollan principalmente en C++ secuencia de comandos los objetos en Lua).De nuevo, las líneas son borrosas - un lenguaje que puede ser utilizado para una programación de una persona y el mismo lenguaje puede ser utilizado para el lenguaje de secuencias de comandos por otro.

Esta es la de la wikipedia artículo acerca de los lenguajes de secuencias de comandos:

Un lenguaje de programación, lenguaje de script o extensión del lenguaje es un lenguaje de programación que permite el control de una o más aplicaciones de software."Secuencias de comandos" son distintos desde el código principal de la aplicación, que generalmente están escritos en un idioma diferente y a menudo son creadas o al menos modificado por el usuario final.Los Scripts se interpretan a menudo a partir de código fuente o de código de bytes, mientras que el de las aplicaciones de control son tradicionalmente se compila a código máquina nativo.Lenguajes de secuencias de comandos son casi siempre incrustado en las aplicaciones de control.

Usted notará que el uso de "generalmente", "a menudo", "tradicionalmente" y "casi siempre" - todos estos decirte que hay no conjunto de los distintos atributos que lo hacen un lenguaje específico de un "lenguaje de secuencias de comandos".

"Una secuencia de comandos es la que le dan los actores.Un programa es lo que se da la audiencia". - Larry Wall

Yo realmente no creo que haya mucha diferencia alguna más.El llamado "scripting" las lenguas son a menudo compilado -- muy rápidamente, y en tiempo de ejecución.Y algunos de la "programación" los idiomas son más compila en tiempo de ejecución (creo que de JIT) y la primera etapa de "compilar" es la comprobación de la sintaxis y la resolución de recursos.

No se quedan atrapadas en ella, realmente no es importante.

Mi definición sería un lenguaje que normalmente se distribuyen de la fuente en vez de como un binario.

Hay muchas respuestas posibles a esta.

Primero:no es realmente una cuestión de la la diferencia entre un lenguaje de secuencias de comandos y un lenguaje de programación, ya que un lenguaje de secuencias de comandos es un lenguaje de programación.Es más una cuestión de qué rasgos hacer algún lenguaje de programación un lenguaje de secuencias de comandos, mientras que otro lenguaje de programación no un lenguaje de secuencias de comandos.

Segundo:es muy difícil decir lo que es un XYZ de la lengua es, si el hecho de que XYZ ser "secuencias de comandos", "programación funcional", "programación orientada a objetos" o lo que sea.La definición de lo "programación funcional" es, es bastante clara, pero nadie sabe lo que es un "lenguaje de programación funcional" es.

Programación funcional o de la programación orientada a objetos la programación de estilos;usted puede escribir en un estilo funcional o un estilo orientado a objetos en casi cualquier idioma.Por ejemplo, el Linux Sistema de Archivos Virtual Switch y el Controlador de Linux Modelo está fuertemente orientado a objetos, a pesar de escrito en C, mientras que una gran cantidad de código Java o C# que aparece en la web es muy procesal y no orientado a objetos en todos los.OTOH, he visto algunos fuertemente funcional código Java.

Por lo tanto, si la programación funcional y programación orientada a objetos son simplemente los estilos que se pueden hacer en cualquier el lenguaje, entonces, ¿cómo se define un "orientado a objetos lenguaje de programación"?Se podría decir que un objeto orientado a objetos lenguaje de programación es un lenguaje que permite la programación orientada a objetos.Pero eso no es mucho de una definición: todos idiomas permitir la programación orientada a objetos, por lo tanto todos los lenguajes están orientados a objetos?Así que, decir, bueno un lenguaje es orientado a objetos, si las fuerzas de a la programación en un estilo orientado a objetos.Pero eso no es mucho de una definición, ya sea: todos idiomas permitir la programación funcional, por lo tanto no el lenguaje es orientado a objetos?

Así que, para mí, he encontrado la siguiente definición:

Un lenguaje es un lenguaje de secuencias de comandos (object-oriented language / lenguaje funcional) si ambos

  • facilita de secuencias de comandos (programación orientada a objetos / programación funcional), es decir,no sólo permite pero hace fácil y natural y contiene características que ayuda con ella, Y
  • anima y guías de hacia scripting (programación orientada a objetos / programación funcional).

Así que, después de cinco párrafos, he llegado a:"un lenguaje de script es un lenguaje de secuencias de comandos".Qué gran definición.NO.

Obviamente, ahora tenemos que mirar la definición de "scripting".

Aquí es donde el tercer problema viene en:mientras que el término "programación funcional" está bien definido y es sólo el término "lenguaje de programación funcional" que es problemático, por desgracia, con las secuencias de comandos, ambos el término de "scripting" y el término "lenguaje de secuencias de comandos" están mal definidos.

Bien, en primer lugar de secuencias de comandos es de programación.Es sólo un tipo especial de programación.IOW:cada script es un programa, pero no cada programa es una secuencia de comandos;el conjunto de todas las secuencias de comandos es un subconjunto del conjunto de todos los programas.

En mi opinión personal, lo que hace de secuencias de comandos de secuencias de comandos y la distingue de otros tipos de programación, es que ...

Secuencias de comandos en gran medida de manipular los objetos que

  • no fueron creados por el script,
  • tienen una vida independiente de la secuencia de comandos y
  • vivir fuera del dominio de la secuencia de comandos.

También, los tipos de datos y algoritmos utilizados son generalmente no se define por el guión, sino por el ambiente exterior.

Pensar en una secuencia de comandos de shell:secuencias de comandos de shell generalmente manipular archivos, directorios y procesos.La mayoría de los archivos, directorios y procesos en el sistema probablemente no eran creados por la que actualmente se ejecuta la secuencia de comandos.Y no se desvanecen cuando la secuencia de comandos de salidas:su vida es completamente independiente de la secuencia de comandos.Y realmente no son parte de la secuencia de comandos, o bien, son una parte del sistema.Usted no inició su escritura al escribir File y Directory las clases, los tipos de datos no son de su preocupación:usted acaba de asumir que ellos están allí, y no sé (ni necesidad a saber) cómo funcionan.Y no implementar sus propios algoritmos, ya sea, por ejemplo,para directory traversal usted sólo tiene que utilizar find en lugar de implementar su propia anchura de búsqueda.

En resumen:una secuencia de comandos se adhiere a un sistema más grande que existe independientemente de la secuencia de comandos, manipula alguna pequeña parte del sistema y, a continuación, sale.

Que sistema más grande puede ser el sistema operativo en caso de un script de shell, el navegador DOM en el caso de un navegador de secuencia de comandos, un juego (por ejemplo,World of Warcraft con Lua o Second Life, con el Linden Scripting Language), una aplicación (por ejemplo,el lenguaje AutoLisp para AutoCAD o Excel/Word/macros de Office), un servidor web, un pack de robots o algo totalmente distinto.

Tenga en cuenta que las secuencias de comandos el aspecto es completamente ortogonal a todos los otros aspectos de los lenguajes de programación:un lenguaje de secuencias de comandos puede ser fuertemente o débilmente tipado, estrictamente libremente o escrito, de forma estática o dinámicamente tipado, nominalmente, estructural o de pato escrito, diablos puede incluso tener un tipo.Puede ser imperativo o funcional, orientado a objetos, procesales o funcionales, estricta o perezoso.Sus implementaciones pueden ser interpretados, compilado o mixto.

Por ejemplo, Mondrian es estrictamente fuertemente de tipo estático perezoso funcional del lenguaje de secuencias de comandos con un compilado de implementación.

Sin embargo, todo esto es discutible, porque la manera en que el término lenguaje de secuencias de comandos es realmente en el mundo real, no tiene nada que ver con ninguna de las de arriba.Es más a menudo se utiliza simplemente como un insulto, y la definición es bastante simple, incluso simplista:

  • real lenguaje de programación:mi lenguaje de programación
  • lenguaje de secuencias de comandos:su lenguaje de programación

Esta parece ser la forma en que el término se utiliza más a menudo.

Es como el porno, sabes que cuando lo vea.La única definición posible de un lenguaje de secuencias de comandos es:

A language which is described as a scripting language.

Un poco circular, ¿no?(Por cierto, no estoy bromeando).

Básicamente, no hay nada que hace del lenguaje un lenguaje de secuencias de comandos, excepto que se llama tal, sobre todo por sus creadores.El gran conjunto de los modernos lenguajes de scripting PHP, Perl, JavaScript, Python, Ruby y Lua.Tcl es la primera gran moderno lenguaje de secuencias de comandos (no fue el primer lenguaje de secuencias de comandos, aunque, me olvide de lo que es, pero me sorprendió saber que precedió a Tcl).

Yo describen las características de los principales lenguajes de secuencias de comandos en mi papel:

 A Practical Solution for Scripting Language Compilers
 Paul Biggar, Edsko de Vries and David Gregg
 SAC '09: ACM Symposium on Applied Computing (2009), (March 2009)

La mayoría son de forma dinámica escrito e interpretado, y la mayoría no tienen una semántica definida fuera de su implementación de referencia.Sin embargo, incluso si su principal aplicación se convierte compilado o JITed, que no cambia la "naturaleza" de la lengua.

Que única pregunta que queda es ¿cómo se puede saber si un nuevo idioma es un lenguaje de secuencias de comandos.Bien, si lo que se llama un lenguaje de secuencias de comandos, que es uno.Así Factor de es un lenguaje de secuencias de comandos (o al menos era, cuando fue escrito), pero, por ejemplo, Java no es.

"Lenguaje de secuencias de comandos" es uno de esos conceptos poco claros, que puede significar muchas cosas.Generalmente se refiere al hecho de que existe un proceso de un paso en el código fuente de la ejecución.

Por ejemplo en Perl que hace: perl my_source.pl

Dado los criterios anteriores de PHP es un lenguaje de secuencias de comandos (aunque usted puede tener una "compilación" proceso por ejemplo cuando se utiliza el Zend Encoder para "proteger" el código fuente).

PS.A menudo (pero no siempre) lenguajes de secuencias de comandos son interpretados.También a menudo (pero de nuevo, no siempre) lenguajes de secuencias de comandos son dinámicamente tipado.

Todos los lenguajes son lenguajes de programación.Así que, estrictamente hablando, no hay ninguna diferencia.

El término no se refiere a ninguna de las propiedades fundamentales del lenguaje, se refiere a la típica uso de la lengua.Si el uso típico es escribir programas de corta duración, principalmente para hacer llamadas a código pre-existente, y algunos simples de procesamiento de los resultados, (es decir, si el uso típico es escribir secuencias de comandos) es un lenguaje de secuencias de comandos.

Creo que el Señor Roberto Ierusalimschy tiene una muy buena respuesta o la pregunta en Programación en Lua':

Sin embargo, la característica distintiva de la lenguajes interpretados no es que no se compilan, pero que cualquier compilador es parte de la lengua tiempo de ejecución y que, por lo tanto, es es posible (y fácil) para ejecutar el código genera sobre la marcha

Una división es

  • scripting = interpretado dinámicamente
  • normal = compilado

Dinámicamente lenguaje interpretado se interpreta en tiempo de ejecución, mientras que un lenguaje compilado es compilado antes de la ejecución.

Debo añadir que como Jörg ha señalado, que la interpreta / compilado distinción no es una característica del lenguaje, sino de la ejecución de motor.

Usted también podría estar interesado en esta explicación de Tipo de sistema de, que es relativa y se centra más en el idioma aspecto, en lugar de el motor de ejecución.La mayoría de los lenguajes de secuencias de comandos son dinámicamente tipado, mientras que los "normales" los idiomas son en su mayoría de tipo estático.

En general, la división de estáticamente vs dinámicamente tipado de idiomas es mejor definida y tiene más implicaciones sobre el uso de la lengua.

Un lenguaje de secuencias de comandos es normalmente:

  1. Dinámicamente tipado
  2. Interpreta, con muy poco énfasis en el rendimiento, pero bueno portabilidad
  3. Requiere mucho menos código repetitivo, que conduce a la muy rápida de prototipos
  4. Es utilizado para pequeñas tareas, adecuado para escribir un solo archivo para ejecutar algunos útiles "secuencia de comandos".

Mientras que un no-lenguaje de secuencias de comandos es generalmente:1.De tipo estático 2.Compilado, con énfasis en el rendimiento 3.Requiere más código repetitivo, que conduce a un menor de prototipos, pero más la legibilidad y mantenimiento a largo plazo 4.Se utiliza para los proyectos grandes, se adapta a muchos patrones de diseño

Pero es más de un histórico diferencia hoy en día, en mi opinión.Javascript y Perl fueron escritos con pequeñas secuencias de comandos simples en mente, mientras que C++ fue escrito con aplicaciones complejas en mente;pero ambos pueden ser utilizados de cualquier manera.Y muchos de los lenguajes de programación modernos y viejos por igual, el desenfoque de la línea de todos modos (y era difusa en el primer lugar!).

Lo triste es que he conocido a un par de desarrolladores que odia a lo que ellos percibían como "lenguajes de secuencias de comandos", pensando en ellos, más sencillo y no tan potente.Mi opinión es que el viejo cliché de uso de la herramienta correcta para el trabajo.

Lenguajes de secuencias de comandos fueron originalmente pensado como un mecanismos de control para aplicaciones escritas en un duro lenguaje de programación.Los programas compilados no puede ser modificado en tiempo de ejecución, de modo de secuencias de comandos le dio a la gente la flexibilidad.

Más notablemente, la secuencia de comandos de shell fue la automatización de los procesos en el núcleo del sistema operativo (tradicionalmente, AppleScript en los Mac);un papel que más y más pasó en Perl manos, y luego fuera de él en Python últimamente.He visto Esquema (particularmente en su Astucia aplicación) se utiliza para declarar raytracing escenas;y recientemente, Lua es muy popular como el lenguaje de programación de secuencia de comandos de los juegos, hasta el punto de que la única codificada cosa que en muchos de los nuevos juegos de los gráficos/motor de física, mientras que toda la lógica del juego es codificada en Lua.De la misma manera, JavaScript se pensaba que la secuencia de comandos en el comportamiento de un navegador web.

Los idiomas emancipado;nadie piensa ahora sobre el sistema operativo como una aplicación (o piensa mucho en todos), y muchos antes de lenguajes de scripting comenzó a ser utilizado para escribir completo de sus propias aplicaciones.El nombre en sí, dejaron de tener sentido, y se extendió a muchos lenguajes interpretados en uso hoy en día, independientemente de si están diseñados para ser interpretado desde dentro de otro sistema o no.

Sin embargo, "lenguajes de secuencias de comandos" definitivamente no es sinónimo de "lenguajes interpretados" - por ejemplo, BASIC fue interpretado por la mayor parte de su vida (es decir,antes de que perdió su acronimicity y se convirtió en Visual Basic), pero nadie realmente piensa de él como de secuencias de comandos.

ACTUALIZACIÓN: Material de lectura como de costumbre disponible en la Wikipedia.

Primer punto, un lenguaje de programación no es un "lenguaje de secuencias de comandos" o algo más.Puede ser un "lenguaje de secuencias de comandos" y algo más.

Segundo punto, el ejecutor de la lengua le dirá si se trata de un lenguaje de secuencias de comandos.

Tu pregunta debería decir "En qué implementaciones sería un lenguaje de programación se considera un lenguaje de scripting?", no "¿Cuál es la diferencia entre un lenguaje de secuencias de comandos y un lenguaje de programación?".No hay entre ellos.

Sin embargo, me considero un idioma, un lenguaje de secuencias de comandos si se utiliza para proporcionar algún tipo de medio de la vajilla.Por ejemplo, yo consideraría la mayoría de las implementaciones de JavaScript, un lenguaje de secuencias de comandos.Si JavaScript se ejecuta en el sistema operativo, no el navegador, entonces no sería un lenguaje de secuencias de comandos.Si el PHP se ejecuta en el interior de Apache, es un lenguaje de secuencias de comandos.Si se ejecuta desde la línea de comandos, no lo es.

Veo un lenguaje de scripting como algo que no requiere de un acto hostil de un peso pesado sentimiento 'compilar' paso.La característica principal de una programadores punto de vista es:editar el código y ejecutarlo de inmediato.

Por lo tanto yo consideraría JavaScript y PHP como lenguajes de secuencias de comandos, mientras que ActionScript 3/Flex no es realmente.

Mi amigo y yo sólo tenía este argumento:¿Cuál es la diferencia entre un lenguaje de programación y un lenguaje de scripting.

Un popular argumento es que los lenguajes de programación compilados y lenguajes de secuencias de comandos se interpretan - sin Embargo creo que este argumento es completamente falsa...¿por qué?

  1. Chakra y V8 (de Microsoft y Google motores JavaScript) compilar el código antes de la ejecución
  2. QBasic es interpretado - hace Qbasic un "scripting" idioma?

Sobre esa base, este es mi argumento para la diferencia entre un lenguaje de programación y un lenguaje de secuencias de comandos:

Un lenguaje de programación que se ejecuta en el nivel de la máquina y tiene acceso a la máquina en sí (de memoria, gráficos, sonido, etc).

Un lenguaje de secuencias de comandos es la arena en caja y sólo tiene acceso a los objetos expuestos a la arena.No tiene acceso directo a la base de la máquina.

En Mi Opinión, yo diría que de forma dinámica lenguajes interpretados como PHP, Ruby, etc...aún son "normales" de idiomas.Yo diría que los ejemplos de "scripting" los idiomas son cosas como bash (o ksh o tcsh o lo que sea) o sqlplus.Estos lenguajes se utilizan a menudo para encadenar los programas existentes en un sistema en una serie coherente y comandos relacionados, tales como:

  1. copia A.txt a /tmp/trabajo/
  2. ejecutar todas las noches proceso de limpieza en la base de datos del servidor
  3. registro de los resultados y los envía a la sysdamin

Así que yo diría que la diferencia (para mí, de todos modos) es más en la forma de uso el lenguaje.Lenguajes como PHP, Perl, Ruby podría ser utilizado como "lenguajes de secuencias de comandos", pero suele utilizarse como "normal idiomas" (a excepción de Perl que parece ir en ambos sentidos.

Voy a seguir adelante y migrar mi respuesta de la pregunta duplicada


El nombre de "lenguaje de secuencias de comandos" se aplica a un rol muy específico:el idioma que desea escribir los comandos para enviar a los ya existentes de la aplicación de software.(como un televisor tradicional o de la película "script")

Por ejemplo, una vez, HTML de las páginas web eran aburridos.Siempre estaban estáticos.Entonces, un día, Netscape pensé, "Hey, ¿y si nos vamos al explorador de leer y actuar en pequeños comandos en la página?" Y como que, Javascript, que se formó.

Un simple comando de javascript es el alert() comando, el cual indica a los/comandos del navegador (un software de aplicación) que es la lectura de la página web para mostrar un mensaje de alerta.

Ahora, ¿ alert() relacionados, en cualquier forma, a la de C++ o cualquier código de idioma que el navegador de realidad utiliza para mostrar la alerta?Por supuesto que no.Alguien que escribe "alert()" en un .página html no tiene entendimiento de cómo el navegador muestra la alerta.Él acaba de escribir un comando que el navegador interpretará.

Vamos a ver el código javascript sencillo

<script>
var x = 4
alert(x)
</script>

Estos se indica que se envía al navegador, para que el navegador interprete en sí mismo.El lenguaje de programación que el navegador pasa a través de establecer, de hecho, una variable a 4, y puesto que en una alerta...es completamente ajena a javascript.

Es lo que llamamos la última serie de comandos de un "script" (que es la razón por la que está encerrado en <script> tags).Sólo por la definición de "script", en el sentido tradicional: Una serie de instrucciones y comandos que se envían a los actores.Todo el mundo sabe que un guión (guión de una película), por ejemplo, es una secuencia de comandos.

El guión (script) es no los actores, o la cámara, o los efectos especiales.El guión sólo les dice qué hacer.

Ahora, ¿qué es un script idioma, exactamente?

Hay una gran cantidad de lenguajes de programación que son como diferentes herramientas en una caja de herramientas;algunos idiomas fueron diseñados específicamente para ser utilizado como secuencias de comandos.

Javasript es un claro ejemplo;hay muy pocas aplicaciones de Javascript que no caen dentro de la esfera de secuencias de comandos.

ActionScript (el idioma de animaciones en Flash) y sus derivados son lenguajes de secuencias de comandos, en la que simplemente emitir comandos para el reproductor de Flash/intérprete.Por supuesto, no son abstracciones tales como la programación Orientada a Objetos, pero todo lo que es simplemente un medio para el final:enviar comandos para el reproductor de flash.

Python y Ruby son comúnmente utilizados como lenguajes de secuencias de comandos.Por ejemplo, una vez trabajé para una empresa que utiliza Ruby para secuencias de comandos para enviar a un navegador que estaban a lo largo de las líneas de, "vaya a este sitio, haga clic en este enlace..." a hacer básicos de las pruebas automatizadas.Yo estaba no un "Desarrollador de Software" por cualquier medio, en ese trabajo.Acabo de escribir secuencias de comandos que envía comandos a la computadora para enviar comandos para el navegador.

Debido a su naturaleza, lenguajes de secuencias de comandos son rara vez "compilado" ... es decir, traducido a código de máquina, y leer directamente por la computadora.

Incluso las aplicaciones GUI creado a partir de Python y Ruby son secuencias de comandos que se envían a una API escrita en C++ o C.Se dice que el C aplicación qué hacer.

Hay una línea de vaguedad, por supuesto.¿Por qué no puede usted decir que el Lenguaje de Máquina/C son lenguajes de secuencias de comandos, porque son secuencias de comandos que utiliza el equipo para la interfaz con el básico de la placa madre/tarjetas gráficas/fichas?

Hay algunas líneas que podemos extraer de aclarar:

  1. Cuando usted puede escribir un lenguaje de secuencias de comandos y ejecutar sin necesidad de "compilar", es más de un directo de secuencia de comandos de clase de la cosa.Por ejemplo, usted no necesita hacer nada con un guión con el fin de decirle a los actores qué hacer con él.Ya está allí, usado, tal como es.Por esta razón, vamos a excluir de los lenguajes compilados de ser llamados lenguajes de secuencias de comandos, aunque pueden ser utilizados para la creación de scripts en algunas ocasiones.

  2. Lenguaje de secuencias de comandos implica comandos enviados a un complejo software de aplicación;esa es la razón por la que escribimos los guiones en el primer lugar, así que usted no necesita saber las complejidades de cómo funciona el software para enviar comandos a la misma.Así, lenguajes de secuencias de comandos tienden a ser los idiomas que enviar (relativamente) comandos simples a complejas aplicaciones de software...en este caso, el lenguaje de máquina y el código de la asamblea no la cortan.

Sugiero que lenguajes de secuencias de comandos ha sido un término que muchas personas se están alejando de.Yo diría que sobre todo se reduce a los lenguajes compilados y lenguajes dinámicos de hoy en día.

Me refiero a que realmente no se puede decir algo como Python o Ruby son "secuencias de comandos" idiomas en este día y edad (incluso tiene cosas como IronPython y JIT-su favorito-idioma, la diferencia ha sido borrosa incluso más).

Para ser honesto, personalmente no me siento PHP es un lenguaje de secuencias de comandos más.Yo no esperaría a la gente para categorizar PHP de manera diferente de decir de Java en su curriculum vitae.

Lenguajes de secuencias de comandos tienden a ejecutar dentro de un motor de secuencias de comandos, que es parte de una aplicación más grande.Por ejemplo, JavaScript se ejecuta dentro de sus navegadores motor de secuencias de comandos.

Un lenguaje de programación es un lenguaje que se interpreta cada vez que se ejecute el script, lo que implica tener un intérprete y la mayoría son muy legibles para el ser humano, para ser útil, un lenguaje de scripting es fácil de aprender y usar.

Cada compilable el lenguaje puede ser hecho en un lenguaje de secuencia de comandos y viceversa, todo depende de la implementación de un intérprete o compilador, como un ejemplo de C++ tiene un intérprete de lo que puede ser llamado un lenguaje de secuencia de comandos si se utiliza de forma (no es muy práctico en general como C++ es una lengua muy compleja), uno de los más útiles lenguajes de secuencia de comandos en la actualidad es Python...

Para responder a su pregunta, la definición está en el uso de un intérprete para ejecutar rápida y fácil de secuencias de comandos de los programas, para abordar tareas simples o prototipo de aplicaciones el uso más eficaz que uno puede hacer de lenguajes de script es incluir la posibilidad de que cada uso para extender una aplicación compilada.

Prefiero que la gente no utiliza el término "lenguaje de secuencias de comandos" como creo que se disminuye el esfuerzo.Tome un lenguaje como Perl, a menudo llamado "lenguaje de secuencias de comandos".

  • Perl es un lenguaje de programación!
  • Perl es compilado como Java y C++.Es sólo compilado mucho más rápido!
  • Perl tiene objetos y espacios de nombres y cierres.
  • Perl ha IDEs y depuradores y perfiladores.
  • Perl tiene la capacitación y el apoyo y la comunidad.
  • Perl no es sólo web.Perl no es sólo sysadmin.Perl no es sólo el de la cinta del conducto de la Internet.

¿Por qué necesitamos distinguir entre un lenguaje como Java es compilado y Ruby que no lo es?¿Cuál es el valor en el etiquetado?

Para más información sobre esto, consulte http://xoa.petdance.com/Stop_saying_script.

Una diferencia importante es tipado fuerte (frente a la débil escribir). Lenguajes de secuencias de comandos son a menudo de tipo débil, lo que es posible escribir pequeños programas más rápidamente.Para los grandes programas, esto es una desventaja, ya que inhibe el compilador/intérprete para encontrar ciertos errores de forma autónoma, lo que es muy difícil para refactorizar el código.

Lenguajes son lenguajes de programación, donde los programas son generalmente entregados a los usuarios finales en una lectura textual y donde hay un programa que puede al parecer la ejecución de ese programa.(El programa bien puede compilar el script interno;que no es relevante aquí porque no es visible para el usuario).

Es relativamente común que los lenguajes de scripting para ser capaz de soportar una sesión interactiva donde los usuarios pueden simplemente escriba en su programa y tiene que ejecutar de inmediato.Esto es debido a que este es un trivial de extensión del requisito esencial desde el primer párrafo;el principal requisito adicional es la adición de un mecanismo de averiguar cuando un escrito en la declaración es completa, de modo que puede ser enviado al motor de ejecución.

Para algo un poco diferente sobre la cuestión.Un lenguaje de programación es un lenguaje de programación sino un lenguaje de programación no es necesariamente un lenguaje de secuencias de comandos.Un lenguaje de secuencias de comandos se utiliza para el control de secuencia de comandos o de un sistema.Ese sistema podría ser un sistema operativo donde el lenguaje de secuencias de comandos sería bash.El sistema podría ser un servidor web con PHP el lenguaje de secuencias de comandos.Lenguajes de secuencias de comandos están diseñados para llenar un nicho específico;ellos son los lenguajes de dominio específico.Sistemas interactivos han interpretado lenguajes de secuencias de comandos dando lugar a la noción de que los lenguajes de secuencias de comandos son interpretados;sin embargo, esto es una consecuencia del sistema, y no el lenguaje de programación en sí.

Un lenguaje de programación es un lenguaje que se configura o se extiende un programa ya existente.
Un Lenguaje de programación es un lenguaje de Programación.

La definición de "lenguaje de secuencias de comandos" es bastante difuso.Me gustaría base en las siguientes consideraciones:

  1. Lenguajes de secuencias de comandos no tienen por lo general visibles al usuario compilar pasos.Normalmente, el usuario puede ejecutar programas en un solo comando.

  2. Programas en lenguajes de secuencias de comandos son normalmente pasa alrededor en forma de código fuente.

  3. Lenguajes de secuencias de comandos normalmente tienen tiempos de ejecución que están presentes en un gran número de sistemas, y los tiempos de ejecución puede ser instalado fácilmente en la mayoría de los sistemas.

  4. Lenguajes de secuencias de comandos tienden a ser multiplataforma y no específicos de la máquina.

  5. Lenguajes de secuencias de comandos hacen que sea fácil para llamar a otros programas y la interfaz con el sistema operativo.

  6. Lenguajes de secuencias de comandos son generalmente fácilmente integrable en sistemas más grandes por escrito en el más convencional de los lenguajes de programación.

  7. Lenguajes de secuencias de comandos están normalmente diseñados para facilitar la programación, y con mucho menos respecto de la velocidad de ejecución.(Si desea una rápida ejecución, el consejo habitual es el código el que consume tiempo las piezas en algo como la C, e incrustar el lenguaje en C o llame a C bits de la lengua).

Algunas de las características que he mencionado anteriormente son verdaderos de implementaciones, en cuyo caso me estoy refiriendo a la más común de las implementaciones.No se han C intérpretes, con (AFAIK) no obvia el paso de compilación, pero eso no es cierto en la mayoría de las implementaciones.Ciertamente se podría compilar un programa Perl a código nativo, pero eso no es lo que se usa normalmente.Algunas otras características son de naturaleza social.Algunos de los criterios anteriores se superponen un poco.Como ya he dicho, la definición es borrosa.

Yo diría que el lenguaje de secuencias de comandos es una gran manipulación de entidades no define.Por ejemplo, JavaScript manipula objetos DOM del navegador, PHP funciona enorme biblioteca de C-basado en funciones, y así sucesivamente.Por supuesto, no una definición precisa, más una manera de pensar en si.

Si no/no se ejecutan en la CPU, es una secuencia de comandos para mí.Si un intérprete necesita para ejecutarse en la CPU a continuación el programa, es una secuencia de comandos y lenguaje de scripting.

No hay razón para hacerlo más complicado de lo que esta?

Por supuesto, en la mayoría (99%) de los casos, es claro que si un lenguaje es un lenguaje de secuencias de comandos.Pero tenga en cuenta que una máquina virtual se puede emular el conjunto de instrucciones x86, por ejemplo.No esta hacen que el x86 de código de bytes de un lenguaje de secuencias de comandos cuando se ejecuta en una máquina virtual?¿Qué pasa si alguien iba a escribir un compilador que se convertiría código perl en un ejecutable nativo?En este caso, no sabría qué llamar a la lengua en sí misma nunca más.Sería la salida que importa, no el idioma.

Entonces de nuevo, no soy consciente de nada de esto se ha hecho, así que por ahora todavía estoy cómodo llamando lenguajes interpretados lenguajes de secuencias de comandos.

Un secuencia de comandos es un relativamente pequeño programa.Un sistema de es un relativamente grandes programa, o un colección de relativamente grandes programas.

Algunos de los lenguajes de programación están diseñados con características que el diseñador del lenguaje y de la comunidad de programación considerar para ser útil al escribir relativamente pequeños programas.Estos lenguajes de programación son conocidos como lenguajes de secuencias de comandos, por ejemplo,PHP.

Del mismo modo, otros lenguajes de programación están diseñados con características que el diseñador del lenguaje y de la comunidad de programación considerar para ser útil al escribir relativamente grandes programas.Estos lenguajes de programación son conocidos como sistemas de idiomas, por ejemplo,Java.

Ahora, pequeños y grandes, los programas pueden ser escritos en cualquier lenguaje.Un pequeño programa en Java es una secuencia de comandos.Por ejemplo, una aplicación "Hola Mundo" programa es un script, no un sistema.Un gran programa o conjunto de programas que, escrito en PHP, que es un sistema.Por ejemplo, Facebook, escrito en PHP, es un sistema, no una secuencia de comandos.

Considerando una sola característica del lenguaje como una "prueba de fuego" para decidir si el lenguaje es el más adecuado para secuencias de comandos o la programación de sistemas es cuestionable.Por ejemplo, secuencias de comandos puede ser compilado a código de bytes o código máquina, o que puede ser ejecutado de forma directa árbol de sintaxis abstracta (AST) interpretación.

Así, un lenguaje es un lenguaje de secuencias de comandos si se utiliza normalmente para escribir secuencias de comandos.Un lenguaje de secuencias de comandos pueden ser usados para escribir sistemas, pero estas aplicaciones son susceptibles de ser consideradas dudosas.

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