Frage

Was macht eine Sprache zu einer Skriptsprache?Ich habe einige Leute sagen hören: „Wenn es interpretiert statt kompiliert wird“.Das würde PHP (zum Beispiel) zu einer Skriptsprache machen.Ist das das einzige Kriterium?Oder gibt es noch andere Kriterien?

Siehe auch:

War es hilfreich?

Lösung

Eine Skriptsprache ist eine Sprache, die „Skripte“ andere Dinge Dinge zu tun. Der primäre Fokus ist nicht in erster Linie den Aufbau Ihrer eigenen Anwendungen so viel wie eine bestehende App immer die Art und Weise Sie handeln wollen, z.B. JavaScript für Browser, VBA für MS Office.

Andere Tipps

Einfach. Wenn ich es verwenden, es ist eine moderne dynamische Sprache, wenn Sie es verwenden, es ist nur eine Skriptsprache!

Traditionell, wenn über den Unterschied über Scripting gegen Programmierung sprechen, werden Scripts interpretiert und Programme kompiliert werden. Eine Sprache kann auf verschiedene Weise ausgeführt werden - interpretiert oder (Bytecode oder Maschinencode) erstellt. Dies macht nicht eine Sprache eine oder andere.

In manchen Augen, so, wie Sie verwenden eine Sprache, es macht eine Skriptsprache (zum Beispiel Spiele-Entwickler, die hauptsächlich in C ++ entwickeln script die Objekte in Lua) . Auch hier sind die Linien verwischt -. Eine Sprache für eine Programmierung von einer Person verwendet werden kann und die gleiche Sprache kann durch eine andere für Skriptsprache verwendet wird

Dies ist aus der wikipedia Artikel über Skriptsprachen:

  

Eine Skriptsprache, Skriptsprache oder Verlängerung Sprache ist eine Programmiersprache, die die Kontrolle über eine oder mehr Software-Anwendungen ermöglicht. „Skripte“ unterscheiden sich von den Kerncode der Anwendung, da sie in der Regel in einer anderen Sprache geschrieben sind, und oft entstehen, oder zumindest durch den Endverbraucher verändert. Skripte werden häufig aus dem Quellcode oder Bytecode interpretiert, während die Anwendungen, die sie steuern, traditionell zu nativen Maschinencode kompiliert werden. Skriptsprachen sind fast immer in den Anwendungen eingebettet sie steuern.

Sie werden die Verwendung von „in der Regel“ bemerken „oft“, „traditionell“ und „fast immer“ - das alles sagen Sie, dass es nicht von unterschiedlichen Attribute festgelegt, die eine bestimmte Sprache machen eine "Skriptsprache".

  

"Ein Skript ist, was man die Schauspieler geben.   Ein Programm ist das, was man das geben   Publikum.“- Larry Wall

Ich glaube wirklich nicht, dass es einen großen Unterschied mehr. Die sogenannten „Scripting“ Sprachen werden oft zusammengestellt - nur sehr schnell, und zur Laufzeit. Und einige der „Programmierung“ Sprachen werden weiter zur Laufzeit kompiliert und (man denke an JIT) und die erste Stufe der „Zusammenstellung“ ist Syntaxprüfung und Ressourcenauflösung.

Lassen Sie sich nicht auf sie aufgehängt, es ist wirklich nicht wichtig.

Meine Definition wäre eine Sprache, die typischerweise als Quelle verteilt wird und nicht als eine binäre.

Es gibt eine Menge möglicher Antworten.

Erstens: es ist nicht wirklich eine Frage der Differenz zwischen einer Skriptsprache und einer Programmiersprache, weil eine Skriptsprache ist eine Programmiersprache. Es ist mehr eine Frage, welche Merkmale einige Programmiersprache eine Skriptsprache zu machen, während eine andere Programmiersprache nicht eine Skriptsprache.

Zweitens: es ist wirklich schwer zu sagen, was eine XYZ Sprache ist, ob das XYZ „Scripting“, „funktionale Programmierung“ sein „objektorientierte Programmierung“ oder was Sie haben. Die Definition dessen, was „funktionale Programmierung“ ist, ist ziemlich klar, aber niemand weiß, was eine „funktionale Programmiersprache“ ist.

Funktionale Programmierung oder objektorientierte Programmierung programmieren Stile ; Sie können in so ziemlich jede Sprache in einem funktionalen Stil oder einen objektorientierten Stil schreiben. Zum Beispiel sind die Linux Virtual File System Switch und das Linux-Treibermodell stark objektorientierte trotz in C geschrieben, während eine Menge von Java oder C # -Code Sie im Web sehen sehr prozedurale und nicht objektorientiert überhaupt . OTOH, ich habe einige stark funktionale Java-Code zu sehen.

Also, wenn die funktionale Programmierung und objektorientierte Programmierung sind nur Stile, die in jeder Sprache getan werden kann, dann wie definieren Sie eine „objektorientierte Programmiersprache“? Man könnte sagen, dass eine objektorientierte Programmiersprache ist eine Sprache, die objektorientierte Programmierung ermöglicht. Aber das ist nicht viel von einer Definition: alle Sprachen erlauben objektorientierte Programmierung, daher alle Sprachen sind objektorientiert? Also, sagen Sie, auch eine Sprache ist objektorientiert, wenn es Kräfte Sie in der Programmierung in einem objektorientierten Stil. Aber das ist nicht viel von einer Definition, entweder: alle Sprachen ermöglichen funktionale Programmierung, daher nicht Sprache objektorientiert

Also, für mich, ich habe die folgende Definition gefunden:

  

Eine Sprache ist eine Skriptsprache (objektorientierte Sprache / funktionale Sprache), wenn es beide

     
      
  • erleichtert Scripting (objektorientierte Programmierung / funktionale Programmierung), dh es ist nicht nur können es aber macht es leicht und natürliche und enthält Funktionen, die Hilfe mit, und
  •   
  • ermutigt und Führer Sie auf Scripting (objektorientierte Programmierung / funktionale Programmierung).
  •   

So, nach fünf Absätze, ich angekommen sind: „eine Skriptsprache ist eine Sprache, die für Scripting“. Was für eine großartige Definition. NICHT.

Natürlich müssen wir jetzt bei der Definition von „Scripting“ suchen.

Dies ist, wo das dritte Problem kommt in: während des Begriffs „funktionale Programmierung“ gut definiert ist, und es ist nur der Begriff „funktionale Programmiersprache“, die problematisch ist leider mit Scripting, beide dem Begriff „Scripting“ und der Begriff „Skriptsprache“ sind schlecht definiert.

Nun, erstens Scripting ist Programmierung. Es ist nur eine besondere Art der Programmierung. IOW: Jedes Skript ist ein Programm, aber nicht jedes Programm ist ein Skript; die Menge aller Skripte ist eine echte Teilmenge der Menge aller Programme.

In meiner persönlichen Meinung nach ist das Ding, das Scripting Scripting macht und unterscheidet sie von anderen Arten der Programmierung, ist, dass ...

  

Scripts weitgehend Objekte manipulieren, dass

     
      
  • wurden nicht durch das Skript erstellt,
  •   
  • haben eine Lebensdauer unabhängig von der Schrift und
  •   
  • leben außerhalb der Domäne des Skripts.
  •   
     

Auch die Datentypen und Algorithmen verwendet werden, durch das Skript im allgemeinen nicht definiert, sondern durch die äußere Umgebung.

Denken Sie über ein Shell-Skript: Shell-Skripte in der Regel Dateien, Verzeichnisse und Prozesse manipulieren. Die Mehrheit der Dateien, Verzeichnisse und processe auf Ihrem System wurde wahrscheinlich nicht von dem aktuell laufenden Skript erstellt. Und sie verschwinden nicht, wenn das Skript beendet: ihre Lebensdauer völlig unabhängig vom Skript. Und sie sind nicht wirklich Teil des Skripts, entweder, sie sind ein Teil des Systems. Sie haben Ihr Skript nicht starten, indem File und Directory Klassen schreiben, diese Datentypen keine Ihrer Anliegen sind: Sie nur annehmen, dass sie dort sind, und Sie wissen nicht einmal (noch haben Sie Notwendigkeit wissen ) wie sie arbeiten. Und Sie nicht Ihre eigenen Algorithmen implementieren, entweder, z.B. für Directory-Traversal verwenden Sie nur find stattdessen Ihre eigene Breite-first-Suche umzusetzen.

Kurz gesagt: a. Skript selbst legt auf ein größeres System, das unabhängig von dem Skript vorhanden ist, manipuliert einen kleinen Teil des Systems und wird dann beendet

Das größere System das Betriebssystem bei einem Shell-Skript sein kann, der Browser DOM im Falle eines Browser-Skript, ein Spiel (zB World of Warcraft mit Lua oder Second Life mit dem Linden Scripting Language), einer Anwendung ( zB die AutoLisp Sprache für AutoCAD oder Excel / Word / Office-Makros), ein Web-Server, eine Packung von Robotern oder etwas ganz anderes.

Beachten Sie, dass der Scripting-Aspekt zu allen anderen Aspekten von Programmiersprachen vollständig orthogonal ist: eine Skriptsprache, stark oder schwach eingegeben werden kann, streng oder locker getippt, statisch oder dynamisch typisierte, nominell, strukturell oder Ente getippt, Heck kann es auch nicht typisiert sein. Es kann Imperativ oder funktional, objektorientierte, prozedurale oder funktional, streng oder faul sein. Seine Implementierungen können interpretiert, kompiliert oder gemischt werden.

Zum Beispiel Mondrian ist eine streng stark statisch typisierte faul funktionale Skriptsprache mit einer kompilierten Umsetzung.

Doch alles dies strittig ist, weil die Art und Weise der Begriff Skriptsprache ist wirklich in der realen Welt verwendet wird, hat nichts mit einem der oben genannten zu tun. Es wird häufig einfach als Beleidigung verwendet und die Definition ist ziemlich einfach, auch simpel:

  
      
  • real Programmiersprache: meine Programmiersprache
  •   
  • Skriptsprache: Programmiersprache
  •   

Dies scheint der Weg zu sein, dass der Begriff am häufigsten verwendet.

Es ist wie Porno, wissen Sie es, wenn Sie es sehen. Die einzig mögliche Definition einer Skriptsprache ist:

A language which is described as a scripting language.

Ein bisschen rund, ist es nicht? (By the way, ich scherze nicht).

Im Grunde gibt es nichts, dass die Sprache eine Skriptsprache, mit Ausnahme macht, dass es so genannt wird, vor allem von seinen Schöpfern. Die große Reihe von modernen Skriptsprachen PHP, Perl, JavaScript, Python, Ruby und Lua. Tcl ist die erste große moderne Skriptsprache (es war nicht die erste obwohl Skriptsprache, ich vergesse, was es ist, aber ich war überrascht zu erfahren, dass es Tcl vordatiert).

Ich beschreibe Merkmale der wichtigsten Skriptsprachen in rel="noreferrer">:

 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)

Die meisten sind dynamisch typisierten und interpretiert, und die meisten haben keine definierte Semantik außerhalb ihrer Referenzimplementierung. Aber selbst wenn ihre Haupt Umsetzung wird kompiliert oder JITed, dass die „Natur“ der Sprache nicht ändern.

Sie nur verbleibende Frage ist, wie können Sie sagen, wenn eine neue Sprache eine Skriptsprache ist. Nun, wenn es eine Skriptsprache genannt wird, ist es ein. So Factor ist eine Skriptsprache (oder zumindest war, als das geschrieben wurde), aber, sagen wir, Java ist es nicht.

„Scripting-Sprache“ ist eine jener Fuzzy-Konzepte, die viele Dinge bedeuten kann. Normalerweise verweist sie auf die Tatsache, dass es existiert ein einstufiges Verfahren Sie aus dem Quellcode zu Ausführung nehmen.

Zum Beispiel in Perl Sie tun: perl my_source.pl

In Anbetracht der oben genannten Kriterien PHP ist eine Skriptsprache (auch wenn Sie eine „Zusammenstellung“ -Prozess zum Beispiel haben können, wenn der Zend Encoder mit dem Quellcode zu „schützen“).

PS. Oft (aber nicht immer) Skriptsprachen interpretiert. Auch oft (aber auch hier nicht immer) Skriptsprachen werden dynamisch typisiert.

Alle Skriptsprachen sind Programmiersprachen. So streng genommen gibt es keinen Unterschied.

Der Begriff nicht an grundlegenden Eigenschaften der Sprache bezieht sich bezieht er sich auf die typische verwenden der Sprache. Wenn die typische Anwendung ist kurze Programme zu schreiben, die in erster Linie Anrufe tun zu dem bereits bestehenden Code, und einige einfache Verarbeitung auf die Ergebnisse, (das heißt, wenn die typische Anwendung zu schreiben, ist Skripte ), dann ist es eine Skriptsprache.

Ich denke, Herr Roberto Ierusalimschy hat eine sehr gute Antwort oder die Frage in 'Programming in Lua':

  

Allerdings ist das Unterscheidungsmerkmal   interpretierten Sprachen ist nicht, dass sie   werden nicht kompiliert, sondern dass jede   Compiler ist Teil der Sprache   Laufzeit und daher ist es   möglich (und einfach) Code auszuführen   erzeugt on the fly

Eine Teilung ist

  • Scripting = dynamisch interpretiert
  • normal = zusammengestellt

Eine dynamisch interpretierte Sprache wird zur Laufzeit interpretiert, während eine kompilierte Sprache vor der Ausführung kompiliert wird.

Ich sollte hinzufügen, dass so Jörg hat darauf hingewiesen, die interpretiert / kompilierte Unterscheidung nicht ein Merkmal der Sprache ist, aber von der Ausführungs-Engine.

Sie können auch in dieser Erklärung von Typ System interessiert sein, die in Beziehung steht und Schwerpunkte mehr auf der Sprache Aspekte anstelle der Ausführungsmaschine. Die meisten Skriptsprachen dynamisch typisiert werden, während „normale“ Sprachen sind meist statisch typisiert.

die Teilung statisch Im Allgemeinen vs dynamisch typisierten Sprachen ist besser definiert und mehr Auswirkungen auf die Nutzbarkeit der Sprache hat.

Eine Skriptsprache ist Regel :

  1. Dynamisch typisierte
  2. interpretierte, mit sehr wenig Wert auf Leistung, aber eine gute Portabilität
  3. Benötigt viel weniger Standardcode , was zu einer sehr schnellen Prototyping
  4. Ist für kleine Aufgaben verwendet, geeignet für das Schreiben einer einzigen Datei einige nützliche „script“ auszuführen.

Während eine nicht-Skriptsprache ist in der Regel :  1. Statisch typisierte  2. Zusammengestellt, mit Schwerpunkt auf Leistung  3. Erfordert mehr Standardcode, zu langsamer Prototyping führt aber mehr Lesbarkeit und langfristige Wartbarkeit  4. für große Projekte, passt sich viele Designmuster

Aber es eher ein historischer Unterschied ist heute, meiner Meinung nach. Javascript und Perl wurden mit kleinen, einfachen Skripten im Sinne geschrieben, während C ++ mit komplexen Anwendungen im Sinne geschrieben wurde; aber beide können in beiden Richtungen genutzt werden. Und viele Programmiersprachen, modern und alt, verwischt die Linie sowieso (und es war flockig in erster Linie!).

Das Traurige daran ist, ich habe ein paar Entwickler bekannt, die verabscheut, was sie als „Skriptsprachen“ wahrgenommen, denken sie einfacher und nicht so leistungsfähig zu sein. Meine Meinung ist, dass alte Klischee -. Verwenden Sie das richtige Werkzeug für den Job

Skriptsprachen wurden ursprünglich als Kontrollmechanismen gedacht für Anwendungen in einem harten Programmiersprache geschrieben. Die kompilierten Programme zur Laufzeit nicht geändert werden können, so Scripting gab den Menschen Flexibilität.

Vor allem Shell-Skript wurde Prozesse in dem OS-Kernel (traditionell, Applescript auf Macs) zu automatisieren; eine Rolle, die in Perl Hände übergeben immer mehr, und dann in letzter Zeit aus der es in Python. Ich habe Scheme (vor allem in seiner Guile Implementierung) verwendet gesehen zu erklären Szenen Raytracing; und vor kurzem Lua ist sehr beliebt, da die Programmiersprache Skript Spiele - bis zu dem Punkt, dass das einzige hartcodiert, was in vielen neuen Spielen ist die Grafik / Physik-Engine, während die ganze Spiel Logik in Lua codiert wird. In gleicher Weise wurde JavaScript-Skript gedacht, das Verhalten eines Web-Browsers.

Die Sprachen emanzipiert; niemand denkt jetzt über das Betriebssystem als eine Anwendung (oder denkt, dass es viel überhaupt über), und viele frühen Skriptsprachen begannen verwendet werden, um volle Anwendungen ihres eigenen zu schreiben. Der Name selbst wurde bedeutungslos, und die Ausbreitung zu vielen interpretierten Sprachen heute im Einsatz, und zwar unabhängig davon, ob sie dazu bestimmt sind aus einem anderen System oder nicht interpretiert werden.

Allerdings: „Skriptsprachen“ sind definitiv nicht gleichbedeutend mit „interpretierte Sprachen“ - zum Beispiel wurde BASIC für die meisten sein Leben interpretiert (dh, bevor er seine acronimicity verloren und wurde Visual Basic), aber niemand wirklich denkt davon als scripting.

UPDATE: Lesematerial wie gewohnt zur Verfügung bei Wikipedia .

Erster Punkt, eine Programmiersprache ist keine „Skriptsprache“ oder etwas anderes. Es kann eine „Skriptsprache“ und etwas anderes sein.

Zweiter Punkt, der Implementierer der Sprache wird Ihnen sagen, wenn es sich um eine Skriptsprache ist.

soll Ihre Frage gelesen „In welcher würden Implementierungen eine Programmiersprache, eine Skriptsprache, in Betracht gezogen werden?“, Nicht „Was ist der Unterschied zwischen einer Skriptsprache und einer Programmiersprache?“. Es gibt keine dazwischen.

Doch, werde ich eine Sprache eine Skriptsprache betrachten, wenn es verwendet wird, irgendeine Art von Middleware zur Verfügung zu stellen. Zum Beispiel würde ich die meisten Implementierungen von JavaScript einer Skriptsprache, in Betracht ziehen. Wenn Sie JavaScript in den OS laufen gelassen wurden, nicht der Browser, dann wäre es nicht eine Skriptsprache sein. Wenn PHP innerhalb von Apache läuft, ist es eine Skriptsprache. Wenn es von der Kommandozeile ausgeführt ist, ist es nicht.

Ich sehe eine Skriptsprache, wie alles, was nicht eine offene schwere erfordern Gefühl ‚kompilieren‘ Schritt. Das Hauptmerkmal von einem Programmierer Sicht ist. Sie Code bearbeiten und sofort ausgeführt

So würde ich JavaScript und PHP als Skriptsprachen betrachten, während Actionscript 3 / Flex ist nicht wirklich.

Mein Freund und ich hatte gerade dieses Argument. Was ist der Unterschied zwischen einer Programmiersprache und einer Skriptsprache

Ein beliebtes Argument ist, dass Programmiersprachen erstellt und Skriptsprachen interpretiert werden - aber ich dieses Argument glaube völlig falsch zu sein ... warum

  1. Chakra & V8 (Microsoft und JavaScript-Engine von Google) kompiliert Code vor der Ausführung
  2. QBasic interpretiert wird - bedeutet dies macht Qbasic eine "Scripting" Sprache
  3. ?

Auf dieser Grundlage, das ist mein Argument für den Unterschied zwischen einer Programmiersprache und einer Skriptsprache:

Eine Programmiersprache läuft auf der Maschinenebene und hat Zugang zu der Maschine selbst (Speicher, Grafik, Ton usw.).

Eine Skriptsprache ist Sand verpackt und hat nur Zugriff auf Objekte in den Sandkasten ausgesetzt. Es hat keinen direkten Zugriff auf die zugrunde liegende Maschine.

Meiner Meinung nach, würde ich sagen, dass die dynamisch interpretierte Sprachen wie PHP, Ruby, etc ... sind immer noch „normal“ Sprachen zur Verfügung. Ich würde sagen, dass Beispiele für „Scripting“ Sprachen sind Dinge wie bash (oder KSH oder tcsh oder was auch immer) oder sqlplus. Diese Sprachen werden oft aneinanderzureihen bestehende Programme auf einem System in eine Reihe von kohärenten und verwandten Befehlen verwendet, wie zum Beispiel:

  1. Kopieren A.txt / tmp / work /
  2. Führen Sie den nächtlichen Bereinigungsprozess auf dem Datenbankserver
  3. die Ergebnisse protokollieren und sie an die sysdamin
  4. senden

Also habe ich den Unterschied sagen würde (für mich jedenfalls) ist mehr, wie Sie verwenden die Sprache. Sprachen wie PHP, Perl, Ruby-als „Skriptsprachen“ verwendet werden könnten, aber ich sehe sie gewöhnlich als „normale Sprachen“ (mit Ausnahme von Perl verwendet, die in beiden Richtungen zu gehen scheinen.

Ich werde einfach weitermachen und meine Antwort aus der doppelten Frage migrieren


Der Name „Skriptsprache“ bezieht sich auf eine ganz bestimmte Rolle: die Sprache, die Sie Befehle schreiben, um eine bestehende Software-Anwendung zu senden. (Wie ein traditionelles TV oder Film "script")

Zum Beispiel, einmal eine Zeit, da HTML-Webseite waren langweilig. Sie waren immer statisch. Dann, eines Tages, dachte Netscape: „Hey, was ist, wenn wir den Browser lesen und wirken auf wenig Befehle auf der Seite lassen?“ Und so wurde Javascript gebildet.

Ein einfacher Javascript-Befehl ist der alert() Befehl, der / Befehle den Browser (ein Software-app) anweist, die die Webseite lesen eine Benachrichtigung angezeigt werden soll.

Nun hat alert() Zusammenhang, in irgendeiner Art und Weise, auf die C ++ oder was auch immer Codesprache, dass der Browser tatsächlich nutzt die Warnung angezeigt werden? Natürlich nicht. Jemand, der „alert ()“ auf einer HTML-Seite hat kein Verständnis dafür, wie der Browser tatsächlich zeigt die Warnung schreibt. Er hat gerade einen Befehl zu schreiben, dass der Browser interpretiert.

Lassen Sie uns den einfachen Javascript-Code finden Sie unter

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

Dies sind instruiert, die an den Browser gesendet werden, für den Browser selbst zu interpretieren. Die Sprachenprogrammierung, dass der Browser geht durch zu setzen tatsächlich eine Variable 4 und setzte sich in einer Warnung ... es ist völlig unabhängig von Javascript.

Wir nennen die letzte Reihe von Befehlen eines „Skript“ (das ist, warum es in <script> Tags eingeschlossen ist). Nur durch die Definition von „Skript“, im traditionellen Sinne: Eine Reihe von Anweisungen und Befehlen an die Akteure gesendet . Jeder weiß, dass ein Drehbuch (eine Film-Skript), zum Beispiel, ist ein Skript.

Das Drehbuch (Script) ist nicht die Schauspieler oder die Kamera oder die Spezialeffekte. Das Drehbuch nur erzählt sie, was zu tun ist.

Nun, was ist eine Skript Sprache , genau?

Es gibt eine Menge von Programmiersprachen, die wie verschiedene Werkzeuge in einem Werkzeugkasten sind; Einige Sprachen wurden entwickelt, speziell als Skripte verwendet werden.

Javasript ist ein offensichtliches Beispiel; es gibt nur sehr wenige Anwendungen von Javascript, die im Bereich des scripting nicht fallen.

Actionscript (die Sprache für Flash-Animationen) und seine Derivate sind Skriptsprachen, indem sie einfach erteilen Befehle an den Flash-Player / Dolmetscher. Sicher, es gibt Abstraktionen wie objektorientierte Programmierung, aber das alles ist nur ein Mittel zum Zweck: Befehle an dem Flash Player senden

.

Python und Ruby werden häufig auch als Skriptsprachen verwendet. Zum Beispiel habe ich arbeitete einmal für ein Unternehmen, die Ruby-Skript verwendet, um Befehle an einen Browser zu senden, die entlang der Linien von „auf dieser Seite geht, klicken Sie auf diesen Link ...“ waren einige grundlegenden automatisierten Tests zu tun. Ich war nicht ein "Software Developer" mit allen Mitteln, um diesen Job. Ich schrieb Skripte, die Befehle an den Computer gesendet Befehle an den Browser zu senden.

Aufgrund ihrer Natur, Skriptsprachen sind selten ‚zusammengestellt.‘ - das heißt, in Maschinencode übersetzt und direkt vom Computer gelesen

Auch GUI-Anwendungen von Python und Ruby erstellt werden Skripte an eine API in C geschrieben gesendet ++ oder C Erzählt wird die C app was zu tun ist.

Es gibt eine Reihe von Unbestimmtheit, natürlich. Warum kann man nicht sagen, dass Machine Language / C sind Skriptsprachen, denn sie sind Skripte, die der Computer mit dem Grund Motherboard-Schnittstelle verwendet / Grafikkarten / Chips?

Es gibt einige Linien können wir klären ziehen:

  1. Wenn Sie eine Skriptsprache schreiben können und führen Sie es ohne „Kompilieren“, es ist eher eine Direkt Skript Art der Sache. Zum Beispiel müssen Sie nicht alles mit einem Drehbuch tun, um den Schauspielern zu sagen, was damit zu tun. Es ist schon da, verwendet wird, wie sie ist. Aus diesem Grunde werden wir exclude Sprachen zusammengestellt aus seinem calführte Skriptsprachen, obwohl sie zu Skriptzwecken in einigen Gelegenheiten verwendet werden können.

  2. Skriptsprache bedeutet, zu einer Komplex gesendeten Befehle Software-Anwendung; das ist der ganze Grund, warum wir Skripte in erster Linie schreiben - so dass Sie nicht wissen müssen, um die Komplexität der Funktionsweise der Software-Befehle, um es zu senden. Also, Skriptsprachen sind in der Regel Sprachen sein, dass senden (relativ) einfache Befehle für komplexe Software-Anwendungen ... in diesem Fall der Maschinensprache und Assembler-Code nicht es schneiden.

Darf ich vorschlagen, dass Skriptsprachen ein Begriff viele Leute gewesen sind, bewegt sich weg von. Ich würde sagen, dass es meistens kocht heute zu kompilierten Sprachen und dynamische Sprachen nach unten.

Ich meine, Sie nicht wirklich so etwas wie Python sagen kann, oder Ruby sind „Scripting“ Sprachen in der heutigen Zeit (man sogar Sachen haben wie Ironpython und JIT-your-Lieblings-Sprache , hat der Unterschied verwischt noch mehr).

Um ehrlich zu sein, persönlich fühle ich mich nicht mehr PHP eine Skriptsprache ist. Ich würde nicht erwarten, dass Menschen mögen PHP kategorisieren anders sagen Java auf ihrem Lebenslauf.

Skriptsprachen sind in der Regel innerhalb eines Scripting-Engine ausgeführt werden, die einen Teil einer größeren Anwendung ist. Zum Beispiel läuft JavaScript in Ihrem Browser Scripting-Engine.

Eine Skriptsprache ist eine Sprache, die jedes Mal das Skript interpretiert wird ausgeführt wird, es bedeutet einen Dolmetscher mit und die meisten sind sehr menschlich lesbar, nützliche eine Scriptsprache ist einfach zu erlernen und zu bedienen zu sein.

Jede übersetzbare Sprache in eine Skriptsprache gemacht werden und umgekehrt es hängt alles von einem Dolmetscher oder einen Compiler Implementierung als Beispiel C ++ einen Dolmetscher hat so kann es eine Script-Sprache aufgerufen werden, wenn verwendet, um (nicht sehr praktisch in allgemein als C ++ ist eine sehr komplexe Sprache), eines der nützlichsten Skriptsprachen gegenwärtig Python ...

So Ihre Frage der Definition zu annehmen, die auf die Verwendung eines Dolmetschers ist schnell und einfach scripted Programme auszuführen, zu adressieren einfache Aufgaben oder Prototyp-Anwendungen die leistungsfähigste Verwendung eines Script-Sprachen machen können, ist die Möglichkeit, für jeden Einsatz schließen eine kompilierte Anwendung zu erweitern.

ich es vorziehen, dass die Menschen nicht den Begriff „Skriptsprache“ benutzen, wie ich denke, dass es die Mühe abnimmt. Nehmen Sie eine Sprache wie Perl, die oft als „Skriptsprache“.

  • Perl ist eine Programmiersprache!
  • Perl ist wie Java und C ++ kompiliert. Es ist einfach viel schneller zusammengestellt!
  • Perl hat Objekte und Namespaces und Closures.
  • Perl hat IDEs und Debugger und Profiler.
  • Perl hat Training und Support und Community.
  • Perl ist nicht nur Web. Perl ist nicht nur Sysadmin. Perl ist nicht nur das Klebeband des Internets.

Warum brauchen wir sogar zwischen einer Sprache wie Java zu unterscheiden, die kompiliert und Ruby, die nicht ist? Was ist der Wert in der Kennzeichnung?

Weitere Informationen hierzu finden Sie unter http://xoa.petdance.com/Stop_saying_script .

Ein wichtiger Unterschied ist starke Typisierung (im Vergleich zu schwache Typisierung ). Skriptsprachen sind oft schwach eingegeben haben, die es ermöglicht, mehrere kleine Programme schnell zu schreiben. Für große Programme ist dies ein Nachteil, da es den Compiler / Interpreter hemmt autonom bestimmte Fehler zu finden, ist es sehr schwer, Refactoring Code zu machen.

Skriptsprachen Sprachen programmieren, wo die Programme in der Regel ausgeliefert werden Benutzer in einer lesbaren Textform zu beenden und wo gibt es ein Programm, das kann scheinbar direkt das Programm auszuführen. (Das Programm kann auch kompilieren Sie das Skript intern;. Das ist hier nicht relevant, da es nicht für den Benutzer sichtbar ist)

Es ist relativ häufig für Skriptsprachen der Lage sein, eine interaktive Sitzung zu unterstützen, in denen Benutzer nur ihr Programm eingeben können und sie haben sofort ausführen. Dies liegt daran, diese triviale Erweiterung der grundlegenden Anforderung aus dem ersten Absatz ist; die Haupt zusätzliche Anforderung ist die Zugabe eines Mechanismus, um herauszufinden, wenn eine typisierte-in-Anweisung abgeschlossen ist, so dass es an den Ausführungs-Engine gesendet werden kann.

Für eine etwas andere Perspektive auf die Frage. Eine Skriptsprache ist eine Programmiersprache, sondern eine Programmiersprache ist nicht unbedingt eine Skriptsprache. Eine Skriptsprache wird verwendet, um ein System zu steuern oder ein Skript. Das System könnte ein Betriebssystem sein, wo die Skriptsprache bash wäre. Das System könnte ein Webserver mit PHP die Scriptsprache sein. Skriptsprachen sind für eine spezifische Nische zu füllen; sie sind domänenspezifische Sprachen. Interaktive Systeme haben Skriptsprachen, die zu dem Begriff interpretiert, dass Skriptsprachen interpretiert werden; aber dies ist eine Folge des Systems und nicht die Skriptsprache selbst.

Eine Skriptsprache ist eine Sprache, die ein bestehendes Programm konfiguriert oder erweitert.
Eine Skriptsprache ist eine Programmiersprache.

Die Definition von „Skriptsprache“ ist ziemlich unklar.Ich würde es auf folgende Überlegungen stützen:

  1. Skriptsprachen verfügen normalerweise nicht über für den Benutzer sichtbare Kompilierungsschritte.Normalerweise kann der Benutzer Programme einfach mit einem einfachen Befehl ausführen.

  2. Programme in Skriptsprachen werden normalerweise im Quelltext weitergegeben.

  3. Skriptsprachen verfügen normalerweise über Laufzeiten, die auf einer großen Anzahl von Systemen vorhanden sind, und die Laufzeiten können auf den meisten Systemen problemlos installiert werden.

  4. Skriptsprachen sind in der Regel plattformübergreifend und nicht maschinenspezifisch.

  5. Skriptsprachen erleichtern den Aufruf anderer Programme und die Schnittstelle zum Betriebssystem.

  6. Skriptsprachen lassen sich normalerweise leicht in größere Systeme einbetten, die in konventionelleren Programmiersprachen geschrieben sind.

  7. Skriptsprachen sind normalerweise auf eine einfache Programmierung ausgelegt und legen viel weniger Wert auf die Ausführungsgeschwindigkeit.(Wenn Sie eine schnelle Ausführung wünschen, empfiehlt es sich normalerweise, die zeitaufwändigen Teile in etwas wie C zu codieren und die Sprache entweder in C einzubetten oder C-Bits aus der Sprache aufzurufen.)

Einige der oben aufgeführten Merkmale gelten auch für Implementierungen. In diesem Fall beziehe ich mich auf die häufigeren Implementierungen.Es gab C-Interpreter mit (AFAIK) keinem offensichtlichen Kompilierungsschritt, aber das trifft auf die meisten C-Implementierungen nicht zu.Sie könnten sicherlich ein Perl-Programm in nativen Code kompilieren, aber so wird es normalerweise nicht verwendet.Einige andere Merkmale sind sozialer Natur.Einige der oben genannten Kriterien überschneiden sich etwas.Wie gesagt, die Definition ist unklar.

würde ich sagen, Skriptsprache die eine stark ist Entitäten manipulieren sie sich nicht definieren. Zum Beispiel JavaScript manipuliert DOM vom Browser selbst erstellte Objekte betreibt PHP riesige Bibliothek von C-basierten Funktionen, und so weiter. Natürlich nicht eine genaue Definition, mehr eine Art und Weise, wenn es zu denken.

Wenn es nicht / würde nicht auf der CPU laufen, es ist ein Skript für mich. Wenn ein Dolmetscher auf der CPU unter dem Programm ausgeführt werden muss, dann ist es ein Skript und eine Skriptsprache.

Kein Grund, um es mehr komplizierter als das?

Natürlich in den meisten (99%) der Fälle, ist es klar, ob eine Sprache ist eine Skriptsprache. Aber bedenken Sie, dass eine VM des x86-Befehlssatz emulieren kann, zum Beispiel. Wäre das nicht der x86-Bytecode eine Skriptsprache, wenn auf einer VM laufen? Was passiert, wenn jemand war, einen Compiler zu schreiben, die Perl-Code in eine native ausführbaren verwandeln würde? In diesem Fall würde ich weiß nicht, was die Sprache selbst nicht mehr nennen. Es wäre der Ausgang sein, die Angelegenheit wäre, nicht die Sprache.

Dann wieder bin ich von so etwas nicht bewusst getan wurde, so jetzt ich immer noch komfortabel Berufung bin interpretierten Sprachen Skriptsprachen.

A script ist ein relativ kleines Programm. A System ist ein relativ groß Programm oder ein Sammlung von relativ großen Programmen.

Einige Programmiersprachen sind mit Funktionen, die die Sprache Designer und die Programmierung Gemeinschaft betrachten, nützlich zu sein, wenn relativ kleine Programme zu schreiben. Diese Programmiersprachen sind bekannt als Skriptsprachen , z.B. PHP.

In ähnlicher Weise werden andere Programmiersprachen mit Funktionen, die die Sprache Designer und die Programmierung Gemeinschaft betrachten, nützlich zu sein, wenn relativ große Programme zu schreiben. Diese Programmiersprachen sind bekannt als Systeme Sprachen , z.B. Java.

Nun, kleine und große Programme können in jeder Sprache geschrieben werden. Ein kleines Java-Programm ist ein Skript. Zum Beispiel ist ein Java „Hallo Welt“ Programm ein Skript, kein System. Ein großes Programm oder eine Sammlung von Programmen, die in PHP geschrieben ist ein System. Zum Beispiel Facebook, in PHP geschrieben, ist ein System, kein Skript.

Unter Berücksichtigung eine einzige Sprache-Funktion als „Lackmus-Test“ für die Entscheidung, ob die Sprache für das Skripting am besten geeignet ist oder die Systemprogrammierung ist fraglich. Zum Beispiel: Skripte kann auf Byte-Code oder Maschinencode kompiliert werden, oder sie kann durch direkte abstrakten Syntaxbaum (AST) Interpretation ausgeführt werden.

So eine Sprache ist eine Skriptsprache, wenn es in der Regel Skripte verwendet wird, schreiben . Eine Skriptsprache kann verwendet werden, um Systeme zu schreiben, aber solche Anwendungen sind wahrscheinlich zweifelhaft betrachtet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top