Linguagem de scripting
linguagens de scripting podem ser categorizadas em vários tipos diferentes, com um grau considerável de sobreposição entre os tipos.
linguagens de colaEdit
p>Scripting é frequentemente contrastado com a programação do sistema, como na dicotomia de Ousterhout ou “programação no grande e programação no pequeno”. Nesta visão, o scripting é código de cola, ligando componentes de software, e uma linguagem especializada para este fim é uma linguagem de cola. As condutas e a scripting de conchas são exemplos arquetípicos de linguagens de cola, e Perl foi inicialmente desenvolvido para preencher este mesmo papel. O desenvolvimento Web pode ser considerado um uso de linguagens de cola, interface entre uma base de dados e um servidor Web. Mas se uma quantidade substancial de lógica for escrita em script, é melhor caracterizada como simplesmente mais um componente de software, e não “cola”.
Linguagens de cola são especialmente úteis para escrever e manter:
- comandos personalizados para uma shell de comandos;
- programas mais pequenos do que aqueles que são melhor implementados numa linguagem compilada;
- programas “wrapper” para executáveis, como um ficheiro batch que move ou manipula ficheiros e faz outras coisas com o sistema operativo antes ou depois de executar uma aplicação como um processador de texto, folha de cálculo, base de dados, assembler, compilador, etc.;
- scripts que podem mudar;
- Desenvolvimento rápido de uma solução eventualmente implementada noutra, normalmente compilada, linguagem.
Exemplos de linguagem de cola:
Linguagens Macro expostas ao sistema operativo ou componentes de aplicação podem servir como linguagens de cola. Estas incluem Visual Basic para Aplicações, WordBasic, LotusScript, CorelScript, Hummingbird Basic, QuickScript, Rexx, SaxBasic, e WinWrap Basic. Outras ferramentas como AWK também podem ser consideradas linguagens de cola, tal como qualquer linguagem implementada por um motor Windows Script Host (VBScript, JScript e VBA por defeito em motores Windows e de terceiros, incluindo implementações de Rexx, Perl, Tcl, Python, XSLT, Ruby, Modern Pascal, Delphi, e C). A maioria das aplicações pode aceder e utilizar componentes do sistema operacional através dos modelos de objectos ou das suas próprias funções.
Outros dispositivos como calculadoras programáveis podem também ter linguagens de cola; os sistemas operacionais de PDAs como o Windows CE podem ter disponíveis ferramentas de macro nativas ou de terceiros que colam aplicações em conjunto, para além de implementações de linguagens de cola comuns – incluindo Windows NT, DOS, e alguns shells Unix, Rexx, Pascal Moderno, PHP, e Perl. Dependendo da versão do SO, WSH e os motores de script padrão (VBScript e JScript) estão disponíveis.
Calculadoras programáveis podem ser programadas em linguagens de cola de três maneiras. Por exemplo, a Texas Instruments TI-92, por defeito de fábrica, pode ser programada com uma linguagem de script de comando. A inclusão da linguagem de scripting e cola Lua na série de calculadoras TI-NSpire pode ser vista como um sucessor desta. As principais linguagens de programação de alto nível a bordo da maioria das calculadoras gráficas (na maioria das vezes variantes Basic, por vezes derivadas Lisp, e mais invulgarmente, derivadas C) podem, em muitos casos, colar funções de calculadora – tais como gráficos, listas, matrizes, etc. Estão disponíveis implementações por terceiros da versão Basic mais abrangente que pode estar mais próxima das variantes listadas como linguagens de cola neste artigo – e são também mencionadas tentativas de implementar Perl, Rexx, ou vários shells de sistemas operativos nas calculadoras gráficas TI e HP. Os compiladores cruzados C baseados em PC para algumas das máquinas TI e HP usadas com ferramentas que convertem entre C e Perl, Rexx, AWK, e shell scripts para Perl, Modern Pascal, VBScript de e para Perl tornam possível escrever um programa numa linguagem de cola para eventual implementação (como um programa compilado) na calculadora.
Linguagens de ediçãoEditar
Um número de editores de texto suportam macros escritas quer usando uma linguagem macro incorporada no editor, por exemplo O Editor SemWare (TSE), vi melhorado (VIM), ou usando uma implementação externa, por exemplo, XEDIT, ou ambos, por exemplo, KEDIT. Por vezes, os editores de texto e as macros de edição são utilizados sob as capas para fornecer outras aplicações, por exemplo, FILELIST e RDRLIST em CMS .
Linguagens de controlo de trabalhos e shellsEdit
Uma grande classe de linguagens de scripting cresceu a partir da automatização do controlo de trabalhos, que se relaciona com o arranque e controlo do comportamento dos programas do sistema. (Neste sentido, poder-se-ia pensar em shells como sendo descendentes do JCL da IBM, ou linguagem de controlo de trabalhos, que foi usada exactamente para este fim). Muitos dos intérpretes destas línguas duplicam como intérpretes de linha de comando, tais como o Unix shell ou o MS-DOS COMMAND.COM
. Outras, como o AppleScript oferecem o uso de comandos em inglês para construir scripts.
GUI scriptingEdit
Com o advento das interfaces gráficas de utilizador, surgiu um tipo especializado de linguagem de scripting para controlar um computador. Estas linguagens interagem com as mesmas janelas gráficas, menus, botões, e assim por diante, que um utilizador humano faria. Fazem-no através da simulação das acções de um utilizador. Estas linguagens são tipicamente utilizadas para automatizar as acções do utilizador. Estas linguagens são também chamadas “macros” quando o controlo é feito através de teclas simuladas ou cliques do rato, bem como tocando ou pressionando num ecrã activado por toque.
Estas linguagens poderiam, em princípio, ser usadas para controlar qualquer aplicação GUI; mas, na prática, a sua utilização é limitada porque a sua utilização necessita do apoio da aplicação e do sistema operativo. Existem algumas excepções a esta limitação. Algumas linguagens de scripting GUI baseiam-se no reconhecimento de objectos gráficos a partir dos seus pixels de ecrã de visualização. Estas linguagens de scripting GUI não dependem do suporte do sistema operativo ou da aplicação.
Quando a GUI fornece as interfaces apropriadas, como no IBM Workplace Shell, uma linguagem de scripting genérica, por exemplo OREXX, pode ser usada para escrever scripts GUI.
Linguagens específicas da aplicaçãoEditar
Linguagens específicas da aplicação podem ser divididas em muitas categorias diferentes, i.e. linguagens de aplicação autónomas (executáveis) ou linguagens específicas de aplicação internas (postscript, xml, gscript como alguns dos scripts amplamente distribuídos, respectivamente implementados pela Adobe, MS e Google), entre outras, incluem uma linguagem de scripting idiomática adaptada às necessidades do utilizador da aplicação. Do mesmo modo, muitos sistemas de jogos de computador utilizam uma linguagem de scripting personalizada para expressar as acções programadas de personagens não jogadores e o ambiente do jogo. Linguagens deste tipo são concebidas para uma única aplicação; e, embora possam assemelhar-se superficialmente a uma linguagem específica de uso geral (por exemplo, QuakeC, modelada depois de C), têm características personalizadas que as distinguem. Emacs Lisp, embora seja um dialecto de Lisp completamente formado e capaz, contém muitas características especiais que o tornam mais útil para alargar as funções de edição do Emacs. Uma linguagem de scripting específica de aplicação pode ser vista como uma linguagem de programação específica de domínio especializada a uma única aplicação.
Linguagens de extensão/embediçãoEdit
Um número de linguagens foi concebido com o propósito de substituir as linguagens de scripting específicas de aplicação, sendo incorporáveis em programas de aplicação. O programador da aplicação (trabalhando em C ou outra linguagem de sistemas) inclui “ganchos” onde a linguagem de scripting pode controlar a aplicação. Estas línguas podem ser tecnicamente equivalentes a uma linguagem de extensão específica da aplicação, mas quando uma aplicação incorpora uma língua “comum”, o utilizador tem a vantagem de ser capaz de transferir competências de aplicação para aplicação. Uma alternativa mais genérica é simplesmente fornecer uma biblioteca (frequentemente uma biblioteca C) que uma linguagem de uso geral pode utilizar para controlar a aplicação, sem modificar a linguagem para o domínio específico.
JavaScript começou como e principalmente ainda é uma linguagem para scripting dentro de navegadores web; contudo, a padronização da linguagem como ECMAScript tornou-a popular como uma linguagem de uso geral incorporável. Em particular, a implementação do Mozilla SpiderMonkey está incorporada em vários ambientes, tais como o Yahoo! Widget Engine. Outras aplicações incorporando implementações ECMAScript incluem os produtos Adobe Adobe Flash (ActionScript) e Adobe Acrobat (para ficheiros PDF de scripting).
Tcl foi criado como uma linguagem de extensão mas passou a ser utilizado mais frequentemente como uma linguagem de uso geral em funções semelhantes a Python, Perl, e Ruby. Por outro lado, o Rexx foi originalmente criado como uma linguagem de controlo de trabalhos, mas é amplamente utilizado como uma linguagem de extensão, bem como uma linguagem de uso geral. O Perl é uma linguagem de uso geral, mas tinha o Oraperl (1990) dialecto, consistindo de um Perl 4 binário com Interface de Chamada Oracle compilado em. No entanto, este foi entretanto substituído por uma biblioteca (Módulo Perl), DBD::Oracle.
p>Outras aplicações complexas e orientadas para tarefas podem incorporar e expor uma linguagem de programação integrada para permitir aos seus utilizadores mais controlo e dar-lhes mais funcionalidade do que a que pode estar disponível através de uma interface de utilizador, por mais sofisticada que seja. Por exemplo, as ferramentas de autoria do Autodesk Maya 3D incorporam a Maya Embedded Language, ou Blender que utiliza Python para preencher esta função.
alguns outros tipos de aplicações que necessitam de uma adição mais rápida de funcionalidades ou ciclos de afinação (por exemplo, motores de jogo) também utilizam uma linguagem incorporada. Durante o desenvolvimento, isto permite-lhes fazer protótipos de características mais rapidamente e afinar mais livremente, sem a necessidade de o utilizador ter um conhecimento íntimo do funcionamento interno da aplicação ou de a reconstruir após cada afinação (o que pode demorar um tempo significativo). As linguagens de scripting utilizadas para este fim vão desde as mais comuns e mais famosas Lua e Python até às menos conhecidas como AngelScript e Squirrel.
Ch é outra opção de scripting compatível com C para a indústria para incorporar em programas de aplicação C/C++.