Survo-ohjelmisto sisältää valmiita keinoja hyvin monenlaisten tehtävien suorittamiseen. Toimintoja ketjuttamalla syntyy lukemattomia tapoja rakentaa erilaisia sovelluksia. Survoon perehtyneet käyttäjät osaavat näin kehitellä ratkaisut mieleisikseen.
Survolle ominainen editoriaalinen (tekstinkäsittelyyn perustuva) käyttötapa suosii luovaa toimintojen yhdistelyä. Toisaalta se vaatii käyttäjältään enemmän kuin esim. valikkopohjaiset järjestelmät. Jotta myös vähemmän tottuneet voisivat hyötyä Survosta, on alusta pitäen katsottu tarpeelliseksi liittää siihen piirteitä, jotka helpottavat järjestelmän ja sen eri työtapojen oppimista. Toisaalta on haluttu mahdollistaa Survolla tehtyjen asiantuntijasovellusten käyttö ilman Survon varsinaisten toimintojen tuntemusta. On siis tähdätty siihen, että Survolla voitaisiin tehdä opetusohjelmia kaikista Survon ulottuvilla olevista aiheista ja että taitavien käyttäjien laatimat omat sovellukset olisivat välittömästi muiden omaksuttavissa.
Jo nykyistä Survoa edeltäneessä SURVO 84 -järjestelmässä (Wang PC:llä) oli mukana opetusmoodi (tutorial mode), joka salli käyttäjän tallettaa kaikki toimenpiteensä (näppäinpainallukset) Survo-istunnon aikana valittuun tiedostoon. Näin nauhoitettu istunto tai sen osa saatettiin sitten toistaa sellaisenaan ikään kuin aavekäyttäjän tekemänä. Oli myös mahdollista muokata syntynyttä ohjaustiedostoa Survon oman toimittimen (editor) avulla ja tehdä siitä esim. opetuskäyttöön paremmin soveltuva lisäämällä sopivia, esim. opetuksen etenemisvauhtia sääteleviä koodeja.
Survon tällä tekniikalla laadittuja opetusohjelmia kutsuttiin "tutoreiksi", sillä mielenkiinto kohdistui yksinomaan opettamiseen. Nykyisen Survon kehittyessä osoittautui aiheelliseksi laajentaa opetusohjelmien laatimistekniikkaa ja ulottaa toiminnat myös asiantuntijasovellusten tekemiseen. Kehitys on johtanut vaiheittain siihen, että alunperin "tutoreitten" tekoon tarkoitettu tekniikka on muotoutunut yleiseksi makrokieleksi, joka ottaa huomioon sekä opetuksen että asiantuntijasovellusten tarpeet. Koska Survon makrokieli yltää moniin sellaisiin ratkaisuihin, joita tuskin enää pidetään tyypillisinä makroina, on katsottu aiheelliseksi kutsua Survolla tehtyjä makroja sukroiksi (lyhennys Survo-makrosta) ja niiden laatimiseen tarkoitettua oliopohjaista ohjelmointikieltä sukrokieleksi.
Sukrokieli poikkeaa rakenteeltaan muista oliopohjaisista kielistä, sillä se nojaa omien käskyjensä lisäksi olennaisesti Survon toimintoihin (näppäimet, komennot ja operaatiot). Sukrot voivat myös käyttää toisia sukroja aliohjelminaan. Käsittelyn kohteena olevat oliot (tekstit, tilasto- ja muut numeeriset aineistot, kuvat ym.) ovat suoraan Survolta saatuja rakenteita. Tällainen yhdistely tekee sukrokielestä voimakkaan työvälineen. Kaikki Survon erilaisiin (esim. tilastollisiin, numeerisiin ja graafisiin) toimintoihin liittyvä asiantuntemus on välittömästi hyödynnettävissä missä tahansa opetusohjelmassa tai asiantuntijasovelluksessa.
Vaikka sukrokieltä on useaan otteeseen laajennettu liittämällä siihen yhä enemmän yleisen ohjelmointikielen piirteitä, sen ei tarvitse sisältää kaikkea, koska monet rakenteet ja toiminnat ovat lainattavissa sellaisenaan Survosta. Usein sukrojen avulla yksinkertaisesti liimataan yhteen erilaiset Survolla tehdyt toimenpiteiden sarjat sopiviksi kokonaisuuksiksi.
Sukrot vaihtelevat laajuudeltaan ja käyttötavoiltaan suuresti.
Pienimmillään ne muistuttavat tavanomaisia makroja. Esim. monet
tekstinmuokkaukseen tarkoitetut aputoiminnat on tehty sukroina.
Tällaisia ovat mm. näppäinsukrot X (sanojen paikanvaihto), H (tavujen
siirto rivin lopusta seuraavan alkuun ja päinvastoin) ja S
(varjomerkkien kirjoittamiseen). Tottuneet käyttäjät tekevät hetkessä
omia apusukrojaan jatkuvasti toistuviin toimenpiteisiinsä.
Laajimmillaan sukrot ovat monista osasukroista koostuvia
opetusohjelmia tai runsaasti ehdollisia ja käyttäjän valinnoista
riippuvia toimenpiteitä sisältäviä erikoissovelluksia.
Kaikilla käyttöalueillaan sukrot vähentävät varsinaisen
ohjelmoinnin tarvetta. Ne vievät myös levyllä olennaisesti vähemmän
tilaa kuin itsenäiset ohjelmat. Esim. tyypillinen tilastollinen
analyysiketju on sukrona yleensä vain muutamia kilotavuja, kun
vastaavaan C-kieliseen ohjelmaan (joka ei siis käytä Survon valmiita
tilastollisia operaatioita) saatetaan tarvita yli 100 kilotavua.
Sukrot syntyvät joko siirtymällä Survo-työskentelyn aikana
opetustilaan (tutorial mode) ja antamalla Survon tallettaa kaikki
toimenpiteet valittuun tiedostoon tai kirjoittamalla sukrokielinen
ohjelma ja tallettamalla se Survon TUTSAVE
-komennolla. Usein sukroja
tehdään yhdistelemällä mainittuja työtapoja.
Kutakin sukroa siis vastaa erityinen tiedosto, jonka nimen
liitteenä on .TUT
. Sukrot tallentuvat tiedostoihin hyvin tiiviinä
koodina. Kun sukro toimii, Survon toimitin lukee tiedostoa merkki
merkiltä ja tulkitsee luetut merkit yleensä käyttäjän
näppäinpainalluksia vastaaviksi. Sukro-ohjelmassa saattaa kuitenkin
esiintyä erikoismerkkejä, koodiyhdistelmiä ja käskyjä, joilla
ilmaistaan mm. käyttäjälle osoitetut kysymykset ja ehdolliset
toimenpiteet.
Sukro-ohjelma (oli se tehty millä tekniikalla tahansa) luetaan
toimituskenttään selväkielisessä muodossa TUTLOAD
-komennolla, jolloin
ohjelmaa voi tutkia ja muutella. Muutosten jälkeen ohjelma talletetaan
vastaavalla TUTSAVE
-komennolla. Näiden luku- ja kirjoituskomentojen
takana on Survon sukrokääntäjä (CTUT.EXE
), joka muuntaa selväkieliset
ohjelmat Survon toimittimen ymmärtämään tiiviiseen muotoon. Alunperin
sukro-ohjelmat näkyivät toimituskentässä asussa, joka oli varsin
lähellä lopullista tiivistä muotoa (kts. esim. lukua Tutorial mode
Survon englanninkielisessä käyttöoppaassa vuodelta 1987).
Nyttemmin sukrokieltä on kehitetty monin tavoin selväkielisempään
suuntaan.
Tässä oppaassa kuvataan sukrojen ohjelmointia olettaen, että lukija tuntee ennestään Survon käyttötavat. Survon ominaisuuksista kerrotaan vain niiltä osin, jotka liittyvät sukrojen hallintaan. Survoon on lisätty esim. useita näppäinkoodeja, joilla helpotetaan "sokean" sukron "hapuilua" toimituskentässä. Monille sukroillehan on tyypillistä, että ne etsivät kentästä Survon operaatioilla saatuja tuloksia ja perustavat jatkotoimenpiteet löydettyihin arvoihin. Tällaisissa takaisinkytkennöissä sukron tulee aistia kohdistimen sijainti ja tunnistaa kenttään ilmestyneet avainsanat ja tulokset.
Koko oppaan aineisto, esimerkkeinä olevat sukrot mukaan lukien, on talletettu levykkeelle "Sukrojen ohjelmointi". Lukijan kannattaa tutkia esimerkkejä kokeilemalla niitä oman Survonsa avulla. Useimmat tekstiin sijoitetut esimerkit ovat luonteeltaan eräänlaisia sormiharjoituksia. Niitä ei yleensä ole tarkoitettu lopulliseen käyttöön, vaikka tarjoavatkin mallia jatkokehitelmille. Vasta oppaan lopussa esitellään joitakin tosikäyttöön suunniteltuja sukrosovelluksia.