Linguaggio di scripting

Uno scripting o linguaggio di script è un linguaggio di programmazione che supporta gli script. Gli script sono di solito brevi programmi per computer che fanno dei passi che possono essere fatti uno alla volta da una persona. Questo automatizza un lavoro per renderlo più facile e più affidabile. Un linguaggio di scripting è spesso un linguaggio più semplice e più facile da imparare rispetto ad altri linguaggi, ma può comunque fare molte cose.

Gli script possono essere eseguiti all'interno di un altro programma, come in un browser web o in Microsoft Excel. Possono anche essere una shell che funziona da un'interfaccia a riga di comando ed effettua chiamate al sistema operativo (OS). La shell è considerata interattiva - l'utente può scegliere cosa digitare e la shell risponde al comando. Queste possono essere usate per controllare i lavori sui mainframe e sui server.

Alcuni dicono che un linguaggio di scripting deve essere legato ad un uso specifico. Altri usano una definizione più ampia e includono linguaggi di programmazione generici che vengono interpretati, non compilati. General-purpose significa che può essere usato in molti modi per cose diverse. Alcuni linguaggi generici (come Java) hanno varianti che possono essere scriptate (Javascript). Non c'è una regola specifica su cosa sia o non sia un linguaggio di scripting.

Esempi

Alcuni esempi comuni di linguaggi di scripting:

  • Bash e C shell, come linguaggi di controllo per i sistemi operativi Unix o Unix-like
  • Gli script che girano all'interno di un'altra applicazione sono chiamati linguaggi di estensione. I browser web consentono diversi tipi di script, tra cui ECMAScript (JavaScript) o XUL. Ad esempio, la home page di Google utilizza JavaScript. Visual Basic for Applications è utilizzato all'interno di Microsoft Office. Lua è un linguaggio creato appositamente come linguaggio di estensione e può essere utilizzato all'interno di molte applicazioni.
  • I giochi che hanno estensioni di scripting includono il mondo virtuale di Second Life e i simulatori di Trainz Railroad. In altri giochi come Wesnoth, la varietà di giochi reali sono script scritti da altri utenti.
  • Lingue di elaborazione del testo sed e AWK
  • Uso generale: Perl, Tcl e Python sono linguaggi di programmazione di alto livello (più vicini al linguaggio umano che al codice macchina) che possono essere usati per molte cose diverse. Alcuni di questi linguaggi sono stati prima fatti per un uso particolare, e poi sono stati cambiati in linguaggi di uso generale.

Caratteristiche

La maggior parte dei linguaggi di scripting sono fatti per essere facili da imparare. Spesso possono essere sia brevi file con codice sorgente, sia inseriti un comando alla volta in un'interfaccia a riga di comando, che ha un ciclo di lettura-eval-print (REPL, language shell). Questo di solito significa un semplice insieme di comandi. Potrebbe non esserci una funzione o una principale, ma solo un ciclo dall'inizio alla fine. Se qualcosa non funziona, un programmatore può fare rapidi cambiamenti ed eseguirlo di nuovo. Questo rende un linguaggio di scripting utile per realizzare un prototipo rapido per vedere se un'idea funziona.

Per esempio, la maggior parte delle persone non chiama Java un linguaggio di scripting, a causa della sua lunga sintassi e delle regole su quali classi esistono in quali file e perché Java non può essere eseguito in modo interattivo in una REPL. Ha bisogno di file con codice sorgente, e possono contenere solo definizioni che devono essere usate da un'applicazione host o da un lanciatore di applicazioni. (Java non è lo stesso di JavaScript).

Ma Python permette delle scelte - le funzioni possono essere messe in un file, può essere eseguito senza funzioni e utilizzare lo stile di programmazione imperativo, o anche utilizzarlo in modo interattivo (digitare ed eseguire una riga alla volta).

stampa ("Ciao Mondo")

Questa linea di codice Python stampa "Hello World"; non è necessaria alcuna funzione main() o altro.

Un linguaggio di scripting viene solitamente interpretato dal codice sorgente o dal bytecode. Tuttavia, qualcosa deve eseguire lo script (interpretarlo) in modo che il computer lo capisca. Questa è un'applicazione, o qualcosa nel sistema operativo. Spesso è scritto in un linguaggio compilato e distribuito in forma di codice macchina (come un eseguibile che non ha senso per gli esseri umani).

I linguaggi di scripting possono essere progettati per essere utilizzati dalle persone che utilizzano un programma - sviluppo dell'utente finale. Altre volte possono essere costruiti dai programmatori per il loro uso personale. I linguaggi di scripting spesso usano l'astrazione, una forma di nascondere le informazioni. Ciò significa che gli utenti non hanno bisogno di conoscere i dettagli dei tipi di variabili, della memorizzazione dei dati e della gestione della memoria.

Gli script sono spesso realizzati o modificati da chi li esegue, ma alcuni sono condivisi o venduti ad altri. Ad esempio, quando grandi parti dei giochi sono scritte in un linguaggio di scripting. A volte uno script può essere compilato prima che altri lo utilizzino. Una volta compilato, viene eseguito più velocemente e non ha bisogno di un'altra applicazione per essere eseguito. E questo impedisce agli utenti finali di cambiare il codice.

Storia

I primi computer mainframe (negli anni '50) non erano interattivi, ma utilizzavano script memorizzati in file batch. Il Job Control Language (JCL) di IBM è l'esempio comune di un linguaggio di scripting utilizzato per controllare l'elaborazione in batch.

Le prime conchiglie interattive sono state realizzate negli anni '60 per aiutare il funzionamento a distanza dei primi sistemi di time-sharing. Queste utilizzavano script di shell, che possono eseguire programmi per computer all'interno di un programma per computer, la shell. A Calvin Mooers nel suo linguaggio TRAC viene generalmente attribuito il merito di aver inventato la sostituzione dei comandi. Questo permette ai comandi di cambiare lo script (codice auto-modificante). Multics chiama queste funzioni attive. Louis Pouzin scrisse un primo processore per script di comando chiamato RUNCOM per CTSS intorno al 1964. Stuart Madnick al MIT scrisse un linguaggio di scripting per il CP/CMS di IBM nel 1966. Inizialmente chiamò questo processore COMMAND, più tardi chiamato EXEC. Multics includeva una ramificazione del CTSS RUNCOM, chiamato anche RUNCOM. EXEC fu infine sostituito da EXEC 2 e REXX.

Lingue come Tcl e Lua sono state create fin dall'inizio per essere linguaggi di scripting di uso generale che potevano essere inseriti in qualsiasi applicazione. Altri linguaggi come Visual Basic for Applications (VBA) potevano fare molto di più, ma dovevano funzionare solo con alcune applicazioni. L'uso di un linguaggio di scripting generico invece di creare un nuovo linguaggio per ogni applicazione di solito rende più facile sia per la persona che scrive l'applicazione che per l'utente che scrive gli script.

Tipi di linguaggi di scripting

Lingue della colla

Lo scripting viene talvolta utilizzato per collegare diverse applicazioni. Questo è chiamato glue code, e un linguaggio fatto proprio per questo scopo è un linguaggio colla. Le pipeline e lo shell scripting sono esempi comuni di linguaggi colla. Ma se molta logica è scritta in un file di script, è meglio pensarla semplicemente come un'altra applicazione software, non come "glue".

I linguaggi a colla sono particolarmente utili per la scrittura e la manutenzione:

  • comandi personalizzati per una shell di comando;
  • programmi più piccoli di quelli che sono meglio implementati in un linguaggio compilato;
  • programmi "wrapper" che fanno alcune cose automatizzate prima o dopo l'esecuzione di un'applicazione come un foglio di calcolo, un database, un compilatore, ecc;
  • script che possono cambiare spesso;

Incolla esempi di linguaggio:

  • AppleScript
  • awk
  • JCL
  • Lua
  • m4
  • Perl
  • Script di Unix Shell (ksh, csh, bash, sh e altri)
  • VBScript
  • Linguaggio del flusso di lavoro
  • Windows PowerShell
  • XSLT

I dispositivi come le calcolatrici programmabili possono anche avere i loro linguaggi a colla. Ad esempio, la Texas Instruments TI-92, per impostazione predefinita di fabbrica, può essere programmata con un linguaggio di script di comando. La calcolatrice TI-NSpire capisce il linguaggio Lua. Altri capiscono un qualche tipo di linguaggio di base, o forse Lisp o qualcos'altro.

Linguaggi di controllo del lavoro e conchiglie

Questo gruppo è nato dall'automazione del controllo del lavoro, che riguarda l'avvio e il controllo del comportamento dei programmi di sistema, a partire dal JCL di IBM. Molti interpreti di queste lingue lavorano anche come interpreti a riga di comando, come la shell Unix o il MS-DOS COMMAND.COM. Altri, come AppleScript, offrono l'uso di comandi in inglese per costruire script.

Scrivere l'interfaccia grafica (GUI)

Quando si costruiscono interfacce utente grafiche, è necessario un modo per testarle. Sono stati realizzati linguaggi di scripting specializzati per controllare finestre grafiche, menu, pulsanti e così via, proprio come farebbe un utente umano. Molte volte, questi possono essere usati per copiare esattamente ciò che una persona fa (muovendo il mouse, cliccando o digitando su una tastiera). Questa azione o insieme di azioni che viene copiata e ricordata si chiama macro.

Lingue specifiche per l'applicazione

Molte applicazioni di grandi dimensioni includono un linguaggio di scripting costruito proprio per quell'applicazione. L'applicazione può essere un gioco o un programma di business. Questo tipo di linguaggio è fatto per una singola applicazione. Fanno sembrare un linguaggio generico (ad esempio QuakeC, modellato secondo il modello C), hanno caratteristiche personalizzate che li distinguono.

Estensione / lingue collegabili

Questo è come un linguaggio di scripting specifico per un'applicazione, in quanto controlla un'applicazione, ma il linguaggio può essere utilizzato in molte applicazioni.

JavaScript è iniziato come linguaggio per lo scripting all'interno dei browser web; ma ora è un linguaggio general-purpose embeddable. Viene utilizzato anche nei prodotti Adobe, ad esempio.

Alcune lingue passano da un tipo all'altro nel tempo, di solito perché aggiungono la capacità di fare più cose.

Domande e risposte

D: Che cos'è un linguaggio di scripting?


R: Un linguaggio di scripting o script è un linguaggio di programmazione che supporta gli script.

D: Cosa sono gli script?


R: Gli script sono solitamente brevi programmi informatici che eseguono operazioni che potrebbero essere svolte una alla volta da una persona.

D: Perché gli script sono utili?


R: Automatizzano un lavoro per renderlo più facile e affidabile.

D: Un linguaggio di scripting è difficile da imparare?


R: Un linguaggio di scripting è spesso un linguaggio più semplice e più facile da imparare rispetto ad altri linguaggi, ma può comunque fare molte cose.

D: Dove possono essere eseguiti gli script?


R: Gli script possono essere eseguiti all'interno di un altro programma, come in un browser web o in Microsoft Excel.

D: Che cos'è una shell nei linguaggi di scripting e come si usa?


R: Può anche trattarsi di una shell che viene eseguita da un'interfaccia a riga di comando ed effettua chiamate al sistema operativo (OS). La shell è considerata interattiva - l'utente può scegliere cosa digitare e la shell risponde al comando. Queste possono essere utilizzate per controllare i lavori su mainframe e server.

D: Un linguaggio di uso generale può essere un linguaggio di scripting?


R: Alcuni sostengono che un linguaggio di scripting deve essere legato ad un uso specifico. Altri utilizzano una definizione più ampia e includono i linguaggi di programmazione di uso generale che sono interpretati, non compilati. Per uso generale si intende che può essere utilizzato in molti modi per cose diverse. Alcuni linguaggi di uso generale (come Java) hanno delle varianti che possono essere scriptate. Non esiste una regola specifica su cosa sia o non sia un linguaggio di scripting.

AlegsaOnline.com - 2020 / 2023 - License CC3