Prévia do material em texto
PROGRAMAÇÃO EM
AMBIENTES DE
REDES DE
COMPUTADORES
Fernanda Rosa da Silva
Linguagens de
programação para scripts
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
� Conceituar as linguagens de programação para scripts.
� Identificar as características mais comuns em programação para scripts.
� Diferenciar os tipos de linguagens de programação para scripts.
Introdução
Praticamente todas as tarefas realizadas no cotidiano e no mundo virtual
se baseiam em regras, métodos e etapas que possibilitam sua organi-
zação, tendo como resultado uma resposta para os comandos e passos
seguidos durante um processo específico. No mundo tecnológico, esse
conjunto de instruções utilizado para atribuir uma função específica a
um aplicativo é denominado script.
Neste capítulo, você entenderá o que são as linguagens de scripts,
recurso utilizado para tornar a execução de uma sequência de passos
possível, além de identificar as características principais dessa linguagem
de programação e saber diferenciar os tipos de linguagens conforme
sua classificação.
1 Conceitos básicos
Em meados de 1950, os primeiros compiladores que surgiram foram ini-
cialmente considerados software de alta complexidade, porém, conforme a
evolução das técnicas e das ferramentas envolvidas na programação, esses
compiladores passaram a ser implementados com maior rapidez, com melhorias
e otimizações até a criação do código e de seu resultado.
Com o surgimento da internet, as funcionalidades dos compiladores co-
meçaram a ter muita importância por meio do uso das linguagens de script.
Uma linguagem de script (scripting) define-se como uma linguagem de
programação que suporta scripts (OCCUPYTHEWEB, 2018), que, por sua
vez, compreendem uma ferramenta fácil de utilizar e que tem como propósito
escrever programas e construir aplicações (NEVES, 2010). Além disso, tarefas
que antes somente poderiam ser executadas por operações manuais dirigidas
por humanos passaram a ser automatizadas pelo uso de scripts, como aplica-
ções de software, páginas web executadas com o emprego de um navegador
e shells que integram sistemas operacionais.
Em geral, um script é interpretado por um shell e algumas das principais
operações comumente executadas por linguagens de script correspondem à
manipulação de arquivos, execução de programas e impressão de texto, além
de atividades que exigem automatização de tarefas básicas.
As linguagens de programação para script evoluíram desde sua criação,
visto que, inicialmente, se baseavam no uso de listas de comandos denomi-
nadas script para que fossem interpretadas corretamente. De acordo com
Sebesta (2011), uma das primeiras linguagens utilizadas foi a chamada sh (de
shell), que continha uma pequena coleção de comandos executada por meio
de chamadas a subprogramas de sistema e suas respectivas funções, incluindo
o gerenciamento de arquivos e filtragens de arquivos simples.
Com o passar do tempo, essa base foi alimentada e se tornou maior e mais
completa, dispondo de variáveis, sentenças de controle de fluxo, funções e
várias outras capacidades, o que resultou em uma linguagem de programação
completa e no surgimento de outras linguagens poderosas.
Ainda, conforme Sebesta (2011), linguagens de scripts são consideradas
de altíssimo nível por operarem em um nível de abstração — uma lingua-
gem de nível de abstração é assim chamada por estar longe do código de
máquina e ter maior semelhança com a linguagem humana, sem exigir que
o programador conheça profundamente as características de arquitetura do
computador para conseguir aplicá-la. O termo script é geralmente utilizado
para definir programas menores se comparados a outras linguagens formadas
por códigos um pouco maiores do que aqueles compostos por milhares de
linhas (SEBESTA, 2011).
Linguagens de programação para scripts2
Assim, as linguagens de script, ao proverem a automação de tarefas, per-
mitem que o administrador gaste menos tempo com a execução de tarefas
rotineiras que devem ser aplicadas com frequência no sistema e sempre tendo
em conta a mesma sequência de passos.
Considerando um cenário real, poderíamos afirmar que, no cinema, um
script é o roteiro formado por um texto contendo uma série de instruções para
serem seguidas pelos atores, pela produção do filme e pelos demais envolvidos.
Quando falamos de tecnologia, o conceito é o mesmo: o script é uma série de
instruções (MATOS, 2014) que possibilita, por meio um computador, estabele-
cer determinados passos para automatizar e executar tarefas específicas, com
base em linhas de código. Assim, podemos, por exemplo, contabilizar o uso de
recursos de um site considerando usuários que o acessaram em determinado
período, listar especificações do sistema como usuário e informações de rede
ou estabelecer uma rotina de backup para pastas específicas ou para todo o
conteúdo de servidores críticos na rede. Para entender melhor como isso fun-
ciona, veja a seguir um exemplo de uso de script em um sistema operacional.
Imagine que um administrador de sistema precisa atualizar todos os dias o backup de
dados dos servidores em determinado horário, considerando as mesmas pastas: fazer
isso manualmente levaria muito tempo e estaria sucessível a erros de cópia. Por sua
vez, adquirir um software para tal tarefa elevaria o custo de operação. Desse modo, o
analista pode aplicar um script básico para realizar essa tarefa, apontando parâmetros
básicos e automatizando as cópias diariamente.
Um script pode ser configurado para estabelecer parâmetros de rotina e
retornar como saída qualquer aviso ao administrador, caso encontre algum
erro na sua execução.
3Linguagens de programação para scripts
Imagine que o mesmo administrador todos os dias, apesar de automatizar a rotina de
backup, precisa verificar os logs do script para garantir que tenha sido corretamente
aplicado sempre no horário estabelecido. Para isso, é possível estabelecer no próprio
script que um log seja salvo, conseguindo acompanhar qualquer eventual erro e se o
processo foi finalizado com sucesso. Veja esse exemplo no Windows Server:
$SourceFolder = "C:\Shared" $DestFolder = "D:\BackupSha-
red" $LogFile = "C:\BackupLogs\backup_log.txt" Robocopy
$SourceFolder $DestFolder /MIR /ZB /R:3 /W:10 /NP /COPYALL
/LOG:$LogFile
onde:
� $ = recebe as variáveis de entrada;
� $SourceFolder = diretório de origem no qual estão armazenados os arquivos
que devem ser copiados;
� $DestFolder = diretório de destino no qual a cópia dos arquivos e diretórios
será salva;
� $ LogFile = local de destino em que o arquivo de texto contendo o log será salvo;
� comando Robocopy = responsável por realizar a cópia considerando as variáveis
definidas.
Uma linguagem de script tem como principal objetivo ser projetada para
os usuários finais ou para uso interno dos desenvolvedores, quando podem
escrever porções do programa na linguagem de script organizando uma série
de processos vitais para a operação da sua infraestrutura. Além disso, as lin-
guagens de script geralmente usam abstração, podendo ocultar informações
técnicas para poupar os usuários de detalhes que envolvam variáveis internas,
armazenamento de dados e gerenciamento de memória, visto que, para eles,
somente o funcionamento dos programas é relevante.
Assim, segundo Baesse (2012), os scripts são frequentemente criados ou
modificados por seu próprio usuário, apesar de muitas vezes ser também
distribuído para fins específicos por meio de um interpretador (denominado
shell script), que traduz o código escrito para a linguagem da máquina.
Linguagens de programação para scripts4
A seguir, você poderá entender melhor o conceito de variável citado no
exemplo anterior, já que abordaremos as características das linguagens de
programação para scripts.
2 Características da programação para script
Apesar de o desempenho das linguagens de programação para script ser inferior
ao das linguagensde programação tradicionais, seu uso foi popularizado por
outras características, como a facilidade com que pode ser aprendida, já que
não se exige muito formalidade para escrever um programa.
Ainda, sua sintaxe e semântica são relativamente simples, sem conter
nenhum ponto de entrada explícito e sendo representadas como arquivos de
código-fonte pequenos. De acordo com Bazilio (2018), as linguagens de script,
além de serem voltadas para tarefas em menor escala, possibilitam, por sua
estruturação, uma maior eficiência na compilação e na execução dos seus
programas, auxiliando na criação de rotinas e na integração de aplicações
já existentes.
A flexibilidade também é uma característica importante das linguagens
de script, por permitirem o agrupamento de programas já existentes menores
para construir um grande sistema. Além disso, programas baseados em lin-
guagens de scripts não precisam ser compilados antes do uso, como o caso de
outras linguagens que necessitam que o programa seja compilado (técnica que
transforma o conjunto de arquivos-fonte em um arquivo executável, também
conhecido como binário, para que possa ser lido e entendido pelo computador)
antes de ser executado. E linguagens de script, como já dito, se caracterizam
por sintaxes simples, sem regras tediosas, lidas e interpretadas por linha em
vez de considerar o código inteiro.
Com frequência, uma linguagem de script é interpretada do código-fonte
ou bytecode (pode ser definido como um formato de código que existe entre
o código-fonte, no qual o programador constrói toda a estrutura necessária
para o funcionamento do script, e o código de máquina, geralmente binário,
passível de ser executado pelo computador), de acordo com Sebesta (2011).
Em oposição, o bytecode será interpretado em uma máquina virtual, que
fará a execução, compreendendo, assim, um estágio intermediário entre o
código-fonte (escrito em uma linguagem de programação específica) e a
aplicação final.
5Linguagens de programação para scripts
Adicionalmente, um código baseado em linguagem de script torna as
funcionalidades de sistema mais acessíveis em comparação às linguagens de
programação tradicionais, como C, simplificando a entrada e a saída de dados,
a manipulação de arquivos, o gerenciamento de processos, o acesso à rede e a
autorização de acesso aos recursos, entre outras facilidades (BAZILIO, 2018).
Quando um administrador, por meio do terminal no Linux, está listando diretórios
utilizando o comando ls, acessando diretórios com o comando dir ou até mesmo
criando um diretório novo por meio do comando mkdir, está fazendo uso de coman-
dos simples que compõem a linguagem de script para manipular arquivos.
Por último, de acordo com Tableless (2017), a linguagem de script tem como
característica o uso de variáveis, como um espaço na memória utilizada para
guardar informações. É por meio de uma variável que o valor utilizado deve
ser declarado para garantir o funcionamento correto do script.
Para elucidar o conceito de memória, imagine que a memória do seu computador
é uma estante de livros, dos quais você tem centenas. Você pode organizá-los por
categoria para que fique mais fácil encontrá-los, mantendo a organização da sua
biblioteca. Para essa referência, servem as variáveis. Nada impede que o valor de uma
variável seja alterado durante sua execução. Então, caso você compre mais livros, eles
podem ser adicionados à sua coleção sem nenhum problema.
De acordo com Souza Júnior et al. (2007), a característica que diferencia
as linguagens de script das linguagens de programação tradicionais reside
no fato de que, nas segundas, os scripts são interpretados em tempo real,
lidos linha por linha, ao passo que, nas linguagens de programação tradi-
cionais, o código-fonte é lido de forma integral inicialmente e transformado,
Linguagens de programação para scripts6
depois, em código de máquina, sem poder ser alterado depois de compilado.
Já as linguagens de script são flexíveis, podendo ser alteradas e adaptadas
a qualquer momento, caso outra função precise ser adicionada ou removida.
Isso permite que uma única aplicação contenha, ao mesmo tempo, diferentes
funções, configurações e objetivos, dependendo exclusivamente do script
que está executando.
As linguagens de programação utilizam variáveis tipadas, classificadas
como fortemente tipadas e fracamente tipadas (o segundo é o caso da maioria
das linguagens de script), não sendo necessário definir o tipo de variável tipada
automaticamente quando recebe o valor, enquanto, em outras linguagens de
programação, as variáveis precisam ser tipadas conforme sua categoria para
definir o valor que será recebido (inteiro, decimal , char [que define símbolos],
etc.) (TABLELESS, 2017). Ainda, podemos classificar as linguagens de script
conforme suas características, como abordaremos a seguir.
3 Tipos de linguagens de script
Quando tratamos de linguagens de script, existe uma grande variedade de
linguagens disponíveis de acordo com o propósito do uso. Linguagens de
script para ambiente específico incluem o Bash, desenvolvido para ambientes
Unix, e o PowerShell, principalmente para ambientes e sistemas operacionais
Windows, além de outras linguagens, como JavaScript e algumas voltadas
para navegadores. Linguagens de extensão também são amplamente utilizadas
para propósitos específicos, como a Lua. A seguir, conheceremos alguns tipos
de linguagens de script.
Linguagens aglutinativas
São utilizadas para integrar aplicações já existentes e construir pequenos
códigos, geralmente empregadas no desenvolvimento web, como de sites
web (PERGHER; AYMONE, 2017). Ainda, denomina-se glue code (código
de cola), motivo pelo qual é especialmente pertinente para manter comandos
customizados, desenvolver pequenos programas, criar wrappers (empacotado-
res) para serem utilizados como executáveis com funções de manipulação de
arquivos, entre outras funções que envolvem, por exemplo, processadores de
texto, planilhas eletrônicas, ações em banco de dados, diferentemente de outras
linguagens de programação usadas para desenvolver programas completos.
7Linguagens de programação para scripts
Assim, essa linguagem é muito útil para escrever programas menores
considerando uma implementação em linguagem compilada. No entanto,
poucas linguagens de script dispõem de um compilador que permite a leitura
do código inteiro antes de executá-lo — o código é lido linha por linha por um
interpretador, o que caracteriza as linguagens aglutinativas. Pipelines e shell
scripting são exemplos arquétipos de linguagens aglutinativas, e protótipos
rápidos de uma solução eventualmente implementada em uma linguagem
compilada também podem ser desenvolvidos com o uso dessas linguagens.
O uso da web explodiu em meados dos anos 1990, após o surgimento
dos navegadores gráficos, com o uso de documentos HTML completamente
estáticos, limitando rapidamente suas funções em relação às necessidades
dos usuários e das organizações. Isso foi parcialmente resolvido com o uso
de CGI (common gateway interface), que permitia aos documentos HTML
requisitarem a execução de programas no servidor, embora posteriormente
a computação com o uso de navegador tenha se tornado disponível com o
os applets Java e aperfeiçoada com a adição de novas tecnologias, sendo a
primeira o JavaScript, uma linguagem considerada aglutinativa inicialmente
(SEBESTA, 2011).
Existem algumas linguagens de script que são encapsuladas em páginas
HTML, como o JavaScript, que possibilita que os desenvolvedores mesclem
comandos com um conteúdo de um arquivo no formato HTML, atribuindo
características únicas e essenciais ao seu funcionamento, conforme alguns
exemplos apresentados no Quadro 1.
Linguagens de programação para scripts8
Py
th
on
PH
P
Ja
va
Sc
ri
pt
Pe
rl
Ca
ra
ct
e-
rí
st
ic
as
Li
ng
ua
ge
m
d
e
sc
rip
t
or
ie
nt
ad
a
a
ob
je
to
qu
e
co
m
bi
na
u
m
a
sin
-
ta
xe
c
on
ci
sae
c
la
ra
co
m
o
s r
ec
ur
so
s p
od
e-
ro
so
s d
e
su
a
bi
bl
io
te
ca
.
U
m
a
de
su
as
p
rin
ci
pa
is
ca
ra
ct
er
íst
ic
as
c
on
-
sis
te
e
m
p
er
m
iti
r a
fá
ci
l l
ei
tu
ra
d
o
có
di
go
em
p
ou
ca
s l
in
ha
s d
e
có
di
go
.
Li
ng
ua
ge
m
u
til
iz
ad
a
do
la
do
d
o
se
rv
id
or
d
e
fo
rm
a
em
bu
tid
a
ao
c
ód
ig
o
H
TM
L
e
pr
oj
et
ad
a
pa
ra
o
u
so
e
m
ap
lic
aç
õe
s w
eb
, i
nt
er
pr
e-
ta
do
n
o
se
rv
id
or
s
em
pr
e
qu
e
o
do
cu
m
en
to
H
TM
L
fo
r r
eq
ui
sit
ad
o
co
m
o
u
so
do
n
av
eg
ad
or
. E
m
pr
eg
ad
a
co
m
m
ai
or
fr
eq
uê
nc
ia
p
ar
a
de
se
nv
ol
ve
r a
pl
ic
aç
õe
s
no
s
er
vi
do
r e
tr
an
sf
or
m
ar
um
a
pá
gi
na
w
eb
e
m
u
m
a
ap
lic
aç
ão
.
Co
ns
id
er
ad
a
um
a
lin
gu
a-
ge
m
c
lie
nt
e,
é
u
til
iz
ad
a
pa
ra
ag
re
ga
r d
in
am
ism
o,
q
ua
li-
da
de
s e
st
ét
ic
as
e
p
er
m
iti
r a
in
te
ra
çã
o
do
u
su
ár
io
c
om
a
pá
gi
na
. E
st
á
vo
lta
da
p
ar
a
a
in
te
rf
ac
e
do
si
te
, e
n
ão
p
ar
a
a
co
m
un
ic
aç
ão
c
om
o
s
er
vi
-
do
r,
co
m
o
o
ca
so
d
o
PH
P.
A
ss
im
, t
od
os
o
s r
ec
ur
so
s
ac
es
sa
do
s p
el
o
us
uá
rio
e
st
ão
ar
m
az
en
ad
os
n
a
pr
óp
ria
pá
gi
na
.
In
ic
ia
lm
en
te
u
til
iz
ad
a
pa
ra
e
xt
ra
ir
in
fo
rm
aç
õe
s e
g
er
ar
re
la
tó
rio
s,
fu
nç
ão
pr
im
ár
ia
p
ar
a
a
qu
al
fo
i d
es
en
vo
lv
id
a,
a
Pr
at
ic
al
E
xt
ra
ct
io
n
Re
po
rt
L
an
gu
ag
e
(o
u
Li
ng
ua
ge
m
P
rá
tic
a
de
E
xt
ra
çã
o
e
Re
la
tó
rio
s),
p
as
so
u
a
se
r e
m
pr
eg
ad
a
pa
ra
o
ut
ra
s f
un
çõ
es
, a
pr
es
en
ta
nd
o
um
c
re
sc
im
en
to
si
gn
ifi
ca
tiv
o
de
sd
e
se
u
su
rg
im
en
to
. A
pe
sa
r d
e
se
a
ss
e-
m
el
ha
r a
u
m
a
lin
gu
ag
em
im
pe
ra
tiv
a
típ
ic
a,
p
or
s
er
s
em
pr
e
co
m
pi
la
da
a
o
m
en
os
p
ar
a
um
a
lin
gu
ag
em
in
te
rm
e-
di
ár
ia
, a
in
da
é
c
ha
m
ad
a
de
li
ng
ua
-
ge
m
d
e
sc
rip
tin
g.
Q
ua
dr
o
1.
E
xe
m
pl
os
d
e
lin
gu
ag
en
s d
e
sc
rip
t a
gl
ut
in
at
iv
as
(C
on
tin
ua
)
9Linguagens de programação para scripts
Py
th
on
PH
P
Ja
va
Sc
ri
pt
Pe
rl
Fu
nc
io
na
-
lid
ad
e
Te
m
ti
pa
ge
m
d
in
âm
ic
a
e
lin
gu
ag
em
d
e
al
to
n
í-
ve
l f
or
te
m
en
te
ti
pa
da
.
Po
r s
ua
s c
ar
ac
te
rís
ti-
ca
s,
é
pr
in
ci
pa
lm
en
te
ut
ili
za
da
e
m
a
tiv
id
ad
es
co
m
o
pr
oc
es
sa
m
en
to
de
te
xt
os
, d
ad
os
ci
en
tíf
ic
os
e
n
a
cr
ia
çã
o
de
p
ág
in
as
d
in
âm
ic
as
na
w
eb
.
O
c
ód
ig
o
PH
P
pr
od
uz
u
m
a
sa
íd
a
em
c
ód
ig
o
H
TM
L
su
bs
tit
ui
nd
o
o
do
cu
m
en
to
or
ig
in
al
. A
lé
m
d
iss
o,
te
m
um
a
ap
ar
ên
ci
a
sim
ila
r à
do
Ja
va
Sc
rip
t,
to
rn
an
do
o
có
di
go
d
in
âm
ic
o.
Ap
es
ar
d
e
um
in
te
rp
re
ta
do
r
Ja
va
Sc
rip
t e
st
ar
e
m
ba
rc
ad
o
em
m
ui
ta
s a
pl
ic
aç
õe
s,
é
us
ad
o
co
m
m
ai
or
fr
eq
uê
nc
ia
em
n
av
eg
ad
or
es
w
eb
, s
ob
re
-
tu
do
e
nv
ol
vi
do
e
m
d
oc
u-
m
en
to
s H
TM
L
co
nt
id
os
n
a
ta
g
<
s
c
r
i
p
t
>
d
en
tr
o
do
có
di
go
e
in
te
rp
re
ta
do
p
el
o
na
ve
ga
do
r v
al
id
an
do
o
s
da
do
s d
e
en
tr
ad
a
de
fo
rm
u-
lá
rio
s e
a
c
ria
çã
o
de
d
oc
u-
m
en
to
s H
TM
L
di
nâ
m
ic
os
.
At
ua
lm
en
te
, a
P
er
l,
ap
ós
to
da
s a
s
co
nt
rib
ui
çõ
es
p
ar
a
ap
er
fe
iç
oa
m
en
to
de
su
as
fu
nç
õe
s,
é
ut
ili
za
da
e
m
di
ve
rs
os
c
am
po
s,
co
m
o
ge
re
nc
ia
-
m
en
to
d
e
sis
te
m
as
, p
ro
ce
ss
am
en
to
gr
áf
ic
o,
a
ce
ss
o
e
co
nt
ro
le
d
e
ba
nc
o
de
d
ad
os
. E
ss
a
ev
ol
uç
ão
s
e
de
u
de
sd
e
qu
e
es
sa
li
ng
ua
ge
m
c
om
eç
ou
a
se
r u
sa
da
e
m
si
st
em
as
o
pe
ra
ci
o-
na
is
U
ni
x
co
m
a
s f
un
çõ
es
já
c
ita
da
s
at
rib
uí
da
s a
o
sis
te
m
a,
fu
nc
io
na
nd
o
co
m
o
um
a
im
po
rt
an
te
fe
rr
am
en
ta
d
e
ad
m
in
ist
ra
çã
o.
Q
ua
dr
o
1.
E
xe
m
pl
os
d
e
lin
gu
ag
en
s d
e
sc
rip
t a
gl
ut
in
at
iv
as
(C
on
tin
ua
çã
o)
(C
on
tin
ua
)
Linguagens de programação para scripts10
Py
th
on
PH
P
Ja
va
Sc
ri
pt
Pe
rl
Es
tr
ut
ur
a
É
co
m
po
st
a
po
r
su
a
di
vi
sã
o
e
m
co
m
an
do
s d
e
se
le
-
çã
o
(i
f
, e
l
s
e
, e
l
i
f
),
re
pe
tiç
ão
(f
o
r
,
w
h
i
l
e
),
va
riá
ve
is
de
c
la
ss
es
(c
l
a
s
s
),
co
-
m
an
do
s d
e
co
ns
tr
uç
ão
de
su
b-
ro
tin
as
(d
e
f
)
e
co
ns
tr
uç
ão
d
e
es
co
po
(w
i
t
h
),
ca
da
um
d
os
q
ua
is
co
m
u
m
ob
je
tiv
o
es
pe
cí
fic
o
de
nt
ro
d
o
có
di
go
pa
ra
o
tr
at
am
en
to
d
as
in
fo
rm
aç
õe
s.
O
s v
et
or
es
e
m
P
H
P
sã
o
fo
rm
ad
os
p
or
u
m
a
co
m
-
bi
na
çã
o
ba
se
ad
a
em
Ja
va
Sc
rip
t e
d
isp
er
sõ
es
e
m
Pe
rl;
o
su
po
rt
e
a
ob
je
to
s f
oi
ad
ic
io
na
do
à
su
a
se
gu
nd
a
ve
rs
ão
.
Tr
at
a-
se
d
e
um
a
lin
gu
ag
em
in
de
pe
nd
en
te
q
ue
n
ão
es
tá
a
tr
el
ad
a
a
um
si
st
em
a
op
er
ac
io
na
l o
u
so
ft
w
ar
e
es
pe
cí
fic
o;
p
el
o
fa
to
d
e
se
r
in
te
rp
re
ta
da
p
el
o
na
ve
ga
do
r,
é
la
rg
am
en
te
c
om
pa
tív
el
co
m
d
iv
er
so
s a
m
bi
en
te
s,
o
qu
e
ge
ra
lm
en
te
d
ep
en
de
so
m
en
te
d
o
na
ve
ga
do
r
so
br
e
o
qu
al
e
st
á
se
nd
o
ex
ec
ut
ad
o.
Ca
ra
ct
er
iz
a-
se
p
or
s
er
fo
rm
ad
a
po
r
va
riá
ve
is
es
ta
tic
am
en
te
ti
pa
da
s e
im
pl
ic
ita
m
en
te
d
ec
la
ra
da
s,
co
m
po
st
a
po
r t
rê
s e
sp
aç
os
d
e
no
m
es
d
ist
in
to
s
co
nf
or
m
e:
1.
to
d
os
os
n
om
es
d
e
va
riá
ve
is
de
cl
ar
ad
as
c
om
eç
am
c
om
c
ifr
ão
($
):
as
v
ar
iá
ve
is
sã
o
ut
ili
za
da
s c
om
o
pa
râ
m
et
ro
s q
ue
e
sp
ec
ifi
ca
m
v
al
or
es
de
fin
id
os
p
el
os
u
su
ár
io
s e
n
ão
e
st
ão
im
pl
íc
ito
s n
o
có
di
go
;
2.
to
do
s
os
n
om
es
d
e
ve
to
re
s
co
m
e-
ça
m
c
om
u
m
a
ar
ro
ba
(@
): j
á
os
v
et
o-
re
s e
m
P
er
l t
êm
ta
m
an
ho
d
in
âm
ic
o
e
po
de
m
c
re
sc
er
co
nf
or
m
e
o
ne
ce
s-
sá
rio
d
ur
an
te
a
e
xe
cu
çã
o.
V
et
or
es
po
de
m
se
r e
sp
ar
so
s,
co
nt
er
e
sp
aç
os
em
b
ra
nc
o
e
ou
tr
os
e
le
m
en
to
s;
Q
ua
dr
o
1.
E
xe
m
pl
os
d
e
lin
gu
ag
en
s d
e
sc
rip
t a
gl
ut
in
at
iv
as
(C
on
tin
ua
çã
o)
(C
on
tin
ua
)
11Linguagens de programação para scripts
Fo
nt
e:
A
da
pt
ad
o
de
S
eb
es
ta
(2
01
1)
.
Py
th
on
PH
P
Ja
va
Sc
ri
pt
Pe
rl
Es
tr
ut
ur
a
3.
to
do
s
os
n
om
es
d
e
di
sp
er
sõ
es
(h
as
he
s)
co
m
eç
am
c
om
si
na
l d
e
(%
):
os
v
et
or
es
d
en
om
in
ad
os
d
isp
er
sõ
es
em
P
er
l s
ão
a
ss
oc
ia
tiv
os
e
d
ef
in
em
um
a
es
tr
ut
ur
a
de
d
ad
os
e
m
fo
rm
a
de
t
ab
el
as
d
e
di
sp
er
sã
o
(h
as
h
ta
bl
es
),
in
de
xa
do
s p
or
c
ad
ei
a
e
qu
e
po
ss
ib
ili
ta
m
a
um
en
ta
r a
e
st
ru
tu
ra
co
nf
or
m
e
a
ne
ce
ss
id
ad
e.
Ex
em
pl
o
Pe
rm
ite
a
d
ef
in
iç
ão
d
e
al
gu
m
as
fu
nç
õe
s e
m
um
a
rq
ui
vo
si
m
pl
es
:
/
/
P
y
t
h
o
n
p
r
i
n
t
(
"
A
l
ô
m
u
n
d
o
"
)
<
?
p
h
p
e
c
h
o
"
O
l
á
,
M
u
n
d
o
!
"
;
?
>
p
u
b
l
i
c
c
l
a
s
s
p
ri
n
c
i
p
a
l
{
p
u
b
l
i
c
s
t
a
t
i
c
v
o
i
d
m
a
i
n
(
S
t
r
i
n
g
[
]
a
r
g
s
)
{
S
y
s
t
e
m
.
o
u
t
.
p
r
i
n
t
l
n
(
"
A
l
ô
M
u
n
d
o
!
"
)
;
}
p
r
i
n
t
"
A
l
ô
M
u
n
d
o
!
"
\
n
"
Q
ua
dr
o
1.
E
xe
m
pl
os
d
e
lin
gu
ag
en
s d
e
sc
rip
t a
gl
ut
in
at
iv
as
(C
on
tin
ua
çã
o)
Linguagens de programação para scripts12
A Figura 1 demonstra um exemplo descrito em Python.
Figura 1. Exemplo de script "alô mundo" — Python.
Fonte: Graser (2018, documento on-line).
Agora, veja o exemplo do mesmo código escrito em PHP e embutido no
código HTML do script na Figura 2.
Figura 2. Exemplo de script "alô mundo" — PHP.
O próximo exemplo, na Figura 3, demonstra o mesmo código escrito na
linguagem JavaScript.
13Linguagens de programação para scripts
Figura 3. Exemplo de script "alô mundo"
— JavaScript.
Fonte: Como escrever... ([201-?], documento on-line).
Além das linguagens aglutinativas demonstradas, outras duas linguagens
devem ser estudadas por serem utilizadas nos principais sistemas operacionais
atuais, como mostrado a seguir.
PowerShell
Baseado na linguagem de script e desenvolvido em .NET (O QUE É..., 2020b),
foi inicialmente um componente do Windows, mas posteriormente se tornou
um código multiplataforma de código aberto. Diferentemente das demais
linguagens de script do tipo aglutinativas, que atuam com fundamento em
interfaces de linha de comando, os cmdlets do PowerShell são projetados
para lidar com objetos.
Um objeto representa uma estrutura de informações que não apresentam
somente caracteres, mas também uma gama de informações extras que poderão
ser utilizadas quando necessário. Na Figura 4, por exemplo, o PowerShell é
utilizado para extrair informações especificas da BIOS de maneira direta.
Figura 4. Exemplo de uso do PowerShell no Windows.
Linguagens de programação para scripts14
Conforme a Microsoft (O QUE É..., 2020b), os cmdlets do PowerShell
podem ser combinados para executar tarefas complexas e fornecer acesso ao
sistema de arquivos do computador, como, entre outros recursos, armazena-
mento de dados, registros e repositórios.
Unix Shell Script
Primeira linguagem de script desenvolvida e implementada em um sistema do
tipo Unix, ficou conhecida como Bourne Shell (sh). Após o seu surgimento,
diversas outras linguagens de scripts baseadas no sh passaram a ser utilizadas,
como Korn Shell e DMERT Shell (OLIVEIRA, 2019). Em 1989, foi lançada a
linguagem que se tornou shell de login padrão em diversas distribuições
Linux: o GNU Bash ou simplesmente Bash. Atualmente, há vários programas
do tipo shell além das principais (sh e Bash), como ksh, zsh, csh e tcsh.
Job Control Language e shells
A Job Control Language (JCL) é uma linguagem que surgiu pouco após o
surgimento dos computadores, desenvolvida e utilizada inicialmente pela IBM
com a finalidade de fornecer instruções ao sistema operacional utilizado nos
seus mainframes, a fim de executar um programa em lote (CAMPOS, 2013).
De acordo com Ramey e Fox (2015), a sigla JCL também pode ser usada
genericamente para se referir a qualquer linguagem que realize as mesmas
funções e que tenham sido desenvolvidas por outras empresas, como a WFL,
da empresa Burroughs, ou a OCL, da ICL.
Portanto, a unidade básica considerada por essa linguagem de scripting é
o job (serviço), recurso que, de acordo com Kerrisk (2010), representa qual-
quer processo que possa ser monitorado e controlado de maneira simultânea
a outros processos, manipulados e executados em primeiro ou segundo plano
e alternados sempre que necessário — todos são controlados por meio do
terminal do sistema operacional por exemplo. Esses jobs são identificados
por ID (identificadores), que permitem que sejam localizados, suspendidos,
iniciados e reiniciados (KERRISK, 2010).
15Linguagens de programação para scripts
Na Figura 5, podemos observar um exemplo de Job Control em sistemas
Unix, em que se demonstra a verificação dos jobs (serviços) em execução,
se inicia o aplicativo Gimp em segundo plano, se verificam os processos em
andamento novamente e, na sequência, se pausa o Gimp utilizando o prompt
a partir do seu número de identificação; por último, altera-se o serviço para
ser executado em primeiro plano e o finaliza.
Figura 5. Exemplo de Job Control no Linux.
Fonte: Reis (2013, documento on-line).
Geralmente, o uso de linguagens de scripts como do Job Control possibilita
o redirecionamento da saída (>) e o encadeamento de comandos pipe (|), per-
mitindo seu emprego em conjunto. Em sistemas operacionais Linux, controle
de trabalhos (Job Control) é o controle, especialmente interativo, realizado por
um shell, em que todos os trabalhos e processos estão agrupados. Alguns
recursos básicos de controle de trabalho são a suspensão ou a finalização de
um grupo de recursos.
Linguagens de programação para scripts16
Considere que, antes da existência dos bancos de dados relacionais que permitem que
os dados sejam organizados em tabelas e se relacionem entre si, um usuário precisaria
criar um relatório constituído pelos passos listados a seguir.
� Selecionar determinados registros e copiá-los em um arquivo temporário.
� Utilizar outro programa para organizar esses dados a partir de critérios definidos.
� Organizar essas informações de forma que sejam facilmente lidas pelo usuário final,
filtrando e incluindo somente informações úteis.
Para essa tarefa, ele poderia usar um Job Control, seguindo todos os passos e al-
cançando o objetivo.
GUI scripting
Inicialmente, os sistemas operacionais e programas funcionavam com base
em uma interface de linha de comando. No entanto, com o surgimento das
interfaces gráficas, deu-se origem ao recurso GUI (interface gráfica do usuário/
graphical user interface), um tipo de interface que permite que o usuário inte-
raja com dispositivos digitais utilizando gráficos (O QUE É..., 2020a). Assim,
com o uso de uma interface baseada em GUI, o usuário consegue interagir
utilizando recursos de controle, como mouse e teclado, podendo selecionar
recursos e manipulá-los de maneira simplificada.
Para possibilitar esse controle, surgiu um tipo especializado de lingua-
gem de script, denominado GUI scripting, definido como uma linguagem
de script que utiliza o modo gráfico no lugar da linha de comando (O QUE
É..., 2020a). Essas linguagens interagem com os usuários pelo uso de janelas
gráficas, menus e botões, simulando qualquer ação necessária de maneira
automatizada e tendo como fonte o próprio usuário. Tais linguagens são
também chamadas de "macros" quando o controle se dá por meio de botões
pressionados ou cliques de mouse simulados, bem como ao tocar ou pressionar
uma tela ativada por toque.
Porém, na prática, o uso dessa linguagem é limitado por ser suportada
diretamente por uma aplicação específica e pelo sistema operacional, com
algumas poucas exceções. Ainda, algumas linguagens de script GUI se baseiam
no reconhecimento de objetos gráficos dos pixels de sua tela de exibição.
17Linguagens de programação para scripts
Linguagens de aplicações específicas
Muitos programas de grande aplicação incluem uma linguagem de script flexível
passível de adaptação conforme as necessidades do usuário e a aplicação a ser
utilizada. Assim, muitos sistemas desenvolvidos, como jogos de computador,
usam uma linguagem de script customizada, projetada e programada para uma
tarefa específica, dando vida ao ambiente do jogo (SOUZA JUNIOR et al., 2007).
Linguagens desse tipo são projetadas para uma simples aplicação, considerando
sempre um único propósito. Também pode ser considerada uma linguagem
de domínio específico diferente das linguagens de propósito geral, dedicada
à resolução de um problema particular. Seus principais exemplos são SQL e
HTML, além de serem consideradas uma linguagem de marcação, utilizadas
com o principal objetivo de construir as páginas web, estruturando seu conteúdo.
Linguagens de extensão/incorporadasTrata-se de linguagens utilizadas para controlar aplicações específicas, incor-
poradas a programas de aplicação, com a vantagem de transferir habilidades
da aplicação para a aplicação, e criadas para substituir algumas linguagens
de scripts em contextos específicos. A seguir, abordaremos alguns exemplos.
ECMAScript
Um exemplo de linguagem de extensão/incorporada é a JavaScript, ainda
considerada uma linguagem principalmente para scripting no desenvolvi-
mento de navegadores web, embora, com a padronização da linguagem como
ECMAScript (especificação de linguagem de programação baseada em script),
tenha se tornado popular como uma linguagem incorporada com propósitos
diversos (SEBESTA, 2011).
TCL
Linguagem de extensão criada para propósitos diversos em funções seme-
lhantes às das linguagens como Python, Perl e Ruby. Atualmente, é utilizada
em uma vasta gama de aplicações, sobretudo para a escrita de programas
com interface gráfica, em que geralmente se utiliza a sua extensão Tk Toolkit
(interface gráfica). Trata-se de uma linguagem dinâmica, de código open
source, executada frequentemente em diferentes sistemas operacionais, como
UNIX, Microsoft Windows e Mac OS X (MARKOS, 2008).
Linguagens de programação para scripts18
BAESSE, P. Linguagens de script e PHP. Santa Cruz: Instituto Federal de Educação, Ciência e
Tecnologia do Rio Grande do Norte, 2012. 17 p. (Notas de aula da disciplina Programação
Web). Disponível em: https://docente.ifrn.edu.br/pedrobaesse/disciplinas/programacao-
-web/material-de-aula/aula-02-linguagem-de-script/view. Acesso em: 30 jun. 2020.
BAZILIO, C. Linguagens de script. Rio das Ostras: Universidade Federal Fluminense, 2018.
15 p. (Notas de aula). Disponível em: http://www.ic.uff.br/~bazilio/cursos/lp/material/
LinguagensScript.pdf. Acesso em: 30 jun. 2020.
CAMPOS, C. J. E. JCL - Job control language: comandos, sintaxe, regras e procedimentos:
exemplos de programas e pensamentos. São Paulo: PerSe, 2013. 214 p.
COMO ESCREVER Seu Primeiro Programa em Java. wikiHow, Palo Alto, [201-?]. Dispo-
nível em: https://pt.wikihow.com/Escrever-Seu-Primeiro-Programa-em-Java. Acesso
em: 30 jun. 2020.
GRASER, A. PyQGIS 101: Hello world! Free and Open Source GIS Ramblings, Vienna, 2018.
Disponível em: https://anitagraser.com/pyqgis-101-introduction-to-qgis-python-pro-
gramming-for-non-programmers/pyqgis-101-hello-world/. Acesso em: 30 jun. 2020.
KERRISK, M. Linux programming interface: a Linux and UNIX system programming
handbook. San Francisco: No Starch Press, 2010. 1552 p.
MARKOS. A Linguagem Tcl/Tk. AL2A - Automação Livre para Laboratórios de Águas, [S. l.],
2008. Disponível em: http://c2o.pro.br/automacao/ar01s14.html. Acesso em: 30 jun. 2020.
MATOS, A. N. Shell script do zero. Metamorphose Linux, [S. l.], 2014. 55 p. (Apostila).
Disponível em: http://metamorphoselinux.net/Shell_Script_do_Zero.pdf. Acesso
em: 30 jun. 2020.
NEVES, J. C. Programação shell Linux. 8. ed. Rio de Janeiro: Brasport, 2010. 539 p.
O QUE É GUI? CanalTech, São Bernardo do Campo, 2020a. Disponível em: https://
canaltech.com.br/produtos/O-que-e-GUI/. Acesso em: 30 jun. 2020.
O QUE É o PowerShell? Microsoft Docs, Redmond, 22 maio 2020b. Disponível em:
https://docs.microsoft.com/pt-br/powershell/scripting/overview?view=powershell-7.
Acesso em:
OCCUPYTHEWEB. Linux basics for hackers: getting started with networking, scripting,
and security in Kali. San Francisco: No Starch Press, 2018. 248 p.
OLIVEIRA, M. Os 13 Melhores Shell para seu Linux ou Unix. Terminal Root, Londrina,
9 dez. 2019. Disponível em: https://terminalroot.com.br/2019/12/os-13-melhores-shell-
-para-seu-linux-ou-unix.html. Acesso em: 30 jun. 2020.
19Linguagens de programação para scripts
Os links para sites da web fornecidos neste capítulo foram todos testados, e seu fun-
cionamento foi comprovado no momento da publicação do material. No entanto, a
rede é extremamente dinâmica; suas páginas estão constantemente mudando de
local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade
sobre qualidade, precisão ou integralidade das informações referidas em tais links.
PERGHER, B. S.; AYMONE, J. L. F. Ambientes virtuais 3D interativos: utilizando Blender +
Blender4Web. Porto Alegre: Marcavisual, 2017. 253 p.
RAMEY, C.; FOX, B. Job control. In: RAMEY, C.; FOX, B. Bash 4.3 reference manual. [S. l.]:
Samurai Media, 2015. 174 p.
REIS, F. Controle de Tarefas no shell - comandos bg, fg, jobs. Bóson Treinamentos em
Tecnologia, [S. l.], 20 jun. 2013. Disponível em: http://www.bosontreinamentos.com.br/
linux/controle-de-tarefas-no-shell-comandos-bg-fg-jobs/. Acesso em: 30 jun. 2020.
SEBESTA, R. W. Conceitos de linguagem de programação. 9. ed. Porto Alegre: Bookman,
2011. 792 p.
SOUZA JUNIOR, E. et al. Utilização de linguagem de scripts em jogos. In: SEMINÁRIO
JOGOS ELETRÔNICOS, EDUCAÇÃO E COMUNICAÇÃO, 3., 2007, Campina Grande. Anais [...].
Campina Grande: Universidade Estadual da Paraíba, 2007. Disponível em: http://www.
comunidadesvirtuais.pro.br/seminario-jogos/files/mod_seminary_submission/traba-
lho_228/trabalho.pdf. Acesso em: 30 jun. 2020.
TABLELESS. O que são variáveis? Crie, manipule e use valores variáveis. Github, San
Francisco, 2017. Disponível em: https://tableless.github.io/iniciantes/manual/js/variaveis.
html. Acesso em: 30 jun. 2020.
Leituras recomendadas
GONÇALVES, L. M. G. Algoritmo e lógica de programação: conceitos de linguagens de
programação. Natal: Departamento de Engenharia de Computação e Automação,
Centro de Tecnologia, Universidade Federal do Rio Grande do Norte, 2004. 9 p. Dis-
ponível em: https://www.dca.ufrn.br/~lmarcos/courses/DCA800/pdf/linguagens.pdf.
Acesso em: 30 jun. 2020.
JARGAS, A. M. Shell script profissional. São Paulo: Novatec, 2008. 480 p.
Linguagens de programação para scripts20