Die kompilierte ausführbare Datei muss einen Parser enthalten , der externen Programmcode lesen kann . Der Programmcode muss nicht wie C oder Python oder xyz aussehen - es kann sich um jede Art von beschreibenden Daten handeln, die für den jeweiligen Zweck geeignet sind. Zum Beispiel Schwedisch oder Morse.
Der externe Programmcode muss eine Syntax haben , damit der Parser sie versteht und sie zeichenweise liest. Die Syntax kann Bezeichner, numerische Werte, Operatoren usw. Beschreiben (und Code kann diese enthalten) .
Der Parser ist fest (kompiliert), funktioniert aber mit flexiblem, externem Code.
Die kompilierte ausführbare Datei muss über eine interne API für die relevante Funktionalität verfügen. damit der Parser Aktionen ausführen kann. Höchstwahrscheinlich muss es auch (bidirektionalen) Zugriff auf die internen Daten der ausführbaren Datei geben, oder der Parser muss eine Art Datenspeicherung und -verwaltung bereitstellen.
Der Parser kann den externen Programmcode beim Start der ausführbaren Datei lesen, oder er kann (Teile davon) ad hoc lesen , oder er kann ihn für jeden Frame erneut lesen (wäre ineffizient), oder der Code kann sogar von Hand eingegeben werden und im Parser gepostet, sobald er fertig ist (wie: "Einheit X 5 Schritte vorwärts bewegen" [Enter]).
Im Wesentlichen ist der externe Code nicht festgelegt - er kann sich zu jedem Jahr, Tag oder jeder Minute ändern, die ausführbare Datei muss jedoch nicht neu kompiliert werden. Nur das resultierende Verhalten, das von der ausführbaren Datei gehostet wird, ändert sich.
Der Text, den Sie gerade lesen, wird (und noch viel mehr, wenn er gesprochen wurde) interpretiert, weil Sie ihn beim Lesen in Ihrem Gehirn "ausführen", ohne zu wissen, was der nächste Satz sagt (oder selbst wenn er sich möglicherweise sofort ändert) jetzt). Im Gegensatz zu Stack Overflow (Pre) kompilieren Sie die gesamte Story in Ihrem Gehirn zu Bytecode, der sie dann ausführt - und ofc dann nicht mehr ändern kann.
Das Phänomen, das noch andauert, ist Interpretation. Das Schreiben von Skripten ist nur der Vorgang des Erstellens einer Beschreibung oder des Schreibens . Alle Computerkodierungen sind Imo-Skripte - wir beschreiben, was passieren soll. Das Wort "Scripting" hat eine etwas verkippte Bedeutung, aber bitte schön. Wir wissen was wir meinen.
Es gibt absolut nichts Außergewöhnliches bei interpretierten Sprachen, und es ist in keiner Weise ein umstrittener Begriff . Eine Vielzahl von ihnen existiert, und einige der ältesten werden interpretiert und nicht kompiliert. In einer interpretierten Sprache könnte man zum Beispiel von Hand schreiben:
sock = Socket.New (AddressFamily.InterNetwork, SocketType.Stream ProtocolType.Tcp) [ENTER]
... und dann 30 ... nein, 45 Minuten Kaffeepause :-). Bei der Rückkehr ist "sock" vorhanden und kann weiter verwendet werden, indem Sie mehr von Hand eingeben oder die Automatisierung des Interpreters fortsetzen.