62 lines
2.1 KiB
Markdown
62 lines
2.1 KiB
Markdown
|
documentation? does not exist.
|
||
|
|
||
|
organization of the infoblock:
|
||
|
1. accesslevel
|
||
|
2. name
|
||
|
3. clearcache
|
||
|
4. cache name
|
||
|
|
||
|
here is the text that i used for the draft. rather outdated:
|
||
|
|
||
|
Fixed program memory
|
||
|
=====================
|
||
|
|
||
|
For the time being, simply on the hard drive in a directory.
|
||
|
|
||
|
Fixed data storage
|
||
|
==================
|
||
|
Not at all, later maybe hard disk, or mysql, or whatever
|
||
|
always.
|
||
|
|
||
|
|
||
|
Data memory
|
||
|
=====================
|
||
|
Doubly linked list, each element can also have a name.
|
||
|
Access either by push / pop or shift / unshift, using a number as with
|
||
|
an array or by its name like a hash.
|
||
|
However, it is also possible to access it directly via a pointer. pointer
|
||
|
however, cannot be created directly by the user, only by
|
||
|
correspondingly privileged programs.
|
||
|
|
||
|
Diese Speicherstruktur nenne ich "vector".
|
||
|
|
||
|
Datentypen:
|
||
|
Nach Außen hin sollen nur wenige verschiedene Datentypen sichtbar sein:
|
||
|
- Wert (integer, string, was auch immer)
|
||
|
- Vector
|
||
|
|
||
|
Wert wird intern in mehrere subtypen unterteilt, die jedoch automatisch
|
||
|
bei Bedarf konvertiert werden:
|
||
|
- int
|
||
|
- float
|
||
|
- string, bzw. pointer auf string
|
||
|
- pointer auf Elemente eines Vektors
|
||
|
|
||
|
Aus technischer Sicht gibt es nach Außen hin eigentlich auch nicht die
|
||
|
Unterscheidung zwischen Wert und vector. Auch hier kann und wird bei Bedarf
|
||
|
eine automatische Konvertierung vorgenommen. Im Normalfall wird jedoch der
|
||
|
Anwender dies nicht tun, und in der Dokumentation wird auch immer ein klarer
|
||
|
Unterschied zwischen normalen Werten und Vektoren gemacht.
|
||
|
|
||
|
Ein Sonderfall ist der Pointer auf Elemente eines Vektors: Weder kann von
|
||
|
einem Wert in diesen Typ konvertiert werden, noch anders herum (bzw. doch,
|
||
|
aber dann käme nur ein String "pointer" oder 0 bei heraus).
|
||
|
|
||
|
Die einzelnen Elemente eines Vektors werden in einem union gespeichert. Der
|
||
|
Union enthält die verschiedenen möglichen Ausprägungen der Werte, also int,
|
||
|
float, und pointer. Zudem gibt es ein Feld, in dem gespeichert wird, welche
|
||
|
Ausprägung gerade "aktiv" ist.
|
||
|
|
||
|
Ein zusätzlicher Typ, den man später noch hinzufügen könnte wäre "array".
|
||
|
Dieser Typ würde sich zum Speichern größerer Datenmengen eignen, da er
|
||
|
gegenüber einem Vektor keinen Overhead pro Element hätte.
|