Pergunta

O que torna uma linguagem de uma linguagem de script? Já ouvi algumas pessoas dizem "quando fica interpretada em vez de compilada". Isso faria PHP (por exemplo) uma linguagem de script. É que o único critério? Ou existem outros critérios?

Veja também:

Foi útil?

Solução

A linguagem de script é uma linguagem que "scripts" outras coisas para fazer coisas. O foco principal não está construindo principalmente seus próprios aplicativos tanto como a obtenção de um aplicativo existente para agir da maneira que quiser, por exemplo, JavaScript para navegadores, VBA para MS Office.

Outras dicas

Simples. Quando eu usá-lo, é uma linguagem dinâmica moderna, quando você usá-lo, é apenas uma linguagem de script!

Tradicionalmente, quando se fala sobre a diferença sobre os scripts contra programação, scripts são interpretados e programas são compilados. A linguagem pode ser executada de diferentes maneiras - interpretado ou compilado (para bytecode ou código de máquina). Isso não faz um idioma um ou outro.

Em alguns olhos, a maneira como você uso uma linguagem torna uma linguagem de script (por exemplo, os desenvolvedores de jogos que desenvolvem principalmente em C ++ irá scripts os objetos na Lua) . Mais uma vez, as linhas são borradas - uma língua pode ser usado para uma programação por uma pessoa e a mesma língua pode ser usado para linguagem de script por outro

.

Esta é a partir do wikipedia artigo sobre linguagens de script:

A linguagem de scripting, linguagem de script ou linguagem de extensão é uma linguagem de programação que permite o controle de uma ou mais aplicações de software. "scripts" são distintas do núcleo de código da aplicação, uma vez que geralmente são escritas em uma linguagem diferente e são muitas vezes criado ou modificado, pelo menos, pelo utilizador final. Scripts são muitas vezes interpretadas a partir do código-fonte ou bytecode, enquanto as aplicações que controlam são tradicionalmente compilado para código de máquina nativo. linguagens de script são quase sempre embutidos nas aplicações que controlam.

Você vai notar o uso de "normalmente", "muitas vezes", "tradicionalmente" e "quase sempre" - estes todos dizer-lhe que existe não conjunto de atributos distintos que fazem um idioma específico uma "linguagem de script".

"Um script é o que você dá os atores. Um programa é o que você dá a público." - Larry Wall

Eu realmente não acho que há muita diferença mais. As chamadas línguas "scripts" são muitas vezes compilados - apenas muito rapidamente, e em tempo de execução. E alguns dos "programar" as línguas são são ainda compilado em tempo de execução, bem como (pensar em JIT) e a primeira fase de "compilar" é verificação de sintaxe e de recursos resolução.

Não fique preso a ele, não é realmente importante.

A minha definição seria uma linguagem que é normalmente distribuído como fonte, em vez de como um binário.

Há uma série de possíveis respostas a esta.

Primeiro: não é realmente uma questão de diferença entre uma linguagem de script e uma linguagem de programação, porque uma linguagem de script é uma linguagem de programação. É mais uma questão do que traços de fazer alguma linguagem de programação uma linguagem de script, enquanto outra linguagem de programação não uma linguagem de script.

Segundo: é realmente difícil dizer o que uma linguagem XYZ é, se isso XYZ ser "scripting", "programação funcional", "programação orientada a objetos" ou o que você tem. A definição do que "programação funcional" é, é bastante clara, mas ninguém sabe o que é uma "linguagem de programação funcional" é.

A programação funcional ou programação orientada a objetos está programando estilos ; você pode escrever em um estilo funcional ou um estilo orientado a objetos em praticamente qualquer idioma. Por exemplo, o Linux Virtual File Sistema Switch e o Driver Model Linux são fortemente apesar escrito em C orientada a objetos, enquanto um monte de Java ou C # código que você vê na web é muito processual e não em tudo orientada a objeto . OTOH, eu vi algum código Java muito funcional.

Assim, se a programação funcional e programação orientada a objetos são meramente estilos que podem ser feitas no qualquer Idioma, em seguida, como você define uma "linguagem de programação orientada a objetos"? Pode-se dizer que uma linguagem de programação orientada a objeto é uma linguagem que permite a programação orientada a objetos. Mas isso não é muito de uma definição: todas idiomas permitem a programação orientada a objetos, portanto, todas línguas são orientadas a objeto? Então, você diz, bem uma língua é orientada a objetos, se forças você a programar em um estilo orientado a objetos. Mas isso não é muito de uma definição, ou:? todas idiomas permitem programação funcional, portanto, não linguagem é orientada a objetos

Então, para mim, eu encontrei a seguinte definição:

A linguagem é uma linguagem de script (linguagem orientada a objetos / linguagem funcional) se ambos

  • facilita scripting (programação orientada a objetos / programação funcional), ou seja, não só permite , mas torna fácil e naturais e contém recursos que help com ele, e
  • incentiva e guias -lo para scripting (programação orientada a objetos / programação funcional).

Assim, depois de cinco parágrafos, cheguei a: "uma linguagem de script é uma linguagem para scripts". O que uma definição grande. NÃO.

Obviamente, precisamos agora de olhar para a definição de "scripting".

Este é o lugar onde o terceiro problema surge: ao passo que o termo "programação funcional" é bem definida e é apenas o termo "linguagem de programação funcional", isto é problemático, infelizmente, com scripting, ambos o termo "script" e o termo "linguagem de script" está mal definido.

Bem, em primeiro lugar script é programação. É apenas um tipo especial de programação. IOW: cada script é um programa, mas nem todos os programas é um script; o conjunto de todos os scripts é um subconjunto próprio do conjunto de todos os programas.

Na minha opinião pessoal, a coisa que faz scripting scripts e o distingue de outros tipos de programação, é que ...

Scripts manipular amplamente objetos que

  • não foram criados pelo script,
  • têm um independente vida do script e
  • fora ao vivo o domínio do script.

Além disso, os tipos de dados e algoritmos utilizados são geralmente não definido pelo script, mas pelo ambiente externo.

Pense em um script shell: shell scripts normalmente manipular arquivos, diretórios e processos. A maioria dos arquivos, diretórios e processes em seu sistema provavelmente não foram criados pelo script atualmente em execução. E eles não desaparecem quando sai de script: sua vida é completamente independente do script. E eles não são realmente parte do script, seja, eles são uma parte do sistema. Você não começou seu script escrevendo aulas File e Directory, esses tipos de dados não são da sua preocupação: você simplesmente assumir que eles estão lá, e você nem sequer sabem (nem você necessidade saber ) como eles trabalham. E você não implementar seus próprios algoritmos, seja, por exemplo, para passagem de diretório que você acabou de usar find em vez de implementar sua própria amplitude-primeiro-pesquisa.

Em suma: um script atribui-se a um sistema maior que existe independentemente do script, manipula uma pequena parte do sistema e, em seguida, sai

.

Esse sistema maior pode ser o sistema operacional em caso de um shell script, o DOM do navegador em caso de um script navegador, um jogo (por exemplo, World of Warcraft com Lua ou Second Life com a Linden Scripting Language), uma aplicação ( por exemplo, a linguagem AutoLisp para AutoCAD ou Excel / Word / Office macros), um servidor web, um pacote de robôs ou algo completamente diferente.

Note que o aspecto scripting é completamente ortogonal a todos os outros aspectos das linguagens de programação: uma linguagem de script pode ser fortemente ou fracamente digitadas, estritamente ou vagamente digitado, estática ou dinâmica digitado, nominalmente, estruturalmente ou pato digitado, Parreira que pode até ser sem tipo. Pode ser imperativo ou funcional, orientada para o objecto, processual ou funcional, rigoroso ou preguiçoso. Suas implementações pode ser interpretado, compilado ou mista.

Por exemplo, Mondrian é uma linguagem funcional preguiçoso estritamente fortemente tipagem estática scripting com uma implementação compilado.

No entanto, tudo isso é discutível, porque a forma como o termo linguagem de script é realmente usado no mundo real, não tem nada a ver com qualquer um dos acima. Ele é mais frequentemente usado simplesmente como um insulto, ea definição é bastante simples, mesmo simplista:

  • real linguagem de programação: minha linguagem de programação
  • linguagem de script: sua linguagem de programação

Este parece ser o caminho que o termo é mais frequentemente usado.

É como pornografia, você sabe que quando você vê-lo. A única possível definição de uma linguagem de script é:

A language which is described as a scripting language.

Um pouco circular, não é? (By the way, eu não estou brincando).

Basicamente, não há nada que faz uma linguagem de uma linguagem de script, exceto que ele é chamado de tal, especialmente por seus criadores. O grande conjunto de linguagens de script modernas é PHP, Perl, JavaScript, Python, Ruby e Lua. Tcl é a primeira grande linguagem moderna scripting (não foi a primeira linguagem de script, porém, eu esquecer o que é, mas fiquei surpreso ao saber que ele é anterior Tcl).

I descrever características das principais linguagens de script em meu 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)

A maioria são de tipagem dinâmica e interpretada, ea maioria tem semântica não definida fora de sua implementação de referência. No entanto, mesmo que a sua principal aplicação se torna compilado ou JITed, isso não muda a "natureza" da língua.

Eles só restante questão é como você pode dizer se uma nova língua é uma linguagem de script. Bem, se ele é chamado uma linguagem de script, é um. Então Fator é uma linguagem de scripting (ou pelo menos foi quando que foi escrito), mas, por exemplo, Java não é.

"linguagem de script" é um daqueles conceitos difusos que pode significar muitas coisas. Normalmente, refere-se ao fato de que existe um processo de uma etapa levá-lo a partir do código-fonte para execução.

Por exemplo, em Perl você faz: perl my_source.pl

Diante do exposto critérios PHP é uma linguagem de scripting (mesmo que você pode ter um processo de "compilação", por exemplo, ao usar o Zend Encoder para "proteger" o código fonte).

PS. Muitas vezes (mas nem sempre) linguagens de script são interpretadas. Além disso, muitas vezes (mas, novamente, não sempre) linguagens de script são digitadas dinamicamente.

Todas as linguagens de script são linguagens de programação. Assim, estritamente falando, não há diferença.

O termo não se refere a todas as propriedades fundamentais da língua, refere-se o típico uso da língua. Se o uso típico é escrever programas curtos que, principalmente, fazer chamadas para o código pré-existente, e algumas simples processamento dos resultados, (isto é, se o uso típico é escrever roteiros ), então é uma linguagem de script.

Eu acho que o Sr. Roberto Ierusalimschy tem uma resposta muito boa ou a questão em 'Programação em Lua':

No entanto, a característica distintiva linguagens interpretadas não é que eles não são compilados, mas que qualquer compilador é parte da linguagem tempo de execução e que, portanto, é possível (e fácil) para executar código gerado na mosca

Uma divisão é

  • scripting = interpretado de forma dinâmica
  • = normais compilados

A linguagem interpretada de forma dinâmica é interpretado em tempo de execução enquanto uma linguagem compilada é compilado antes da execução.

Devo acrescentar que, como Jörg tem fora pontas, o interpretada / distinção compilado não é uma característica da linguagem, mas do mecanismo de execução.

Você pode também estar interessado neste explicação sobre Tipo sistema, que está relacionado e focos mais no aspecto da linguagem, em vez do mecanismo de execução. A maioria das linguagens de script são digitadas dinamicamente, enquanto línguas "normais" são na sua maioria de tipagem estática.

Em geral, a divisão de estaticamente vs linguagens digitadas dinamicamente é melhor definida e tem mais implicações sobre a usabilidade da língua.

A linguagem de script é tipicamente :

  1. dinamicamente digitado
  2. interpretada, com muito pouca ênfase no desempenho, mas boa portabilidade
  3. Requer muito menos clichê código , levando a prototipagem muito rápido
  4. É usado para pequenas tarefas, adequado para escrever um único arquivo para executar alguma "script" útil.

Enquanto uma língua não-scripting é normalmente : 1. tipagem estática 2. Compilado, com ênfase no desempenho 3. Requer mais código clichê, levando a prototipagem mais lento, mas mais legibilidade e de longo prazo de manutenção 4. usado para grandes projectos, adapta-se muitos padrões de design

Mas é mais de uma diferença histórica hoje em dia, na minha opinião. Javascript e Perl foram escritos com pequenos scripts, simples em mente, enquanto C ++ foi escrito com aplicações complexas em mente; mas ambos podem ser usados ??de qualquer forma. E muitas linguagens de programação, moderno e velhos, borrar a linha de qualquer maneira (e foi confuso, em primeiro lugar!).

O triste é, eu conheço alguns desenvolvedores que detesta o que eles percebida como "linguagens de script", pensando que eles sejam mais simples e não tão poderoso. Minha opinião é que velho clichê -. Usar a ferramenta certa para o trabalho

As linguagens de script foram originalmente pensado como um controle de mecanismos para aplicações escritas em uma linguagem de programação duro. Os programas compilados não poderia ser modificado em tempo de execução, de modo scripting deu às pessoas a flexibilidade.

Mais notavelmente, shell script foi automatizar processos no kernel do sistema operacional (tradicionalmente, AppleScript em Macs); um papel que mais e mais passou nas mãos de Perl, e depois fora dela em Python recentemente. Eu vi Scheme (particularmente na sua implementação Guile) usado para declarar raytracing cenas; e, recentemente, Lua é muito popular como a linguagem de programação para jogos de script - a tal ponto que a única coisa codificado em muitos novos jogos é o motor gráfico / física, enquanto toda a lógica do jogo é codificado em Lua. Da mesma forma, JavaScript foi pensado para o script do comportamento de um navegador web.

As línguas emancipado; ninguém pensa agora sobre o sistema operacional como um aplicativo (ou pensa sobre isso muito em tudo), e muitas línguas anteriormente scripting começou a ser usado para escrever aplicativos completos da sua própria. O próprio nome tornou-se sem sentido, e se espalhou para muitas linguagens interpretadas em uso hoje, independentemente se eles são projetados para ser interpretada de dentro de outro sistema ou não.

No entanto, "linguagens de script" definitivamente não é mais sinônimo de "linguagens interpretadas" - por exemplo, BASIC foi interpretado por maioria de sua vida (ou seja, antes que ele perdeu sua acronimicity e tornou-se Visual Basic), mas ninguém realmente pensa nisso como scripting.

UPDATE: Material de leitura como de costume disponível na Wikipedia .

Primeiro ponto, uma linguagem de programação não é uma "linguagem de script" ou uma outra coisa. Pode ser uma "linguagem de script" e algo mais.

Segundo ponto, o implementador da linguagem vai dizer se é uma linguagem de script.

A sua questão deve ler "Em que implementações seria uma linguagem de programação ser considerado uma linguagem de script?", Não "Qual é a diferença entre uma linguagem de script e uma linguagem de programação?". Não existe entre os dois.

No entanto, vou considerar uma linguagem de uma linguagem de script se ele é usado para fornecer algum tipo de middleware. Por exemplo, eu consideraria a maioria das implementações de JavaScript uma linguagem de script. Se o JavaScript foram executados no sistema operacional, não o navegador, então não seria uma linguagem de script. Se o PHP é executado dentro de Apache, que é uma linguagem de script. Se ele é executado a partir da linha de comando, não é.

Eu vejo uma linguagem de script como qualquer coisa que não requerem um peso-pesado ostensiva feeling 'compilação' passo. A principal característica do ponto de vista programadores é:. Você editar o código e executá-lo imediatamente

Assim que eu consideraria JavaScript e PHP como linguagens de script, enquanto ActionScript 3 / Flex não é realmente.

O meu amigo e eu só tinha este argumento:. Qual é a diferença entre uma linguagem de programação e uma linguagem de script

Um argumento popular é que as linguagens de programação são compilados e linguagens de script são interpretadas? - No entanto, eu acredito que este argumento é completamente falso ... porque

  1. Chakra & V8 (motores de JavaScript do Google da Microsoft e) Código de compilação antes da execução
  2. QBasic é interpretado -? Isso faz Qbasic uma linguagem de "scripting"

Com base nisso, este é o meu argumento para a diferença entre uma linguagem de programação e uma linguagem de script:

Uma linguagem de programação é executado no nível da máquina e tem acesso à própria máquina (memória, gráficos, som etc).

A linguagem de script é areia embalado e só tem acesso a objetos expostos para a caixa de areia. Ele não tem acesso direto à máquina subjacente.

Na minha opinião, eu diria que linguagens interpretadas de forma dinâmica, como PHP, Ruby, etc ... são ainda langauges "normais". Eu diria que exemplos de linguagens "scripts" são coisas como bash (ou ksh ou tcsh ou qualquer outro) ou sqlplus. Estas línguas são muitas vezes utilizados para cordas programas juntos existentes em um sistema em uma série de comandos coerentes e relacionadas, tais como:

  1. copiar A.txt para / tmp / trabalho /
  2. executar o processo de limpeza noturna no servidor de banco de dados
  3. registrar os resultados e enviá-los para o sysdamin

Então eu diria que a diferença (para mim, pelo menos) é mais em como você uso o idioma. Linguagens como PHP, Perl, Ruby poderia ser usado como "linguagens de script", mas eu costumo vê-los usado como "línguas normais" (exceto Perl que parece ir nos dois sentidos.

Vou apenas ir em frente e migrar a minha resposta da questão duplicado


O nome "linguagem de script" aplica-se a um papel muito específico: a linguagem que você escreve comandos para enviar para uma aplicação de software existente. (Como uma TV tradicional ou filme "script")

Por exemplo, era uma vez, páginas HTML foram chato. Eles estavam sempre estática. Então, um dia, pensou Netscape, "Ei, o que se deixarmos a leitura navegador e agir em pequenos comandos na página?" E assim, foi formada Javascript.

Um simples comando javascript é o comando alert(), que instrui / comanda o navegador (um aplicativo de software) que está lendo a página da Web para exibir um alerta.

Agora, não alert() relacionados, de qualquer forma, para o C ++ ou qualquer linguagem de código que o navegador realmente usos para exibir o alerta? Claro que não. Alguém que escreve "alert ()" em uma página html não tem compreensão de como o navegador realmente exibe o alerta. Ele está apenas escrevendo um comando que o navegador irá interpretar.

Vamos ver o código JavaScript simples

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

Estes são instrui que são enviados para o navegador, para o navegador para interpretar em si. A linguagem de programação que o navegador passa para realmente definir uma variável a 4, e colocar isso em um alerta ... é completamente alheios a javascript.

Nós chamamos essa última série de comandos de um "script" (que é por isso que é delimitado por tags <script>). Apenas pela definição de "script", no sentido tradicional: Uma série de instruções e comandos enviados para os atores . Todo mundo sabe que um roteiro (um roteiro de filme), por exemplo, é um script.

O roteiro (roteiro) é não os atores, ou a câmera, ou os efeitos especiais. O roteiro apenas lhes diz o que fazer.

Agora, o que é um script idioma , exatamente?

Há uma grande quantidade de línguas que são como ferramentas diferentes em uma caixa de ferramentas de programação; algumas línguas foram projetados especialmente para ser usado como scripts.

Javasript é um exemplo óbvio; há muito poucas aplicações de Javascript que não se enquadram dentro do reino do script.

ActionScript (o idioma para animações em Flash) e seus derivados são linguagens de script, em que eles simplesmente emitir comandos para o Flash player / intérprete. Claro, existem abstrações como programação orientada a objetos, mas tudo o que é simplesmente um meio para o fim:. Comandos enviar para o flash player

Python e Ruby são comumente usado também como linguagens de script. Por exemplo, uma vez eu trabalhei para uma empresa que usou Ruby para comandos de script para enviar para um navegador que foram ao longo das linhas de, "ir a este site, clique neste link ..." para fazer alguns testes automatizados básico. Fiquei não a "Software Developer" por qualquer meio, nesse trabalho. Eu só escreveu roteiros que enviaram comandos para o computador para enviar comandos para o navegador.

Devido à sua natureza, linguagens de script são raramente 'compilado' - isto é, traduzido em código de máquina, e lidos diretamente pelo computador

.

Mesmo aplicações GUI criadas a partir de Python e Ruby são roteiros enviados para uma API escrito em C ++ ou C. Diz o aplicativo C o que fazer.

Há uma linha de incerteza, é claro. Porque você não pode dizer que Linguagem de Máquina / C são linguagens de script, porque eles são scripts que usa o computador para fazer a interface com a placa-mãe básica / placas gráficas / fichas?

Existem algumas linhas que podemos tirar para esclarecer:

  1. Quando você pode escrever uma linguagem de script e executá-lo sem "compilar", é mais de um script direta tipo de coisa. Por exemplo, você não precisa fazer nada com um roteiro, a fim de dizer aos atores o que fazer com ele. Ele já está lá, usado, como está. Por esta razão, vamos excluem linguagens compiladas de ser callevou linguagens de script, mesmo que eles podem ser usados ??para fins de script em algumas ocasiões.

  2. Linguagem de script implica comandos enviados a um complexo aplicação de software; essa é a razão por que escrever scripts em primeiro lugar - para que você não precisa conhecer as complexidades de como o software funciona para enviar comandos para ele. Então, linguagens de script tendem a ser linguagens que send (relativamente) simples comandos para aplicativos de software complexos ... neste caso, linguagem de máquina e montagem código não cortá-la.

Sugiro que linguagens de script tem sido um monte prazo de pessoas estão se afastando. Eu diria que em sua maioria se resume a linguagens compiladas e linguagens dinâmicas hoje em dia.

Quer dizer que você realmente não pode dizer algo como Python ou Ruby são línguas "script" neste dia e idade (você ainda tem coisas como IronPython e JIT-seu-favorito-language , a diferença foi borrada ainda mais).

Para ser honesto, eu, pessoalmente, não sinto PHP é uma linguagem de script mais. Eu não esperaria que as pessoas como categorizar PHP diferente de dizer Java em seu currículo.

As linguagens de script tendem a correr dentro de um motor de scripting que é parte de uma aplicação maior. Por exemplo, JavaScript é executado dentro de seus navegadores Scripting Engine.

A linguagem de script é uma linguagem que é interpretada cada vez que o script é executado, isso implica ter um intérprete e são muito mais legível, para ser útil uma linguagem de script é fácil de aprender e usar.

Cada língua compilable pode ser feita em uma linguagem de script e vice-versa, tudo depende de implementação de um intérprete ou um compilador, como um exemplo C ++ tem um intérprete para que ele possa ser chamado de uma linguagem de script, se usado de modo (em não muito prático geral, como C ++ é uma linguagem muito complexa), um dos mais linguagens de script útil no momento é Python ...

Assim, para responder à sua pergunta a definição é sobre o uso de um intérprete para executar programas rápida e fácil de script, para tarefas simples de endereço ou protótipos de aplicações da poderosa uso mais pode fazer de linguagens de script é incluir a possibilidade para cada uso para alargar uma aplicação compilada.

Eu prefiro que as pessoas não usam o termo "linguagem de script" como eu acho que diminui o esforço. Tome uma linguagem como Perl, muitas vezes chamado de "linguagem de script".

  • Perl é uma linguagem de programação!
  • Perl é compilado como Java e C ++. É apenas compilado muito mais rápido!
  • Perl tem objetos e espaços de nomes e encerramentos.
  • Perl tem IDEs e depuradores e profilers.
  • Perl tem treinamento e suporte e comunidade.
  • Perl não é apenas web. Perl não é apenas sysadmin. Perl não é apenas a fita adesiva da Internet.

Por que nós ainda precisamos distinguir entre uma linguagem como Java, que é compilado e Ruby que não é? Qual é o valor na rotulagem?

Para saber mais sobre isso, consulte http://xoa.petdance.com/Stop_saying_script .

Uma diferença importante é tipagem forte (versus fraco digitação ). As linguagens de script são muitas vezes fracamente tipado , o que torna possível escrever pequenos programas mais rapidamente. Para grandes programas esta é uma desvantagem, uma vez que inibe o compilador / intérprete para encontrar determinados erros de forma autônoma, tornando-se muito difícil de código de refatoração.

As linguagens de script são linguagens de programação onde os programas são tipicamente entregues aos usuários finais em forma de texto legível e onde há um programa que pode aparentemente executar esse programa diretamente. (O programa pode também compilar o script internamente;. Isso não é relevante aqui porque não é visível para o usuário)

É relativamente comum para linguagens de script para ser capaz de suportar uma sessão interativa onde os usuários podem simplesmente digitar em seu programa e tê-lo executar imediatamente. Isto é porque esta é uma extensão trivial do requisito essencial do primeiro parágrafo; o principal requisito adicional é a adição de um mecanismo para descobrir quando um digitado-in afirmação é completa para que ele possa ser enviado para o mecanismo de execução.

Para uma tomada ligeiramente diferente sobre a questão. A linguagem de script é uma linguagem de programação, mas uma linguagem de programação não é necessariamente uma linguagem de script. A linguagem de script é usado para controlar ou script de um sistema. Esse sistema poderia ser um sistema operacional, onde a linguagem de script seria bash. O sistema poderia ser um servidor web com PHP linguagem de script. linguagens de script são projetados para preencher um nicho específico; eles são linguagens específicas de domínio. sistemas interativos têm interpretado linguagens de script que dão origem à noção de que linguagens de script são interpretadas; no entanto, esta é uma consequência do sistema e não a própria linguagem de script.

A linguagem de script é uma linguagem que configura ou estende um programa existente.
A Scripting Language é uma linguagem de programação.

A definição de "linguagem de script" é bastante difusa. Eu baseá-la nas seguintes considerações:

  1. As linguagens de script geralmente não têm etapas de compilação visíveis ao usuário. Normalmente o usuário pode simplesmente programas executados em um comando fácil.

  2. Programas em linguagens de script são normalmente repassados ??em forma de fonte.

  3. As linguagens de script normalmente têm tempos de execução que estão presentes em um grande número de sistemas, e os tempos de execução pode ser instalado facilmente na maioria dos sistemas.

  4. As linguagens de script tendem a ser multi-plataforma e específicas da máquina não.

  5. As linguagens de script se torna mais fácil para chamar outros programas e interface com o sistema operacional.

  6. As linguagens de script são geralmente facilmente incorporáveis ??em sistemas maiores escritos em linguagens de programação mais convencionais.

  7. As linguagens de script são normalmente concebidos para facilitar a programação e, com muita consideração menos para a velocidade de execução. (Se você quiser execução rápida, o conselho usual é de código as partes demoradas em algo como C, e quer incorporar a linguagem em C ou C chamada bits da linguagem.)

Algumas das características que listei acima são verdadeiras de implementações, caso em que eu estou me referindo as implementações mais comuns. Houve intérpretes C, com (AFAIK) não passo de compilação óbvio, mas isso não é verdade para a maioria das implementações C. Você certamente poderia compilar um programa Perl para código nativo, mas isso não é como ele é normalmente usado. Algumas outras características são de natureza social. Alguns dos critérios acima se sobrepõem um pouco. Como eu disse, a definição é difusa.

Eu diria linguagem de script é a manipulação fortemente entidades que em si não define. Por exemplo, JavaScript manipula objetos DOM fornecido pelo navegador, PHP opera enorme biblioteca de funções baseadas em C, e assim por diante. Claro que não uma definição precisa, mais uma maneira de pensar se.

Se isso não acontecer / não iria executado na CPU, é um script para mim. Se um intérprete precisa ser executado na CPU abaixo o programa, então é um roteiro e uma linguagem de script.

Não há razão para torná-lo mais complicado do que isso?

É claro que, na maioria (99%) dos casos, é claro se uma língua é uma linguagem de script. Mas considere que uma VM pode emular o conjunto de instruções x86, por exemplo. Não isto fazem o x86 bytecode uma linguagem de script quando executado em uma máquina virtual? E se alguém estava a escrever um compilador que iria transformar código Perl em um executável nativo? Neste caso, eu não saberia o que chamam a própria linguagem mais. Seria a saída que importa, não a linguagem.

Então, novamente, eu não estou ciente de qualquer coisa como isto ter sido feito, então por enquanto eu ainda estou chamando confortável interpretado linguagens de script idiomas.

A roteiro é relativamente pequena programa. A sistema é relativamente grande , programa ou um coleção de relativamente grandes programas.

Algumas linguagens de programação são projetados com características que o designer da linguagem e da comunidade de programação consideram ser útil ao escrever programas relativamente pequenos. Estas linguagens de programação são conhecidos como linguagens de script , por exemplo, PHP.

Da mesma forma, outras linguagens de programação são projetados com características que o designer da linguagem e da comunidade de programação consideram ser útil ao escrever relativamente grandes programas. Estas linguagens de programação são conhecidos como línguas sistemas , por exemplo, Java.

Agora, pequenos e grandes programas podem ser escritos em qualquer idioma. Um pequeno programa Java é um script. Por exemplo, um programa Java "Olá Mundo" é um script, não um sistema. Um grande programa ou conjunto de programas, escrito em PHP é um sistema. Por exemplo, Facebook, escrito em PHP, é um sistema, e não um script.

Considerando um único recurso de linguagem como um "teste decisivo" para decidir se a linguagem é mais adequado para execução de scripts ou programação de sistemas é questionável. Por exemplo, scripts pode ser compilado para byte código ou código de máquina, ou eles pode ser executado pela interpretação direta árvore de sintaxe abstrata (AST).

Assim, a linguagem é uma linguagem de script se ele é normalmente usado para scripts de gravação . A linguagem de script pode ser usado para sistemas de gravação, mas essas aplicações são susceptíveis de ser considerada duvidosa.

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