HyperTalk
Paradigma | prozedural, ereignisgesteuert |
---|---|
Entworfen von | Dan Winkler |
Entwickler | Apple Computer Inc. |
Erstmals erschienen | 1987 |
Beeinflusst von | |
Programmierung natürlicher Sprache, Pascal | |
Beeinflusst | |
Aktionen, Apfelkript, ECMaskript, JavaScript, Jargon, LiveCode, Sensetalk, SuperTalk |
Hypertalk ist ein nicht mehr auf hoher Ebene, prozedural Programmiersprache 1987 von Dan Winkler erstellt und in Verbindung mit verwendet mit Apple Computer's Hypercard Hypermedia -Programm von Bill Atkinson. Weil die Hauptzielpublikum von Hypertalk die Programmierer begann, Hypertalk Programmierer wurden normalerweise als "Autoren" bezeichnet und der Prozess des Schreibens von Programmen wurde als "als" bezeichnet als "bezeichnet"Scripting". Hypertalk -Skripte ähnelten geschrieben Englisch und verwendete eine logische Struktur ähnlich der deses der der Pascal -Programmiersprache.
Hypertalk unterstützte die grundlegenden Kontrollstrukturen von prozedurale Sprachen: Wiederholen Sie dies für/while/bis/bis, wenn/dann/else sowie Funktions- und Nachricht "Handler" -Anrufe (ein Funktionshandler war ein Unterprogramm und ein Nachrichtenhandler als Verfahren). Datentypen Normalerweise musste der Programmierer nicht angegeben werden. Die Konvertierung ereignete sich transparent im Hintergrund zwischen Saiten und Zahlen. Da waren keine Klassen oder Datenstrukturen im traditionellen Sinne; An ihrer Stelle waren etwas Besonderes String -Literale, oder "Listen" von "Elementen", die von Kommas abgenommen wurden (in späteren Versionen, die Eigenschaft "itemDelimiter" erlaubte die Auswahl eines willkürlichen Charakters). Die Codeausführung begann in der Regel als Antwort auf ein Ereignis wie eine Mausklick auf ein UI -Widget.
In den späten 1980er Jahren überlegte[1] Verwendung HypercardHypertalk Skriptsprache als Standardsprache im gesamten Unternehmen und innerhalb seiner Klassischer Mac OS Betriebssystem sowie für Interprozesskommunikation Zwischen Apple- und Nicht-Apple-Produkten. Das Unternehmen lehnte die Entwicklung von Imitationen wie nicht ab SuperkarteAber es schuf das Hypertalk Standards -Komitee, um eine Inkompatibilität zwischen Sprachvarianten zu vermeiden.[1] Das Fall-unempfindlich Sprache war anfangs interpretiert, aber gewonnen Just-in-Time-Zusammenstellung mit Hypercard 2.0.[2]
Beschreibung
Grundlegende Operationen
Bei den meisten grundlegenden Operationen, einschließlich mathematischer Berechnungen, befürwortete Hypertalk die natürliche Reihenfolge von Prädikaten gegenüber der in Mathematical Notation verwendeten Reihenfolge. Zum Beispiel in Hypertalks stellen
Zuweisungsbefehl, die Variable wurde am Ende der Anweisung platziert:
stellen 5 * 4 hinein das Ergebnis
während in der traditionelleren BASIC Programmiersprache (und die meisten anderen), dasselbe würde durch Schreiben erreicht:
das Ergebnis = 5 * 4
Der Hypertalk-Code hat den Nebeneffekt, das zu erstellen Variable das Ergebnis im Fliegen. Skripte können einen Typ oder Wert einer Variablen mit der Variablen zuweisen stellen
Befehl, Hypertalk machen sehr schwach tippt. Die Conversions zwischen variablen Typen waren unsichtbar und automatisch: Die Zeichenfolge "3" konnte mit der Nummer 5 multipliziert werden, um die Nummer 15 oder die Nummer 5 zu erstellen verkettet auf die Zeichenfolge "3", um die Zeichenfolge "35" zu erzeugen. Hypertalk würde sich nicht beschweren, wenn die Typen nicht automatisch konvertiert werden konnten.
Durchflusskontrolle und Logik waren im Allgemeinen anderen gemeinsamen Sprachen ähnlich, wobei a Wenn ... dann ... sonst ... Ende wenn
Struktur für Bedingungen und Unterstützung Schleifen basierend auf einem flexiblen Wiederholen ... Ende wiederholen
Syntax. Kommentare wurden mit zwei minus Zeichen vorangestellt: - Dies ist ein Kommentar
.
Objekte, Container und Skripte
Hypercards primär Benutzeroberfläche Konzept war das Karte, ein Anzeigesystem, das eine emulierte Karteikarte. Karten wurden normalerweise zum Speichern von Informationen verwendet, ähnlich wie bei einem konventionellen Datensatz Flat-File-Datenbank. Das grafische Layout der Karte wurde mit der Maus erstellt, indem verschiedene Elemente auf der Karte platziert wurden, z. B. Textfelder und Schaltflächen. Eine Master -Layout -Karte "Karte" als die als die bekannt Hintergrund wurde hinter den transparenten Bereichen jeder Karte gezeigt. Objekte, die auf dem Hintergrund platziert sind, wie Felder und Schaltflächen, würden als gemeinsames Layout unter mehreren Karten geteilt, jedoch mit kartenspezifischen Inhalten. Die Sammlung von Karten, Hintergründen und die zugehörigen Daten, die darin gespeichert sind, wurden in einer einzelnen Datei gespeichert Stapel (von Karten). Insgesamt werden alle diese datenhaltigen Objekte als als bezeichnet als Behälter.
Hypertalkfunktionen oder Skriptewurden normalerweise innerhalb der gelagert Skript
Immobilien in vielen Containern des Stacks erhältlich. Skripte könnten auf die Eigenschaften eines Containers zugreifen Instanzvariablen, Verwendung der erhalten
und einstellen
Anweisungen. Das Skript -Eigentum hielt einen einfachen Text und hatte keine besonderen Eigenschaften; Skripte können in jedem Textcontainer, einschließlich Zeichenfolgenvariablen, eingelegt und aus ausgeführt werden.[a] oder aus anderen Stapeln importiert werden Verwenden Sie
Befehl. Ein Skript kann sogar von Benutzer bereitgestellt werden, die in ein Feld auf dem Bildschirm eingetippt wurden. Willkürlicher Text könnte mit dem ausgeführt werden tun
Befehl, ähnlich wie dynamisch SQL.[3]
In Bezug auf Container
Ein Schlüsselkonzept in Hypertalk war die Art und Weise, wie es sich auf Container über ein Navigationssystem bezogen, das auf der visuellen Hierarchie des Stapels basiert. Jeder Container im Stapel erhielt beim Erstellen eine eindeutige ID -Nummer und konnte auch einen optionalen Namen erhalten. Skripte können sich auf Objekte beziehen, indem sie eine dieser Bezeichnungen zusammen mit einem Objekt verwenden Typ angegeben mit dem von
Operator. Dieser Bediener verwendete eine natürliche Sprachsyntax, die leicht lesbar war. Selbstdokumentationscode. Beispielsweise möchte ein Skript, das in einer Schaltfläche auf einer Karte gespeichert ist der Wert:
stellen das Wert von Karte aufstellen "Typhere" hinein der Wert
Verschiedene kontextbezogene Aspekte von Aussagen könnten durch den Dolmetscher abgeleitet werden. In der obigen Anweisung zum Beispiel, da das Skript im Kontext einer Schaltfläche auf einer bestimmten Karte ausgeführt wird, der Kennung Karte Es wurde verstanden, dass sich der Benutzer auf die Karte bezieht, mit der der Benutzer interagierte, obwohl sich die Taste selbst normalerweise auf dem Hintergrund befindet. Zusätzlich, "der Wert"(Der vom Benutzer eingereichte Text) wurde als Haupteigenschaft und als Ziel von Operationen angenommen, wenn sie nicht anders angegeben.Kartenfeld"Es wurde angenommen :
stellen fld "Typhere" hinein der Wert
Objekte in einem bestimmten Kontext - zum Beispiel der Karte oder des Hintergrunds - wurden auch eine Laufzeitnummer basierend auf ihrem gegeben Z-Ordnung auf dem Bildschirm. Um die Navigationsposition zu nutzen, enthielt Hypertalk auch eine Vielzahl von einer Vielzahl von Ordinal- und Kardinal Referenzierung von Systemen zur Vereinfachung der Syntax weiter. Unter der Annahme, dass das Feld "Typhere" das einzige Feld auf der Karte ist, könnte auch der obige Code geschrieben werden:
stellen das Erste Karte aufstellen hinein der Wert
oder:
stellen Karte aufstellen 1 hinein der Wert
Die Wahl des Adressierungsstils wurde dem Programmierer überlassen. Oft wurden verschiedene Stile in verschiedenen Aussagen verwendet, um den Code lesbarer zu machen.
Hypertalk enthielt das mich
Container, der auf die gleiche Weise wie die handelte wie die selbst
Qualifikation in den meisten gefunden objektorientierte Sprachenund einfachen Zugriff auf das aktuelle Containerobjekt. Weniger verbreitet war die es
Variable, die den Wert des letzten Betriebs für bestimmte integrierte Betreiber hielt. Zum Beispiel:
Fragen "Was ist der Wert?" stellen es hinein Karte aufstellen "Anzeige"
verwendet die Fragen
Befehl zur Anzeige a Dialogbox und erfassen Sie den in ein begleitenden Textfeld geschriebenen Text; Wenn der Dialog durch Drücken abgeschlossen ist Zurückkehren oder klicken OK, der Wert wird dem zugewiesen es
Pseudo-Variable. Dieser Code kopiert diesen Wert dann in ein Kartenfeld mit dem stellen
Aufgabenverwalter.
Sammlungen
Container eines bestimmten Typs waren auch als Sammlungen mit einer pluralisierten Version dieses Containertyps als Name erhältlich - die Sammlung der Felder auf einer Karte war Kartenfelder
. Diese Sammlungen waren selbst Container mit ihren eigenen Eigenschaften. Der Schlüssel unter diesen war die Nummer
Eigenschaft, die bei Iterationen und ähnlichen Aufgaben häufig verwendet wurde. Wenn man beispielsweise alle Felder auf einer Karte verbergen wollte, kann dies mit diesem Code erreicht werden:
wiederholen mit i = 1 zu das Nummer von Karte Felder ausblenden aufstellen i Ende wiederholen
Dieser Code enthüllt ein weiteres gemeinsames Merkmal von Hypertalk: dass eine Eigenschaft möglicherweise mehrere Namen und Betreiber enthält. In diesem Fall der ausblenden
Befehl und die zugehörigen Show
handeln, indem Sie den Wert des Containers festlegen sichtbar
Eigentum. Daher Feld ausblenden i
ist genau gleichwertig zu set the visible of field i to false
. Ein ähnliches Beispiel war das Sperrbildschirm
Befehl, der die visuelle Aktualisierung beendete, was eine Kurzform für set the lockscreen to true
, wo Schlosserbildschirm
ist eine Eigenschaft von Hypercard selbst - auch ein Behälter. Viele Beispiele für diese Art von syntethischer Zucker wurden in Hypertalk gefunden, um die Syntax zu vereinfachen und die Lesbarkeit des gemeinsamen Codes zu verbessern.
In Hypercard 2.2 und später war die Sammlung von Sammlungen auch als Container erhältlich Teile
. Dies ermöglichte es einem Skript, alle Objekte in einem Container mit einem einzelnen Iterator anzusprechen.
Handhabungstext
Ein bemerkenswertes Merkmal des Hypertalk -Containermodells war die Behandlung von Text. Jede Textsammlung, ob eine wörtliche Zeichenfolge in einem Programm oder Text, die in ein Textfeld eingegeben wurde, wurde selbst als Container mit mehreren Sammlungen von Containern angesehen. Dadurch konnten Skripte Text mit denselben Navigationsbefehlen wie jedem anderen Container analysieren. Zum Beispiel möchte man beim Parsen einer von Space Delimited Datendatei analysierenden Datendatei die dritte Spalte wie folgt extrahieren:
stellen das dritte Wort von theFileText hinein Kolten
Mit dieser Syntax konnte das Skript den Text "laufen", um bestimmte Daten zu finden, wie in diesem Beispiel:
stellen das Erste Charakter von das dritte Wort von Linie 5 von Karte aufstellen "etwas Text" hinein Thechar
Dieser Prozess der Behandlung von Text als Behälter wurde als "Chunking" und die Funktionen als "Chunk -Ausdrücke" bezeichnet. Dieselben Arten von Ausdrücken wurden verwendet, um die Dateimanipulation zusammen mit einer Reihe von Dateiverwaltungsfunktionen zu verarbeiten. Der folgende Code öffnet eine bekannte Datei, liest daraus, extrahiert Daten und schließt dann die Datei:
an Maus nach unten Antworten Datei "Bitte wählen Sie eine Textdatei zum Öffnen aus." wenn es ist leer dann Ausfahrt Maus nach unten stellen es hinein Dateipfad wenn dort ist a Datei Dateipfad dann offen Datei Dateipfad lesen aus Datei Dateipfad bis um Rückkehr stellen es hinein CD fld "etwas Feld" nah dran Datei Dateipfad einstellen das Textstil von Charakter 1 zu 10 von Karte aufstellen "etwas Feld" zu Fett gedruckt Ende wenn Ende Maus nach unten
Hypertalk enthielt auch Funktionen für das Chunking-Zeichenfolgen unter Verwendung eines Substring-Find-Betriebs unter Verwendung des in
Operator. Der folgende Code findet alle Beispiele eines bestimmten Musters mit dem in
Im Rahmen des wiederholen
Schleife, während Offset
Findet den Ort dieses Musters innerhalb der Zeichenfolge:
Funktion ersetzen Muster,Newstr,Instrument wiederholen während Muster ist in Instrument stellen Offset(Muster,Instrument) hinein pos stellen Newstr hinein Charakter pos zu (pos +das Länge von Muster)-1 von Instrument Ende wiederholen Rückkehr Instrument Ende ersetzen
Listen und andere Sammlungen
Hypertalk verwendete das gleiche Chunking -System, um Strukturen wie Arrays oder Listen zu erstellen. Eine solche Struktur würde erstellt, indem mehrere Datenelemente in eine durch Kommas getrennte Variable platziert werden. Verschiedene Arten von Daten könnten in ein Hypertalk -Skript mit Zeichenfolgen importiert werden, die nach Bedarf analysiert werden. Beispielsweise wurde die Position der Objekte auf dem Bildschirm durch ein Zahlenpaar definiert, die die X- und Y -Koordinaten relativ zur oberen linken Ecke darstellen. Der folgende Code erstellt eine Variable, die aufgerufen wurde pos Das enthält ein Koordinatenpaar und manipuliert dies dann, um alle Tasten auf einer Karte in einer Diagonale von oben links nach unten zu positionieren:
an Mausup stellen "100.100" hinein pos wiederholen mit x = 1 zu das Nummer von Karte Tasten einstellen das Lage von Karte Taste x zu pos hinzufügen 15 zu Artikel 1 von pos Ende wiederholen Ende Mausup
Das Artikel
Chunking -Ausdruck basierte ursprünglich auf einem Komma Abgrenzer, aber spätere Versionen von Hypercard veränderten dies in den Wert von ItemDelimiter
die Möglichkeit, willkürliche Listen und Strukturen zu analysieren.
Nachrichten und Ereignisse
Hypertalk verwendete ein objektorientiertes Konzept zum Aufrufen von Skripten, wobei Objekte im Stapel "Ereignisse" sendeten Mitteilungen das würde von verarbeitet werden Handler Das erklärte ihr Interesse daran, die Ereignisse mit dem zu erhalten an
Syntax. Zum Beispiel würden die meisten GUI -Container das senden Maus nach unten
Nachricht, wenn die Maustaste geklickt wurde, und dann a Mausup
Nachricht, wenn es noch auf dem neuesten Stand in diesem Container veröffentlicht wurde, und ein Skript könnte diese Ereignisse wie diese erfassen:
an Mausup - Platzieren Sie hier zusätzlichen Code Ende Mausup
Nachrichten für Ereignisse wurden zuerst an das Skript im Objekt gesendet, das das Ereignis erstellt hat, beispielsweise, wenn der Benutzer auf eine Schaltfläche klickte Mausup
Die Nachricht wurde zuerst an diesen Taste gesendet. Wenn das Skriptobjekt der Schaltflächen keiner hatte Mausup
Handler (oder überhaupt kein Skript), es wurde dann an die Karte, den Hintergrund, den Stapel, alle Stapel übergeben, deren Skripte explizit mit dem importiert wurden Verwenden Sie
Befehl, der "Home Stack" (ein vom Benutzer ausgewählter Hypercard-Stack) und schließlich zur Hypercard-Anwendung selbst.
Für viele einfache Ereignisse wie Mausklicks auf Schaltflächen wird das Skript direkt in das betreffende Objekt, die Schaltfläche selbst, platziert. Beispielsweise kann man den obigen Beispielcode in einem Schaltflächenhandler auf diese Weise verwenden:
an Mausup wiederholen mit i = 1 zu das Nummer von Karte Felder ausblenden aufstellen i Ende wiederholen Ende Mausup
In dem Fall, in dem Code von mehreren Standorten angerufen wurde oder als globaler Handler für ein Ereignis verwendet wurde, konnte das Skript den ursprünglichen Absender des Ereignisses mit dem bestimmen Ziel
Funktion. Ebenso könnten Skripte Ereignisse an andere Container senden, die das verwenden senden
Befehl und dann den Navigationscode verwenden, um auf den Container zu verweisen, der den Code dieses Handlers befindet:
senden "Mausup" zu Karte Taste "OK" von Karte "Richtigkeit"
Kombination der String -Verarbeitung von Hypertalk mit der tun
Der Befehl ermöglichte die Konstruktion interaktiver Dolmetscher, indem ein Textfeld auf eine Karte platziert und diesen Code dann in das Skript des Feldes platziert wird:
an Mausup auswählen das Klickline stellen Wort 2 von das Klickline hinein Leinenum tun Linie Leinenum von CD fld 1 Ende Mausup
Klickline
ist eine globale Eigenschaft, die den Namen und die Zeilennummer des letzten Felds in einem Formular wie möglich zurückgibt, in einem Formular wie line 10 of card field 4
. Dieser Code wählt zunächst den gesamten Text in der angeklickten Zeile aus, extrahiert dann die Zeilennummer in eine lokale Variable und verwendet dann dann tun
So führen Sie den Text als Hypercard -Skript aus.
Das Maus nach unten
Die Nachricht wurde an eine Schaltfläche gesendet, wenn der Benutzer darauf klickte, und Mausup
wurde gesendet, als der Benutzer die Maus in ihr veröffentlichte, um seine Aktion auszulösen. In ähnlicher Weise sandte Hypercard periodisch Leerlauf
Botschaft, Mouseenter
, Mouselave
, ... und verschiedene andere Nachrichten im Zusammenhang mit der Navigation zwischen verschiedenen Karten in einem Hypercard -Stack sowie Benutzereingabe (Eingabe der Benutzer (Taste nach unten
, Funktionstaste
, ...) und Systemereignisse. In Bezug auf die Skripter gab es keine Hauptereignisse wie in anderen prozeduralen Programmiersprachen.
Kontrolle der Hypercard
Im Gegensatz zu General Schnelle Anwendungsentwicklung Plattformen, Hypercard -Stapel sahen immer wie Stapel aus - die Menüleiste war Hypercards und nicht die des Programmierers (standardmäßig - das Schreiben konnte Menüs hinzufügen, löschen und ändern), das einzelne Fenster hatte eine feste Größe (in frühen Versionen) und in bestimmten Fällen, und,,,, Befehle, die für den Betrieb von zentraler Bedeutung waren, waren Teil der Anwendung selbst und nicht direkt im Hypertalk selbst verfügbar.
Ein gutes Beispiel dafür war die Erstellung neuer Karten, die Teil der Anwendung war und nicht direkt aus der Hypertalk -Sprache selbst zugänglich waren. Eine neue Karte konnte nur mit dem neuen Karten -Menüelement erstellt werden, der in Code mithilfe mithilfe von Simulierung simuliert werden kannDomenu "neue Karte"
. Während Hypertalk in Menübefehle anrief, wurden auch Menübefehle in Hypertalk Handler aufgerufen. Um den benutzerdefinierten Code auszuführen, wenn der Menüelement Kopie ausgewählt wurde, platzierte man ein Skript im Stapel mit der auf domenu itemname
Handler und dann untersuchen Artikelname
um zu sehen, ob es "Kopie" war.
Hypertalk lieferte auch die Skriptsteuerung über die integrierten Zeichenwerkzeuge, indem sie einfach die erforderlichen Änderungen in Lackwerkzeugen skriptieren und Mausbewegungen mithilfe des Ziehen Sie von Anfang bis Ende
und die Klicken Sie auf Position
Befehle.
Vergebene Semantik
Eine einzigartige Unterscheidung zwischen Hypercards Programmiersprache Hypertalk und scheinbar ähnlichen Sprachen wie AppleScript war, dass Hypertalk -Skripte in welchen Eingaben sie akzeptierten.
Abgesehen von der oben genannten implizite Variablenerklärung, wenn ihnen ein Wert zugewiesen wurde und die Art und Weise, wie die Werte implizit zwischen den Typen konvertiert wurden Charakter 2 von 1234
), Hypercard würde auch bestimmte Ausdrücke erkennen und Unterwerte aus ihnen herausziehen.
Zum Beispiel:
stellen das Selectedline von Karte aufstellen "Listbox" hinein die Auswahl - gibt 'Zeile 2 bis 3 des Kartenfeldes "Listbox"' '' auswählen Linie 1 von Karte aufstellen "Listbox" auswählen Linie (Wort 2 von die Auswahl) von Karte aufstellen "Listbox" auswählen (das Selectedline von Karte aufstellen "Listbox") - Klammern nur für veranschaulichende Zwecke hinzugefügt
oder
abspielen Cembalo c e g abspielen Cembalo "C e g" stellen "C e g" hinein die Melodie abspielen Cembalo die Melodie
Während sich das Endergebnis ähnlich wie die Expansion von Variablen durch Bash-Skript vor dem Parsen anfühlte, war dies eine Sonderpause für Spezialitäten und hatte nicht die Fallstricke, bei denen Daten als Code bewertet würden. So sind beispielsweise alle folgenden Syntaxfehler in der Melodie, keine Funktionsaufrufe:
abspielen Cembalo "C e g ()" stellen "c e () g" hinein die Melodie abspielen Cembalo die Melodie
Hypertalk erweitern
Obwohl die Hypertalk-Sprache genau wie die Hypercard selbst gelangt war, erhielt sie durch sein Plugin-Protokoll, die sogenannten externen Befehle (XCMDs) und externe Funktionen (XFCNs), die nativen Code-Container waren (als Macintosh-spezifisch), einen zweiten Mietvertrag über das Leben durch das Plugin-Protokoll, die sogenannten externen Befehle (XCMDs) und die externen Funktionen (als Macintosh-spezifisch). Ressourcen) mit einem einzelnen Einstiegspunkt und Rückgabewert. XCMDS und XFCNs könnten genauso wie regelmäßige Nachrichten- und Funktionshandler von Hypertalk -Skripten bezeichnet werden und konnten auch Nachrichten an die Hypercard -Anwendung zurücksenden. Einige unternehmungslustige XCMD-Autoren fügten erweiterte Funktionen wie Full Color Support (ColorizEHC, Hypertint, AddColor), mehrere Spezialfenster (Eingabeaufforderung, Boulevardzeitung, Textoid, Listoid, Showdialog, Megawindows), Drag & Drop-Unterstützung und verschiedene Hardware-Schnittstellen zur Sprache hinzu.
Nachkommen von Hypertalk
Verschiedene Skriptsprachen haben einen Übersatz von Hypertalk implementiert:
- Compileit! -Talk-Ein Hypercard-Stack und XCMD von Tom Pittman Dadurch ermöglichte das Kompilieren des nativen 68000 -Maschinencodes (z. B. für XCMDS und XFCNs) aus dem Hypertalk -Code und das Aufrufen der nativen Macintosh -Toolbox -Routinen. Compileit war BootstraßeDas heißt, spätere Versionen wurden mit früheren Versionen von sich selbst zusammengestellt.
- Double-XX-Talk-Double-XX war ein leichter Hypercard-Klon, der als Ergänzung zu Compileit versendet wurde! und ermöglichte es, XCMDs und XFCNs ohne Hypercard auszuführen, und enthielt sogar einen kleinen Hypertalk -Dolmetscher.
- Mediatalk - die Sprache von Oracle Media -Objekte, ein Nachkomme von Plus und der erste plattformübergreifende Hypercard-Klon. Darüber hinaus war der einzige, der wirklich modular war.
- Plustalk - Die Sprache von Plus, von Spinnaker -Software (ursprünglich von Formatverlag entwickelt), die als Grundlage für die Grundlage verwendet wurde Oracle Media -Objekte.
- Sensetalk -die Sprache der nächsten Origination Hypersense und das VNC-basierte Testwerkzeug Aubergine.
- SuperTalk - Die Sprache von Superkarte, der erste Hypercard -Klon von Bill Appleton. Appleton schrieb auch das Volk Weltbauer Abenteuer -Konstruktionskit.
- Transkript (früher Revtalk und Metatalk) - die in der implementierte Sprache LiveCode (ehemals Revolution und Metacard) Softwareplattform und Entwicklungsumgebung. Metacard war ein früher unix-originierter Hypercard-Klon, der auf klassischem Mac OS, Mac OS X, Windows, Linux und Solaris lief.
- Xion - Ursprünglich die Sprache eines Open -Source -Hypercard -Klons, der nie zustande kam. Jetzt implementiert als OpenXion.
Diese Klone und Dialekte (üblicherweise unter dem Spitznamen von bezeichnet Xtalk-Planguages) fügte der Sprache verschiedene Funktionen hinzu, die von einer modernen Programmiersprache erwartet werden, z.
Es gibt auch Sprachen, deren Syntax und Struktur Einflüsse aus Hypertalk zeigen, wie beispielsweise:
- Aktionen - Die Skriptsprache für Adobe Flash.
- Apfelkript - Die Haupt -Scripting -Sprache von Apples klassischem Mac OS und immer noch unterstützt in Mac OS.
- Jargon -Die Programmiersprache des Macromedia-Regisseurs begann mit einer Xtalk-ähnlichen Syntax, obwohl spätere Versionen in eine Richtung gingen, in der JavaScript ähnelte.
- JavaScript - eine Skriptsprache von geschriebener Sprache von Brendan Eich was üblicherweise als Teil von a umgesetzt wird Webbrowser Um erweitert zu werden Benutzeroberflächen und dynamisch Websites.[4] Es wurde später verallgemeinert und standardisiert als ECMaskript.
Viele Methodennamen, die zuerst von Hypertalk populär gemacht wurden OnmouseUp
Event -Handler in JavaScript.[5] Obwohl Asymetrix Toolbook wird oft auch als Hypercard -Klon angesehen, seine Skriptsprache hat offenbar wenig Ähnlichkeit mit Hypertalk.
Siehe auch
- Information 7 -Eine Programmiersprache mit ähnlich englischähnlicher Syntax
Anmerkungen
- ^ Was wiederum aus Textdateien geladen werden könnte.
Verweise
- ^ a b Flynn, Laurie (1989-02-27). "Apple hält sich über Hypertalk standardisiert". InfoWorld. p. 31.
- ^ Dave Kelly, "Werkzeuge des Handels: Compileit! 2.0!", Mactech, Vol. 7 Nr. 9
- ^ Erland Sommarskog und Frank Kalis, "Der Fluch und Segen der dynamischen SQL", 23. Juni 2011
- ^ Eich, Brendan (1998). "Vorwort". Im Goodman, Danny (ed.). JavaScript -Bibel (3. Aufl.). John Wiley & Sons. ISBN 0-7645-3188-3. Lccn 97078208. OCLC 38888873. Ol 712205m.
- ^ Brendan Eich, "Splash Keynote 2011, Folie 10"
Externe Links
- Pantechnicon Hypertalk -Wiki -Seiten -Hypertalk-Sprachreferenz (Kontrollstrukturen, Ereignisse, integrierte Funktionen usw.)