Tuesday 19 January 2010

Skriptihöskä Alpha V3

Long time no blogspotpost.

Kun kysyntä oli niin kovaa, tein sen arkkitehtuurimuutoksen Skriptihöskän tukirakenteisiin. Ja jos totta puhumme, kyseessä oli tarvittu arkkitehtuurimuutos. Yritän karistaa Höskän pölyisistä kellareista noita taulukkoja pois, ja toteuttaa kaiken taulukkoa vaativan kokoelmilla/tyypeillä/linkitetyllä listalla/kutsu miksi haluat.

Toinen, ruokatunnilla mieleentullut idea 'tulkkauksen' nopeuttamiseksi, kuuluu seuraavasti:
Oletan nyt julmasti että kaikki, keitä asia kiinnostaa, tuntevat CB:n Type-EndType - rakenteen toiminnan.

Kun nykyinen type - rakenne, joka säilyttää tulkattavan koodin, näyttää seuraavalta:

 Type skripti 'Kokoelma johon skripti ladataan
    Field rivi As String
EndType

niin ajattelin lisätä tuohon toisen kentän, nimellä ei ole merkitystä mutta tyyppi tulee olemaan Byte tai Short. Moottorin alkuun luettelisin N vakiota, joilla jokaisella on oma, uniikki numeronsa. Jos nimeän nämä vakiot kunnolla, voin tehdä kääntäjän seuraavan pseudokoodin mukaisesti:

luetaan rivi lähdekoodia (eli yhden skripti - typen esiintymän rivi - kenttä)
tutkitaan ensimmäinen sana (GetWord 1)
jos sana on "tulosta" niin asetetaan tavukentän arvoksi sama, kuin tulosta - vakion
ja sama inputilla/odota_painalluksella ja muilla. Periaatteen näkee tuosta.

Tämä johtaisi siihen, että kun koodi ajettaisiin esikäsittelyn lisäksi byte/short - kääntäjän lävitse, saattaa koodin käynnistäminen kestää kauemmin. Mutta, kun voitaisiin  For=Each - luupissa nykyisen Select GetWord(rivin eka sana) - rivin muoto muuttaa muotoon Select Byte/Short-kenttä_jonka_nykyinen_esiintymä_omaa, saataisiin prosentuaalista nopeutta. Pähkinänkuoressa: tavujen Selectin kautta ajaminen on nopeampaa kuin StringLinejen!

Ja vielä, nyt annan luvan haaveilla Include - komennosta höskään. Omaan selvän suunnitelman siitä, miten tuon saa toteutettua. Nähkäämme taasen!

No comments:

Post a Comment