Domanda

Che cosa fa di una lingua una lingua scripting?Ho sentito alcune persone dire "quando viene interpretato anziché compilato".Che vorresti fare in PHP (per esempio) un linguaggio di scripting.È che l'unico criterio?O ci sono altri criteri?

Vedere anche:

È stato utile?

Soluzione

Un linguaggio di scripting è un linguaggio che "script" altre cose da fare roba.L'obiettivo primario non è principalmente costruzione di proprie applicazioni in modo molto come ottenere un'applicazione esistente per agire nel modo desiderato, ad es.JavaScript per i browser, VBA per MS Office.

Altri suggerimenti

Semplice.Quando lo uso, è un linguaggio dinamico, quando lo si utilizza, si tratta semplicemente di un linguaggio di scripting!

Tradizionalmente, quando si parla di differenza sugli script di contro programmazione, script, interpretato e programmi vengono compilati.Una lingua può essere eseguita in modi diversi, interpretati e compilati in bytecode o codice macchina).Questo non rende una lingua l'uno o l'altro.

In alcuni occhi, il modo in cui si utilizzare un linguaggio rende un linguaggio di scripting (ad esempio, gli sviluppatori di giochi che sviluppano principalmente in C++ si script gli oggetti in Lua).Di nuovo, le linee sono sfocate - una lingua che può essere utilizzato per una programmazione da parte di una persona e la stessa lingua può essere utilizzato per il linguaggio di scripting da un altro.

Questo è il wikipedia articolo su linguaggi di scripting:

Un linguaggio di scripting, linguaggio di script o di estensione del linguaggio è un linguaggio di programmazione che permette il controllo di una o più applicazioni software."Script" sono distinti dal codice di base dell'applicazione, in quanto sono di solito scritti in una lingua diversa e sono spesso creati o almeno modificato dall'utente finale.Gli script sono spesso interpretati dal codice sorgente o bytecode, mentre le applicazioni di controllo sono tradizionalmente compilato in codice macchina nativo.I linguaggi di Scripting sono quasi sempre integrati in applicazioni di controllo.

Si noti l'utilizzo di "di solito", "spesso", "tradizionalmente" e "quasi sempre" - questi tutti ti dicono che non c'è no set di attributi distinti che fanno di un linguaggio specifico di un "linguaggio di scripting".

"Uno script è quello che ti danno gli attori.Un programma è quello che vi darà la pubblico". -- Larry Wall

Io davvero non credo che c'è molto di una differenza di qualsiasi altro.Il cosiddetto "scripting" le lingue sono spesso compilato -- solo molto rapidamente, e in fase di runtime.E alcuni di "programmazione" lingue sono più ulteriormente sono compilati in fase di esecuzione, come pure (penso di JIT) e la prima fase di "compilazione" è il controllo della sintassi e delle risorse risoluzione.

Non ottenere appeso su di esso, non è davvero importante.

La mia definizione sarebbe una lingua che è distribuito in genere come fonte piuttosto che come un binario.

C'è un sacco di risposte possibili a questa.

Primo:non è davvero una questione di differenza tra un linguaggio di scripting e di un linguaggio di programmazione, perché un linguaggio di scripting è un linguaggio di programmazione.È più una questione di quali caratteristiche lo rendono un qualche linguaggio di programmazione un linguaggio di scripting, mentre un altro linguaggio di programmazione non è un linguaggio di scripting.

Secondo:è davvero difficile dire che cosa è un XYZ lingua, sia che XYZ essere "script", "programmazione funzionale", "programmazione object-oriented" o quello che hai.La definizione di "programmazione funzionale" è, è abbastanza chiaro, ma nessuno sa cos'è un linguaggio di programmazione funzionale" è.

La programmazione funzionale o di programmazione object-oriented per la programmazione stili;si può scrivere in uno stile funzionale o uno stile orientato agli oggetti in quasi tutte le lingue.Per esempio, Linux Virtual File System Interruttore e il Driver di Linux Modello fortemente orientato all'oggetto, nonostante scritti in C, mentre un sacco di Java o C# codice che vedi sul web è molto procedurali e non object-oriented a tutti.OTOH, ho visto alcuni pesantemente funzionale di codice Java.

Così, se la programmazione funzionale e di programmazione object-oriented sono solo gli stili che può essere fatto in qualsiasi la lingua, quindi come si fa a definire un "linguaggio di programmazione object oriented"?Si potrebbe dire che un linguaggio di programmazione object oriented è un linguaggio che permette di programmazione object-oriented.Ma non è tanto di una definizione: tutti lingue permettono di programmazione object-oriented, quindi tutti le lingue sono orientati agli oggetti?Quindi, direte voi, beh un linguaggio orientato agli oggetti, se le forze di programmazione in uno stile orientato agli oggetti.Ma non è molto più di una definizione, sia: tutti lingue consentire la programmazione funzionale, quindi no linguaggio orientato agli oggetti?

Quindi, per me, ho trovato la seguente definizione:

Un linguaggio è un linguaggio di scripting (object-oriented language / lingua funzionale) se entrambi

  • facilita scripting (object-oriented programming / programmazione funzionale), cioènon solo permette ma rende facile e naturale e contiene caratteristiche che aiuto con esso, E
  • incoraggia e guide verso di scripting (programmazione orientata agli oggetti / programmazione funzionale).

Così, dopo cinque paragrafi, sono arrivato a:"un linguaggio di scripting è un linguaggio di scripting".Che grande definizione.NON.

Ovviamente, abbiamo bisogno di guardare la definizione di "scripting".

Questo è dove il terzo problema è disponibile in:considerando che il termine "programmazione funzionale" è ben definito ed è solo il termine "linguaggio di programmazione funzionale" che è problematico, purtroppo con gli script, entrambi il termine "esecuzione script" e il termine "linguaggio di scripting" sono mal definiti.

Bene, in primo luogo di scripting è programmazione.E ' solo un particolare tipo di programmazione.IOW:ogni script è un programma, ma non ogni programma è uno script;l'insieme di tutti gli script è un sottoinsieme proprio dell'insieme di tutti i programmi.

A mio personale parere, la cosa che rende di scripting scripting e la distingue da altri tipi di programmazione, è che ...

Script in gran parte manipolare gli oggetti che

  • non sono stati creati dallo script,
  • hanno una durata di vita indipendente di script e
  • vivere al di fuori del dominio di script.

Inoltre, i tipi di dati e algoritmi utilizzati sono generalmente definiti dalla sceneggiatura, ma dall'ambiente esterno.

Pensare ad uno script di shell:gli script di shell, di solito manipolare i file, cartelle e processi.La maggior parte dei file, cartelle e processi nel sistema non sono stati probabilmente creato dallo script attualmente in esecuzione.E non svaniscono quando esce dallo script:la loro vita è completamente indipendente di script.E non sono realmente parte della sceneggiatura, sia, sono parte del sistema.Non iniziare il vostro script scrivendo File e Directory classi, quei tipi di dati sono nessuno di tuo interesse:basta assumere ci sono, e non si sa nemmeno (e non si bisogno per sapere) come funzionano.E non implementare i propri algoritmi, sia, ad esempio,per l'attraversamento delle directory, è possibile utilizzare solo la find invece di implementare il proprio breadth-first-search.

In breve:un copione che si attacca a un sistema più grande che esiste in modo indipendente dello script, manipola qualche piccola parte del sistema e poi esce.

Che sistema più grande può essere il sistema operativo in caso di uno script di shell, DOM del browser in caso di script del browser, un gioco (ad es.World of Warcraft con il Lua o Seconda Vita con il Linden Scripting Language), un'applicazione (ad es.il linguaggio AutoLisp per AutoCAD o Excel/Word/Office macro), un web server, un pacchetto di robot o qualcosa di completamente diverso.

Si noti che lo script aspetto è completamente ortogonale a tutti gli altri aspetti dei linguaggi di programmazione:un linguaggio di scripting può essere fortemente o debolmente tipizzato, strettamente o liberamente tipizzato staticamente o dinamicamente tipizzati, dimensioni nominali, strutturalmente o di anatra digitato, diamine può essere anche non tipizzato.Può essere necessario o funzionale, object-oriented, procedurali o funzionale, oggettiva o pigro.Le sue implementazioni possono essere interpretati e compilati o mista.

Per esempio, Mondrian è strettamente fortemente staticamente tipizzato pigro funzionale linguaggio di scripting con un compilato attuazione.

Tuttavia, tutto questo è irrilevante, perché il modo in cui il termine linguaggio di scripting è davvero utilizzato nel mondo reale, non ha nulla a che fare con una qualsiasi delle sopra.E ' più spesso utilizzato semplicemente come un insulto, e la definizione è piuttosto semplice, anche semplicistico:

  • reale linguaggio di programmazione:il mio linguaggio di programmazione
  • linguaggio di scripting:il linguaggio di programmazione

Questo sembra essere il modo in cui il termine è più spesso utilizzato.

È come il porno, sai quando lo vedi.L'unica possibile definizione di un linguaggio di script è:

A language which is described as a scripting language.

Un po ' circolare, non è vero?(A proposito, non sto scherzando).

Fondamentalmente, non c'è nulla che fa di una lingua una lingua scripting, tranne che si chiama così, soprattutto dai suoi creatori.Il maggiore di tutti i moderni linguaggi di scripting è il PHP, Perl, JavaScript, Python, Ruby e Lua.Tcl è il primo grande moderno linguaggio di scripting (non era il primo linguaggio di scripting, però, ho dimenticato quello che è, ma sono stato sorpreso di apprendere che essa ha anticipato Tcl).

Ho descrivono le caratteristiche delle principali linguaggi di scripting in la mia carta:

 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)

La maggior parte sono dinamicamente tipizzati e interpretato, e la maggior parte non hanno definito la semantica al di fuori della loro implementazione di riferimento.Tuttavia, anche se la loro implementazione principali diventa compilato o JITed, che non cambia la "natura" della lingua.

Sono rimasti solo domanda è come si può dire se un nuovo linguaggio è un linguaggio di scripting.Beh, se si chiama un linguaggio di scripting, è uno.Così Fattore di è un linguaggio di scripting (o almeno era quando è stato scritto), ma, per dire, Java non è.

"Linguaggio di Scripting" è uno di quei concetti fuzzy che può significare molte cose.Di solito si riferisce al fatto che esiste un processo di un passo dai il codice sorgente per l'esecuzione.

Per esempio in Perl che si fa: perl my_source.pl

Dato i criteri di cui sopra PHP è un linguaggio di scripting (anche se si può avere una "compilation" di processo, per esempio quando si utilizza l'Zend Encoder per "proteggere" il codice sorgente).

PS.Spesso (ma non sempre) i linguaggi di scripting sono interpretati.Spesso (ma non sempre) i linguaggi di scripting sono dinamicamente tipizzati.

Tutti i linguaggi di scripting sono linguaggi di programmazione.Quindi, a rigor di termini, non vi è alcuna differenza.

Il termine non si riferisce ad una proprietà fondamentali della lingua, si riferisce al tipico utilizzare della lingua.Se l'utilizzo tipico è quello di scrivere piccoli programmi che soprattutto fare chiamate a codice preesistente, e qualche semplice elaborazione dei risultati, (che è, se l'utilizzo tipico è quello di scrivere script) è un linguaggio di scripting.

Penso che il Signor Roberto Ierusalimschy ha una buona risposta o la domanda 'programmare in Lua':

Tuttavia, la caratteristica che i linguaggi interpretati, non è che loro non sono compilati, ma che ogni il compilatore è parte del linguaggio fase di esecuzione e che, pertanto, è possibile (e facile) per eseguire il codice generato al volo

Una divisione è

  • script = dinamicamente interpretato
  • normale = compilato

Un modo dinamico linguaggio interpretato è interpretato in fase di runtime, mentre un linguaggio compilato viene compilato prima dell'esecuzione.

Vorrei aggiungere che, come Jörg ha sottolineato, il interpretata / compilato distinzione non è una caratteristica del linguaggio, ma del motore di esecuzione.

Si potrebbe anche essere interessati a questa spiegazione di Tipo di sistema, che è legato e si concentra più sul linguaggio aspetto, invece del motore di esecuzione.Più linguaggi di scripting sono dinamicamente tipizzati, mentre il "normale" le lingue sono per lo più staticamente tipizzato.

In generale, la divisione di statico vs dinamico linguaggi tipizzati è meglio definita e ha più implicazioni sulla fruibilità della lingua.

Un linguaggio di scripting è in genere:

  1. Dinamicamente tipizzati
  2. Interpretato, con grande enfasi sulle prestazioni, ma di portabilità
  3. Richiede molto meno codice standard, portando a molto di prototipazione rapida
  4. È utilizzato per le attività di piccole dimensioni, adatto per la scrittura di un singolo file per eseguire alcuni utili "script".

Mentre un non-linguaggio di scripting è di solito:1.Staticamente tipizzato 2.Compilato, con enfasi sulle prestazioni 3.Richiede più codice standard, portando a più lento di prototipazione, ma più leggibilità e la manutenzione a lungo termine 4.Utilizzato per progetti di grandi dimensioni, si adatta a molti modelli di progettazione

Ma è più di una storica differenza al giorno d'oggi, a mio parere.Javascript e Perl sono stati scritti con piccole, semplici script in mente, mentre il C++ è stato scritto con applicazioni complesse in mente;ma entrambi possono essere utilizzati in entrambi i modi.E molti linguaggi di programmazione, moderno e piccini, sfumare la linea comunque (ed era sfocata in primo luogo!).

La cosa triste è che ho conosciuto un paio di sviluppatori che aborrisce ciò che essi percepiscono come "linguaggi di scripting", pensando di essere più semplice e potente.La mia opinione è che il vecchio cliché - utilizzare lo strumento giusto per il lavoro.

I linguaggi di Scripting sono stati originariamente pensato come un sistema di meccanismi di controllo per le applicazioni scritte nel linguaggio di programmazione.I programmi compilati non può essere modificato in fase di esecuzione, in modo che lo script ha dato alla gente la flessibilità.

Più in particolare, shell script è stato l'automazione dei processi nel kernel del sistema operativo (tradizionalmente, AppleScript su Mac);un ruolo che più e più passati in Perl le mani, e poi fuori di esso in Python ultimamente.Ho visto lo Schema (in particolare nella sua Astuzia attuazione) per la dichiarazione di raytracing scene;e di recente, Lua è molto popolare come il linguaggio di programmazione di script giochi - al punto che il solo hard-coded cosa in molti giochi nuovi è la grafica/fisica del motore, mentre tutta la logica del gioco è codificato in Lua.Allo stesso modo, JavaScript è stato pensato per script il comportamento di un browser web.

Le lingue emancipata;nessuno oggi pensa l'OS come applicazione (o pensa molto a tutti), e molti ex linguaggi di scripting cominciò ad essere usato per scrivere applicazioni di loro.Il nome stesso è diventato privo di significato, e diffusa in molti linguaggi interpretati in uso oggi, indipendentemente dal fatto che essi sono progettati per essere interpretato da un altro sistema, o non.

Tuttavia, "i linguaggi di scripting" sicuramente non è più sinonimo di "linguaggi interpretati" - per esempio, di BASE, è stato interpretato per la maggior parte della sua vita (cioèprima ha perso il suo acronimicity e divenne Visual Basic), ma nessuno pensa realmente di come linguaggio di scripting.

AGGIORNAMENTO: Materiale di lettura, come al solito disponibile da Wikipedia.

Primo punto, un linguaggio di programmazione non è un "linguaggio di scripting" o qualcos'altro.Può essere un "linguaggio di scripting" e qualcos'altro.

Secondo punto, il realizzatore del linguaggio vi dirà se si tratta di un linguaggio di scripting.

La tua domanda dovrebbe essere "In che cosa implementazioni sarebbe un linguaggio di programmazione per essere considerato un linguaggio di scripting?", non "Qual è la differenza tra un linguaggio di scripting e di un linguaggio di programmazione?".Non c'è tra.

Eppure, mi prenderà in considerazione un linguaggio un linguaggio di scripting, se viene utilizzato per fornire un certo tipo di mezzo ware.Per esempio, vorrei prendere in considerazione la maggior parte delle implementazioni di JavaScript, un linguaggio di scripting.Se i JavaScript sono stati eseguiti nel sistema operativo, non il browser, quindi non sarebbe un linguaggio di scripting.Se il PHP viene eseguito all'interno di Apache, è un linguaggio di scripting.Se viene eseguito dalla riga di comando, non è così.

Vedo un linguaggio di scripting come qualcosa che non richiedono un palese pesante sensazione di 'compilare' un passo.La caratteristica principale da programmatori punto di vista è:si modifica il codice ed eseguire subito.

Quindi vorrei proposito, JavaScript e PHP come linguaggi di scripting, mentre ActionScript 3/Flex non è davvero.

Il mio amico e ho appena avuto questo argomento:Qual è la differenza tra un linguaggio di programmazione e un linguaggio di scripting.

Un popolare argomento è che i linguaggi di programmazione compilati e linguaggi di scripting sono interpretati - Tuttavia credo che questo argomento sia completamente falso...perché?

  1. Chakra & V8 (Microsoft e Google motori JavaScript) compilare il codice prima dell'esecuzione
  2. QBasic è interpretato - questo fa Qbasic un "scripting" lingua?

Su tale base, questo è il mio argomento per la differenza tra un linguaggio di programmazione e un linguaggio di scripting:

Un linguaggio di programmazione viene eseguita a livello della macchina e ha accesso alla macchina stessa (memoria, grafica, suoni, ecc).

Un linguaggio di scripting è di sabbia boxed e non ha accesso a tutti gli oggetti esposti per la scatola di sabbia.Non ha accesso diretto alla sottostante macchina.

A Mio Parere, direi che dinamicamente interpretato linguaggi come PHP, Ruby, ecc...sono ancora "normale" sporgenti.Direi che gli esempi di "scripting" le lingue sono cose come bash (o ksh o tcsh o quello che è) o sqlplus.Queste lingue sono spesso utilizzati per stringa insieme di programmi esistenti su un sistema in un insieme coerente e relativi comandi, come ad esempio:

  1. copia A.txt a /tmp/lavoro/
  2. eseguire la nightly del processo di pulizia sul server di database
  3. registrare i risultati e li invia al sysdamin

Quindi direi che la differenza (per me, comunque) è più nel modo in cui si utilizzare la lingua.Linguaggi come PHP, Perl, Ruby, potrebbe essere usata come "linguaggi di scripting", ma io di solito li vedo usare come "normale lingue" (ad eccezione di Perl, che sembra andare in entrambi i modi.

Mi limiterò a andare avanti e migrare la mia risposta duplicati domanda


Il nome di "linguaggio di Scripting" si applica a un ruolo molto specifico:la lingua in cui scrivere i comandi per l'invio di un software esistente applicazione.(come un tradizionale tv o film "script")

Per esempio, una volta, le pagine web HTML sono noiosi.Erano sempre statico.Poi, un giorno, Netscape pensato: "Ehi, cosa succede se si lascia che il browser leggere e agire sulla piccola comandi nella pagina?" E così, Javascript è stato formato.

Un semplice comando javascript è il alert() comando, che incarica il/i comandi del browser (software app) che sta leggendo la pagina web per visualizzare un messaggio di avviso.

Ora, non alert() legati, in qualche modo, per il C++ o qualsiasi codice di lingua del browser, in realtà utilizza per visualizzare l'avviso?Naturalmente non.Qualcuno che scrive "alert()" su un .html la pagina non ha alcuna comprensione di come il browser visualizza l'avviso.Ha appena scritto un comando che il browser interpreta.

Vediamo un semplice codice javascript

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

Questi sono indica che vengono inviati al browser, il browser di interpretare in sé.Il linguaggio di programmazione che il browser passa attraverso l'attuale impostazione di una variabile a 4, e metterla in un avviso...è completamente estranei a javascript.

Noi la chiamiamo ultima serie di comandi "script" (che è il motivo per cui è racchiuso in <script> tags).Solo la definizione di "script", nel senso tradizionale del termine: Una serie di istruzioni e comandi inviati agli attori.Tutti sanno che una sceneggiatura (una sceneggiatura del film), per esempio, è uno script.

La sceneggiatura (script) è non gli attori, o la macchina, o gli effetti speciali.La sceneggiatura appena dice loro cosa fare.

Ora, che cosa è un scripting lingua, esattamente?

Ci sono un sacco di linguaggi di programmazione che sono come diversi strumenti nella casella degli strumenti;alcune lingue sono stati progettati in particolare per essere utilizzato come script.

Javasript è un esempio evidente;ci sono pochissime applicazioni di Javascript che non rientrano nell'ambito di scripting.

ActionScript (la lingua per le animazioni Flash) e i suoi derivati sono i linguaggi di scripting, in quanto è sufficiente inviare comandi al Flash player/interprete.Certo, ci sono astrazioni come la programmazione Object-Oriented, ma tutto ciò è semplicemente un mezzo per il fine:inviare comandi al flash player.

Python e Ruby sono comunemente usati anche come linguaggi di scripting.Per esempio, una volta ho lavorato per una società che ha utilizzato Ruby script di comandi da inviare al browser che erano lungo le linee di, "vai a questo sito, fare clic su questo link..." per fare qualche test automatici.Ero non un "Software Developer" con qualsiasi mezzo, a quel lavoro.Ho appena scritto script di comandi inviati al computer di inviare comandi al browser.

A causa della loro natura, i linguaggi di scripting sono raramente 'compilato' - che è, tradotto in codice macchina, e leggere direttamente dal computer.

Anche le applicazioni GUI creata da Python e Ruby sono gli script inviati a delle API scritte in C++ o in C.Racconta la C app cosa fare.

C'è una linea di vaghezza, naturalmente.Perché non si può dire che in Linguaggio Macchina/C sono i linguaggi di scripting, perché sono gli script che utilizza il computer per l'interfaccia con la base della scheda madre/schede grafiche/chip?

Ci sono alcune linee possiamo trarre da chiarire:

  1. Quando si può scrivere in un linguaggio di script ed eseguirlo senza "compilazione", è più di un direct-script tipo di cosa.Per esempio, non c'è bisogno di fare nulla con una sceneggiatura per raccontare gli attori che cosa fare con esso.C'è già, utilizzato, come-è.Per questo motivo, ci sarà escludere i linguaggi compilati essere chiamati linguaggi di scripting, anche se essi possono essere utilizzati per la creazione di script in alcune occasioni.

  2. Linguaggio di Scripting implica comandi inviati a una complesso applicazione software;questa è tutta la ragione scrivere, scrivere, scrivere script in primo luogo, quindi non c'è bisogno di conoscere la complessità di come funziona il software per l'invio di comandi.Così, i linguaggi di scripting tendono ad essere le lingue che inviare (relativamente) semplici comandi per le applicazioni software complesse...in questo caso, linguaggio macchina e assembly codice non tagliare.

Mi permetto di suggerire che i linguaggi di scripting è stato un periodo un sacco di persone si stanno allontanando dalla.Direi che per lo più si riduce per i linguaggi compilati e linguaggi dinamici al giorno d'oggi.

Voglio dire che non si può davvero dire qualcosa come Python o Ruby sono "scripting" lingue in questo giorno ed età (è anche roba come IronPython e JIT-il-tuo-preferito-lingua, la differenza è stata cancellata anche di più).

Per essere onesti, io personalmente non sento il PHP è un linguaggio di scripting più.Non mi aspetto di persone come classificare PHP in modo diverso dal dire di Java sul loro curriculum.

Linguaggi di Scripting tendono a funzionare all'interno di un motore di scripting che è parte di una più ampia applicazione.Per esempio, il codice JavaScript viene eseguito all'interno del browser, motore di scripting.

Un linguaggio di scripting è un linguaggio che viene interpretato ogni volta che lo script viene eseguito, esso implica disporre di un interprete e la maggior parte sono molto più leggibili, per essere utile, un linguaggio di scripting è facile da imparare e da usare.

Ogni compilabile lingua può essere fatto in un linguaggio di script e viceversa tutto dipende dalla implementazione di un interprete o di un compilatore, come un esempio il C++ è un interprete così può essere definito un linguaggio di script, se utilizzato in modo (e non è molto pratico, in generale, come il C++ è un linguaggio complesso), uno dei più utili linguaggi di script, oggi, è il Python...

Quindi, per rispondere alla tua domanda, la definizione è l'uso di un interprete per l'esecuzione rapida e semplice script programmi, per affrontare compiti semplici applicazioni prototipo o l'uso più potente si possono fare dei linguaggi di script è quello di includere la possibilità di utilizzare per estendere un'applicazione compilata.

Io preferisco che la gente non usa il termine "linguaggio di scripting", in quanto ritengo che diminuisce lo sforzo.Prendete un linguaggio come il Perl, spesso chiamato "linguaggio di scripting".

  • Perl è un linguaggio di programmazione!
  • Perl è compilato come Java e C++.È compilato solo molto più veloce!
  • Perl ha gli oggetti e gli spazi dei nomi e delle chiusure.
  • Perl ha idee e debugger e il profiler.
  • Perl la formazione e il supporto e la comunità.
  • Perl non è solo web.Perl non è solo sysadmin.Perl non è solo il nastro di Internet.

Perché abbiamo ancora bisogno di distinguere tra un linguaggio come Java che viene compilato e Rubino, che non è?Qual è il valore in materia di etichettatura?

Per ulteriori informazioni su questo, vedere http://xoa.petdance.com/Stop_saying_script.

Una differenza importante è la tipizzazione forte (contro tipizzazione debole). I linguaggi di Scripting sono spesso debolmente tipizzato, rendendo possibile scrivere piccoli programmi più rapidamente.Per programmi di grandi dimensioni questo è uno svantaggio, in quanto inibisce il compilatore/interprete per trovare alcuni bug autonomamente, il che rende molto difficile per il refactoring del codice.

I linguaggi di Scripting sono linguaggi di programmazione in cui i programmi sono in genere forniti agli utenti finali in maniera leggibile forma testuale e dove c'è un programma che può a quanto pare eseguire il programma direttamente.(Il programma potrebbe compilare lo script internamente;che non è pertinente, perché qui non è visibile all'utente).

È relativamente comune per i linguaggi di scripting per essere in grado di sostenere una sessione interattiva in cui gli utenti possono semplicemente digitare nel loro programma e farlo eseguire immediatamente.Questo perché si tratta di una banale estensione del requisito essenziale del primo paragrafo;il principale extra requisito è l'aggiunta di un meccanismo per capire quando un digitato dichiarazione è completa, in modo che possa essere inviato al motore di esecuzione.

Leggermente differente la questione.Un linguaggio di scripting è un linguaggio di programmazione ma un linguaggio di programmazione non è necessariamente un linguaggio di scripting.Un linguaggio di scripting utilizzato per il controllo o script di un sistema.Tale sistema potrebbe essere un sistema operativo in cui il linguaggio di scripting sarebbe bash.Il sistema potrebbe essere un server web con PHP, il linguaggio di scripting.I linguaggi di Scripting sono progettati per riempire una nicchia specifica;sono dominio dei linguaggi specifici.Sistemi interattivi sono linguaggi di scripting interpretato, dando origine all'idea che i linguaggi di scripting sono interpretati;tuttavia, questa è una conseguenza del sistema, e non il linguaggio di script stesso.

Un linguaggio di scripting è un linguaggio che consente di configurare o si estende un programma esistente.
Un Linguaggio di Scripting è un linguaggio di Programmazione.

La definizione di "linguaggio di scripting" è piuttosto sfocata.Mi piacerebbe in base alle seguenti considerazioni:

  1. Linguaggi di Scripting di solito non sono visibili per l'utente passi di compilazione.In genere, l'utente può eseguire i programmi in un semplice comando.

  2. Programmi in linguaggi di scripting sono normalmente trasmessi in forma sorgente.

  3. Linguaggi di Scripting normalmente runtime che sono presenti in un gran numero di sistemi, e il runtime può essere installato facilmente sulla maggior parte dei sistemi.

  4. Linguaggi di Scripting tendono ad essere multi-piattaforma e non specifiche della macchina.

  5. Linguaggi di Scripting rendere più facile per chiamare altri programmi e l'interfaccia con il sistema operativo.

  6. I linguaggi di Scripting sono di solito facilmente integrabile in sistemi più ampi scritto in modo più tradizionale linguaggi di programmazione.

  7. I linguaggi di Scripting sono in genere progettati per la facilità di programmazione, e con molto meno riguardo per la velocità di esecuzione.(Se si desidera una rapida esecuzione, il solito consiglio è quello di codice il tempo di parti in qualcosa di simile a C, e incorporare la lingua in C o call C i bit della lingua).

Alcune delle caratteristiche che ho elencato sopra sono vere implementazioni, nel qual caso mi riferisco alle più comuni implementazioni.Ci sono stati C interpreti (AFAIK) non evidenti compilare il passo, ma non è vero per la maggior parte C implementazioni.Sarete sicuramente in grado di compilare un programma del Perl in codice nativo, ma non è normalmente usato.Alcune altre caratteristiche sono di natura sociale.Alcuni dei criteri di cui sopra, si sovrappongono un po'.Come ho detto, la definizione è generica.

Direi linguaggio di scripting è fortemente manipolazione di entità non si definisce.Per esempio, JavaScript manipola oggetti DOM del browser, PHP opera enorme libreria di C-le funzioni di base, e così via.Naturalmente, non è una definizione precisa, più un modo di pensare se.

Se non/non esecuzione sulla CPU, è uno script per me.Se un interprete deve eseguire sulla CPU di seguito il programma, quindi è uno script e un linguaggio di scripting.

Alcuna ragione di rendere più complicato di questo?

Naturalmente, nella maggior parte (99%) dei casi, è chiaro che se un linguaggio è un linguaggio di scripting.Ma considera che una macchina virtuale in grado di emulare il set di istruzioni x86, per esempio.Questo non può fare x86 bytecode un linguaggio di scripting quando è in esecuzione su una macchina virtuale?Che cosa succede se qualcuno è stato quello di scrivere un compilatore che vorresti girare il codice del perl in un eseguibile nativo?In questo caso, non saprei come chiamare il linguaggio stesso di più.Sarebbe l'output sarebbe la materia, non la lingua.

Poi di nuovo, io non sono a conoscenza di qualcosa come questo fosse stato fatto, quindi per ora sto ancora confortevole chiamata linguaggi interpretati linguaggi di scripting.

Un script è un relativamente piccolo programma.Un sistema è un relativamente grande programma, o un collezione relativamente programmi di grandi dimensioni.

Alcuni linguaggi di programmazione sono progettati con caratteristiche che la lingua di progettazione e la programmazione comunitaria in considerazione per essere utile durante la scrittura relativamente piccoli programmi.Questi linguaggi di programmazione sono noti come linguaggi di scripting, ad es.PHP.

Allo stesso modo, altri linguaggi di programmazione sono progettati con caratteristiche che la lingua di progettazione e la programmazione comunitaria in considerazione per essere utile durante la scrittura di dimensioni relativamente grandi programmi.Questi linguaggi di programmazione sono noti come sistemi di lingue, ad es.Java.

Ora, piccole e grandi programmi possono essere scritti in qualsiasi lingua.Un piccolo programma Java è uno script.Per esempio, un Java programma "Ciao Mondo" è uno script, non un sistema.Un programma di grandi dimensioni, o un insieme di programmi, scritti in PHP è un sistema.Per esempio, Facebook, scritto in PHP, è un sistema, non è uno script.

Considerando una singola caratteristica del linguaggio come "cartina di tornasole" per decidere se il linguaggio è più adatto per lo scripting o di programmazione di sistemi è discutibile.Per esempio, gli script può essere compilato per byte o codice macchina, o può essere eseguito dal diretto albero di sintassi astratta (AST) interpretazione.

Così, un linguaggio è un linguaggio di scripting, se è in genere utilizzato per scrivere script.Un linguaggio di scripting può essere utilizzato per scrivere sistemi, ma tali applicazioni sono suscettibili di essere considerata dubbia.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top