Linguaggio di scripting: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
→Collegamenti esterni: Aggiunto il template "FOLDOC" |
||
(9 versioni intermedie di 6 utenti non mostrate) | |||
Riga 1:
[[File:JavaScript code.png|miniatura|Esempio di [[script]] in [[JavaScript]]|300x300px]]
Un '''linguaggio di scripting''', in [[informatica]], è un [[linguaggio di programmazione interpretato]] destinato in genere a compiti di automazione del [[sistema operativo]] (''[[batch]]'') o delle [[applicazione (informatica)|applicazioni]] (''[[Macro (informatica)|macro]]''), o a essere usato nella [[programmazione web]] all'interno delle [[pagine web]].<ref>{{cita web|url=http://www.insidevcode.eu/index.php/2015/01/14/linguaggi-di-scripting-ecco-qui-alcuni|titolo=Linguaggi di scripting: ecco qui alcuni|autore=Flavius Florin Harabor|sito=insidevcode.eu|data=14 gennaio 2015|accesso=21 febbraio 2015}}</ref> I [[programma (informatica)|programmi]] sviluppati con questi linguaggi vengono detti ''[[script]]'', termine della [[lingua inglese]] utilizzato in ambito teatrale per indicare il [[sceneggiatura|copione]] (anche detto canovaccio) in cui sono tracciate le parti che devono essere interpretate dagli attori. Un linguaggio di ''scripting'' è un linguaggio di programmazione per un [[Run-time system|sistema runtime]] che automatizza l'esecuzione di compiti che altrimenti verrebbero eseguiti individualmente da un operatore umano<ref>{{Cita web|url=
== Storia ==
Riga 12 ⟶ 13:
Per la diffusione di questi linguaggi furono di fondamentale importanza linguaggi come [[Tcl]] e [[Lua]], specificatamente sviluppati come linguaggi di ''scripting'', che potevano essere integrati in qualsiasi applicazione o utilizzati autonomamente. Lo sviluppo di questi linguaggi comportò maggiori benefici rispetto alla creazione di nuovi linguaggi per applicazioni specifiche, evitando allo sviluppatore di dover scrivere un traduttore di linguaggio e permettendo all'utente di applicare le proprie capacità acquisite.
Il [[Common Gateway Interface]] (CGI) permise ai linguaggi di ''scripting'' di controllare i [[server web|web server]], così da comunicare tramite il [[World Wide Web|web]]. Alcuni dei linguaggi di ''scripting'' che usavano il CGI agli albori dell'evoluzione del web furono [[Perl]], [[Active Server Pages|ASP]], e [[PHP]].
Molti sono i software che integrano linguaggi di scripting. Ad esempio i moderni web [[browser]] sono provvisti di un linguaggio per la scrittura di estensioni al browser stesso, e molti altri linguaggi standard per controllare il browser, come [[ECMAScript]] (comunemente conosciuto come [[JavaScript]]), [[CSS]], e [[HTML]].
== Descrizione ==
Consistono generalmente in semplici programmi il cui scopo è l'interazione con altri programmi, molto più complessi, in cui avvengono le operazioni più significative. Gli
Nei linguaggi di ''scripting'' il [[programmatore]] generalmente si disinteressa delle
In questo modo si evitano molti problemi tipici della programmazione tradizionale, che risulta essere soggetta a errori insidiosi, non facilmente individuabili e pericolosi, e costringe inoltre il programmatore
== Tipologia ==
===I job control language===
{{vedi anche|Job Control Language}}
I primi sistemi informatici, tipicamente [[mainframe]], erano destinati all'utilizzo da parte di più utenti (multiutenza) che potevano usufruire delle risorse del calcolatore mediante la disciplina [[fifo]] tipica dei sistemi
|1=http://www.dmi.unict.it/~fondinfo/slidy/fdi-2009/fdi_l09/it/fdi_l09.html#(2)
|titolo=Evoluzione dei sistemi operativi
Riga 41 ⟶ 42:
* Memoria richiesta.
* Periferiche [[input/output]] da utilizzare.
* Parametri e nome dei dati.
Per questo scopo nacquero i primi linguaggi di ''scripting'' della storia, i [[Job control language]] (abbreviato JCL).<ref>{{cita web
|http://www.simotime.com/jclone01.htm
|titolo=JCL Quick Reference
Riga 54 ⟶ 55:
===Bash scripting===
{{vedi anche|Bash}}
Con il termine [[Bash]] ''scripting'' ci si riferisce alla creazione di
|http://www.pluto.it/files/ildp/guide/abs/part1.html
|titolo=Guida avanzata di scripting Bash (introduzione)
Riga 61 ⟶ 62:
}}</ref>
Su alcuni sistemi come Linux è possibile pianificare l'esecuzione degli ''script'', ad esempio è possibile eseguire alcuni
Ecco un esempio di
<syntaxhighlight lang=bash>▼
# Cleanup▼
# Da eseguire come root, naturalmente.▼
▲<syntaxhighlight lang="bash" line="1">
#!/bin/bash
cd /var/log
cat /dev/null > messages
cat /dev/null > wtmp
echo "Log cancellati."
exit 0
</syntaxhighlight>
=== GUI
Con l'avvento delle [[interfaccia grafica|interfacce grafiche]] nasce una tipologia di linguaggi di scripting mirati al controllo del computer. Questi linguaggi interagiscono con le finestre grafiche, i menu, i bottoni e gli oggetti grafici che il sistema genera, simulando le azioni che farebbe un utente umano. Il loro scopo è quello di automatizzare le azioni dell'utente. I linguaggi in cui il controllo avviene attraverso la pressione di tasti o click del mouse sono anche chiamati
Questa categoria di linguaggi doveva inizialmente essere usata per controllare tutte le applicazioni eseguibili su un computer basato su interfacce grafiche; ma, in pratica, il supporto per questi linguaggi dipende dalle [[applicazione (informatica)|applicazioni]] e dal [[sistema operativo]]. Tuttavia ci sono alcune eccezioni a questa limitazione. Alcuni linguaggi di scripting relativi alle GUI sono basati sul riconoscimento degli oggetti grafici dai loro [[pixel]] sullo schermo; essi non dipendono dal sistema operativo o dall'applicazione.
Riga 82 ⟶ 84:
Molti programmi includono un linguaggio di scripting idiomatico adattato al bisogno dell'utente.
Allo stesso modo, alcuni [[Videogioco|videogiochi]] per il computer utilizzano un linguaggio di scripting per estendere le azioni di personaggi secondari e dell'ambiente. Linguaggi di questo tipo sono sviluppati per una singola applicazione; e, anche se possono assomigliare
|http://ouns.nexuizninjaz.com/dev:quakec
|titolo= QuakeC
|lingua=en
|accesso=13 marzo 2010
}}</ref>, hanno caratteristiche personali che li distinguono da essi. [[Emacs Lisp]], un dialetto di [[Lisp]]
===Web browser===
[[File:Scriptwikip.jpg
I Web Browser sono applicazioni per la visualizzazione delle pagine web. Sono stati sviluppati una serie di linguaggi speciali per controllarne operazioni e funzionalità. Fra questi compaiono [[JavaScript]], il cui nome può trarre in inganno per la sua apparente derivazione da [[java (linguaggio di programmazione)|Java]] (in realtà i due linguaggi non hanno quasi nulla in comune); [[VBScript]] prodotto dalla [[Microsoft]], che lavora solo con il browser [[Internet Explorer]]; [[XML User Interface Language|XUL]] prodotto dal progetto [[Mozilla]], che lavora solamente con [[Mozilla Firefox|Firefox]]; [[XSLT]], un particolare linguaggio che trasforma il contenuto [[XML]] in una nuova forma.<ref>{{cita web
|1=http://users.libero.it/giudio/tech/script.html
|accesso=12 marzo 2010
Riga 103 ⟶ 105:
===Web server===
Dal [[lato server]] del link [[Hypertext Transfer Protocol|HTTP]], gli ''[[Application server|application]]'' [[Application server|server]] e altri server a contenuto dinamico come il ''[[content management system]]'' (sistema di gestione dei contenuti), forniscono i contenuti attraverso una grande varietà di tecniche e tecnologie caratterizzate dall'approccio di scripting. Particolarmente predominanti in questo campo sono [[PHP]], [[JavaServer Pages|JSP]] e [[Active Server Pages|ASP]], ma altri linguaggi come [[Ruby (linguaggio di programmazione)|Ruby]] e [[Python]], diventati molto conosciuti soprattutto grazie ai loro famosi framework (rispettivamente [[Ruby on Rails]] e [[Django (informatica)|Django]]), si sono ritagliati il loro spazio.
===Linguaggi per l'elaborazione di testi===
L'elaborazione dei documenti di testo fu una delle prime applicazioni dei linguaggi di scripting.
[[Perl]] fu originariamente designato per colmare le limitazioni di questi strumenti, ma è cresciuto diventando uno dei più diffusi linguaggi di uso generico.
Riga 113 ⟶ 115:
===Linguaggi dinamici generici===
Alcuni linguaggi, come il [[Perl]], cominciarono come linguaggi di
===Linguaggi estensioni/incorporati===
Riga 121 ⟶ 123:
[[Tcl]] fu creato come un linguaggio d'estensione da utilizzare in parallelo come un linguaggio di uso generale, emulando il ruolo di linguaggi come [[Python]], [[Perl]] e [[Ruby (linguaggio di programmazione)|Ruby]].
Altre applicazioni complesse e destinate
|titolo=Python e Blender
|lingua=en
Riga 127 ⟶ 129:
}}</ref>
Altri tipi di applicazioni che necessitano l'aggiunta di veloci funzionalità o cicli di ottimizzazioni (ad esempio un [[motore grafico]]), usano anch'esse linguaggi integrati. Durante lo sviluppo, permette ai prototipi di essere modificati in modo facile e veloce, senza forzare l'utente
== Linguaggi diffusi ==
Secondo un sondaggio globale, svolta dalla EvansData nel 2008,<ref>{{cita web
|lingua=en
|accesso=13 marzo 2010
|titolo=The State of the Scripting Universe
|dataarchivio=22 novembre 2008
|urlarchivio=https://web.archive.org/web/20081122105345/http://www.cio.com/article/446829/
|urlmorto=sì
}}</ref> il più famoso linguaggio di scripting è il [[JavaScript]], al secondo posto il [[PHP]], mentre [[Perl]] si aggiudica il terzo posto.
{{Div col|cols=3}}
Riga 196 ⟶ 201:
==Altri progetti==
{{interprogetto|preposizione=sul}}
==Collegamenti esterni==
* {{Collegamenti esterni}}
* {{FOLDOC|scripting language|scripting language}}
* {{cita web|http://ennebi.solira.org/linprog/pag12.html|linguaggi di scripting nel web}}
* {{cita web | 1 = http://www.pluto.it/files/ildp/guide/abs/index.html | 2 = Guida avanzata di scripting Bash | accesso = 12 marzo 2010 | urlarchivio = https://web.archive.org/web/20101229052846/http://www.pluto.it/files/ildp/guide/abs/index.html | dataarchivio = 29 dicembre 2010 | urlmorto = sì }}
|