Benutzer-Werkzeuge

Webseiten-Werkzeuge


words:tags

Brainstorming im IRC

Was haben Emails, Files, Twitterpostings? Tags.

Forth hat Flags (Immediate) und Farben (Colorforth).

Flags und Farben sind eigentlich Tags. Sind sie vorhanden, haben die betreffenden Worte bestimmte Eigenschaften, die sie sonst nicht haben.

Mögliche Einsatzfelder für Tags sind

  • Immediate Flag (und andere)
  • Optimiererhinweise (Konstantenfaltung etc)
  • Wortlistenmitgliedschaft
    • Farben (die von Colorforth)
    • OO Varianten

    Aufhänger ist das Name Token

  • hat bislang alle Flags
  • Tags sind mit Namen assoziiert

Execution Tokens sind zu low level

Glossar

tag-id ist eine zellige Angabe ohne nähere Bewertung des numerischen Werts. nt ist das Name Token aus Forth 2012

  • create-tag ( – tag-id ) legt ein neues Tag an. Analog zu wordlist. Kann später einen Namen via constant erhalten.
  • assign-tag ( nt tag-id – ) weist ein Tag einem Wort zu. NT ist dessen Name Token
  • remove-tag ( nt tag-id – ) entfernt ein Tag von einem Wort
  • delete-tag ( tag-id – ) Entfernt ein Tag. Etwas problematisch, auch wordlists leben ewig.
  • map-tag ( ix tag-id xt – jy f ) Ein allgemeiner Iterator. Für alle Worte mit dem Tag mach was, flag ermöglicht das vorzeitige Verlassen der Schleife. Siehe traverse-wordlist.
  • has-tag? ( nt tag-id – f ) prüft, ob ein Wort mit einem (bekannten) Tag markiert ist.
  • get-tags ( nt – tag-n tag-1 n ) Lese alle Tags eines Wortes aus.
  • set-tags ( tag-n tag-1 n nt – ) Überschreibe alle Tags eines Wortes

Beispiele

Immediate wird zum Tag Immediate. Mittels „immedate has-tag?“ kann der Interpreter diese Eigenschaft abfragen und darauf reagieren.

Alle Worte mit dem Tag „FOO“ sind in der Wortliste „FOO“.

words/tags.txt · Zuletzt geändert: 2015-03-19 20:14 von bernd