Komenskio Logo kalbos duomenų tipų analizė
Valentina DAGIENĖ
Matematikos ir informatikos institutas
dagiene@ktl.mii.lt
1. Įvadas
Logo Lietuvoje ne itin patraukia mokslininkų dėmesį, todėl pirmiausia
šiek tiek supažindinsime su esminiais principais. Logo pirmiausia asocijuojasi
su vaikais ir jų mokymu mąstyti, naudojant kompiuterį bei naujausias technologijos
priemones. Kas yra Logo taikliausiai atsakė H. Abelsonas, JAV mokslininkas,
drauge su kolega A. di Sessa išleidęs fundamentalią knygą, skirtą universitetų
studentams mokytis šios kalbos [1]. 1982 m. jis rašė: Logo bendriniu vardu
vadinama švietimo filosofija ir nuosekli programavimo kalbų, kurios padeda
įgyvendinti šias idėjas, šeima.
Logo programavimo kalbos atsirado S. Papertui suprojektavus pagrindines
vaikų mokymo kompiuteriu idėjas ir išleidus knygą Mindstorms: Children,
Computers, and Powerful Ideas (1995 m. išversta į lietuvių kalbą) [6].
S. Papertas nurodo, kad Logo mokymo filosofija, apimanti vis didėjančią
programavimo kalbų, kurias ši filosofija pagimdė, šeimą.
Šiuo metu pasaulyje suskaičiuojama keletas dešimčių Logo programavimo
kalbų bei jų realizacijų. Lietuvoje vartojamos dvi: LogoWriter ir Komenskio
Logo. Abi sistemos sulietuvintos, pirmosios parengtas popierinis žinynas
[2], antrosios elektroninis.
2. Tradicinis duomenų klasifikavimas
Logo kalbų šeimos ištakos funkcinė Lispo programavimo kalba. Pagrindinė
Lispo konstrukcija (ir duomenų, ir programos požiūriu) sąrašinės struktūros.
Sąrašinė struktūra tai tarp skliaustų išvardyti bet kurie objektai (skaičiai,
simboliai, žodžiai). Lygiai taip pat ir daugumos Logo kalbų pagrindinė
konstrukcija sąrašas.
Logo kalbose sąrašais paprastai aprašomi ir duomenys, ir komandos.
Logo kalbų sąrašai nuo Lispo sąrašų skiriasi sintakse: Logo kalbose sąrašams
užrašyti vartojami ne paprastieji, kaip Lispo kalboje, bet laužtiniai skliaustai.
Klasifikuojant tradiciškai Komenskio Logo kalba turi tris duomenų
tipus: žodžiai, sąrašai ir paveikslai. Panagrinėsime juos išsamiau.
2.1. Žodžiai
Žodis Komenskio Logo kalboje tai baigtinė skaitmenų, raidžių, skyrybos
bei specialių ženklų seka be tarpų. Žodis nurodomas prieš jį parašius kabutes,
pavyzdžiui: "Suma. Toks žodžių žymėjimas išreiškia vientisą
Komenskio Logo sistemą: apskritai čia kabutės rodo kintamojo vardą, o
žodis yra duomens vardas.
Komenskio Logo kalboje galimas tuščias žodis, kurį sudaro tik kabutės.
Tuščias žodis turi didelę reikšmę įvairiose komandose. Pavyzdžiui, komandoje
rašyk
" nurodžius tuščią žodį, modeliuojamas žymeklio perkėlimas
į naujos eilutės pradžią.
Komenskio Logo kalboje yra daug komandų veiksmams su žodžiais atlikti,
jei jų trūksta kuriamos aprašant naujas procedūras.
Atskira žodžių rūšis yra skaičiai. Skaičiai užrašomi be kabučių prieš
juos. Galimi sveikieji ir realieji skaičiai (trupmeninė dalis nuo sveikosios
skiriama kableliu, taip pat yra galimybė kurti skaičius su rodikliu).
2.2. Sąrašai
Sąrašas Komenskio Logo kalboje tai elementų (žodžių, paveikslų
ar vėl sąrašų) seka, rašoma laužtiniuose skliaustuose. Sąrašo elementai
vienas nuo kito skiriami tarpais.
Žodžių sąrašai vadinami sakiniais. Sąraše žodžiai rašomi be kabučių,
pavyzdžiui, [Katinas mėgsta žuvį]. Sakinys gali būti ir skaičių
sąrašas: [1 2 3 4 5].
Sąrašų elementams netaikomi jokie ribojimai. Taigi sąrašo elementai
gali būti vėl sąrašai ir t. t. Pavyzdžiui,
[0 [1 2] ] yra dviejų elementų sąrašas: pirmas jo elementas
skaitmuo 0, antras sąrašas, turintis du elementus (skaitmenis 1 ir
2). Tokia hierarchinė struktūra labai vertinga programavimo kalbose.
Veiksmams su sąrašais atlikti Komenskio Logo kalboje yra daug įvairių
komandų. Yra galimybė kurti naujas komandas aprašant jas procedūromis
ar funkcijomis.
2.3. Paveikslai
Ypatingas duomenų tipas Komenskio Logo kalboje yra paveikslas (pradžioje
buvo vadinta vaizdeliu,
anglų k. image). Paveikslas tai baigtinė (nuo 0 iki 255) kadrų
seka. Kadru (anglų k. frame) vadinamas Komenskio Logo grafikos
redaktoriumi nupieštas atskiras paveikslėlis. Paveikslas kadrų (paveikslėlių)
visuma.
Paties Logo požiūriu paveikslas yra Vėžliuko kaukė (anglų k. shape),
leidžianti kurti judesį (programuojant animaciją).
Paveikslo duomenų tipas labai panašus į žodžio: abiem atvejais yra baigtinė
ženklų seka. Todėl daugelį tų pačių komandų galima atlikti ir su žodžiais,
ir su paveikslais.
Paveikslo duomenų tipas labai patogus kuriant įvairius judančius projektus.
Tai puiki Komenskio Logo autorių idėja [5].
3. Duomenų struktūrų konstravimas
Remiantis tradiciniu požiūriu į programavimo kalbas (ypač procedūrines)
Komenskio Logo turi tris minėtas duomenų rūšis: žodžius, paveikslus ir
sąrašus. Logo daug paveldėjo iš funkcinės Lispo kalbos. Todėl čia yra labai
menki skirtumai tarp duomenų ir pačios programos (komandų, t. y. valdymo
struktūrų).
Bendriausiu atveju duomenims formuoti reikalingi trys mechanizmai:
-
paprasti, elementarūs vienetai (reikalingi sudėtingesnėms duomenų struktūroms
konstruoti);
-
konstravimo priemonės (kad būtų galima kurti sudėtingas struktūras ir struktūrinius
duomenis);
-
abstrakcijos priemonės (sudėtingiems objektams įvardinti, kad su jais,
kaip su vientisais vienetais, būtų galima atlikti veiksmus).
|
Komenskio Logo kalboje realizuoti visi trys mechanizmai: žodžiai ir
paveikslai laikomi elementariais duomenimis, konstravimas atliekamas panaudojant
sąrašų operacijas (komandos gauk.sakinį, dėk.pirmu
ir
pan.), duomenų abstrahavimas suteikiant sudėtingiems duomenims vardus
(komandos tebus, vadink, procedūrų aprašymas).
Visas tris galimybes galima iliustruoti šiomis dviem Komenskio Logo komandų
eilutėmis:
tebus "melodija [I21 T80 L8 O2 d c 2c f# g#]
grok :melodija |
Žodžių sąrašas nurodo naudojamą muzikos instrumentą, melodijos tempą,
natų ilgumą, oktavą, pauzes ir, žinoma, pačias natas.
Komenskio Logo autoriai A. Blaho ir I. Kalašas pateikia kitokį, modernesnį
požiūrį į duomenų struktūras [4; 5]. Jie laiko, kad Komenskio Logo kalboje
yra elementarūs duomenų tipai (anglų k. atomic) ir duomenų tipų
konstruktoriai. Konstruktoriais kuriamos sudėtingesnės duomenų struktūros,
vadinamos abstrakčiais duomenimis. Vadinasi, Komenskio Logo kalboje galima
sukonstruoti be galo daug sudėtingų duomenų struktūrų.
Elementarūs duomenys yra žodžiai ir paveikslai. Nors jie ir sudaryti
iš mažesnių vienetų (žodžiai iš ženklų, paveikslai iš kadrų) ir yra
komandos šių duomenų išardymui, tačiau iš esmės tie mažesni vienetai kalboje
nematomi: bet kuri žodžio dalis vėl yra žodis, vienas ženklas taip pat
žodis; bet kuri paveikslo dalis vėl paveikslas, vienas kadras taip
pat paveikslas; be to yra tušti žodžiai ir paveikslai.
Sudėtinėms duomenų struktūroms kurti vartojami sąrašai. Pateiksime keletą
konkrečių duomenų struktūrų pavyzdžių. Išsamiau ir daugiau pateikta straipsnyje
[3].
Taškas. Taškas aprašomas sujungiant į sąrašą du skaičius x
ir y koordinates. Gaunamas vienas objektas, kurį galime pavadinti
vardu, pavyzdžiui,
Su taškais atliekamos įvairios operacijos: kai kurios yra numatytos Komenskio
Logo kalboje, kitas gali susikurti pats vartotojas aprašydamas procedūras.
Laikas. Laiką nusako komanda laikas, pavyzdžiui:
parodyk laikas
[13 55 2 30] |
Tai keturių skaičių sąrašas, nurodantis valandas, minutes, sekundes
ir sekundžių šimtąsias dalis. Taigi laiką galime įvardinti ir laikyti nauja
duomenų struktūra:
tebus "t laikas
parodyk :t
[13 55 2 30] |
Naujai aprašyta duomenų struktūra laikas perduodama parametru
procedūroms bei funkcijoms.
Tekstas. Tekstas gali būti įdomia Logo duomenų struktūra. Tarkime,
kad
-
bet kuris Logo žodis yra tekstas;
-
jei x1, x2,
yra Logo žodžiai, tai [x1 x2
] yra
tekstas.
|
Tekstas yra ypatinga duomenų struktūra, kadangi tekstui galima nurodyti
šriftą, dydį, spalvą, padėtį, kryptį. Yra daugybė Komenskio Logo komandų,
skirtų dirbti su tekstais.
Pateikėme tik vieną kitą Komenskio Logo duomenų struktūrų pavyzdį;
analogiškai galima sukurti daugelį kitų. Naudojantis sąrašų mechanizmu,
jų galima sukurti begalę. Metodine prasme tai puiki, kūrybiška mokymosi
terpė ir mokiniams, ir studentams.
4. Išvados
Tradiciniu požiūriu Komenskio Logo kalboje galima įžvelgti tris duomenų
rūšis: žodžius, paveikslus ir sąrašus. Remiantis moderniais programavimo
principais, čia atpažįstamos dvi elementarios duomenų rūšys (žodžiai ir
paveikslai) bei galingas konstruktorius sąrašas duomenų struktūroms
kurti (duomenų abstrahavimui).
Laikydami sąrašą priemone duomenų abstrahavimui galime gauti kiek norima
daug naujų duomenų struktūrų. Tai puiki kūrybiška terpė, kurią galėtų užsiimti
daugelio mokyklų ir jaunesniojo, ir vyresniojo amžiaus mokiniai.
Literatūra
1. H. Abelson, and A. A. di Sessa, Turtle Geometry. The Computer
as a Medium for Exploring Mathematics, The MIT Press, Cambridge (1980).
2. T. Balvočienė, V. Dagienė, A. Klupšaitė, Logo žinynas: LogoWriter
komandų žinynas mokytojams ir mokiniams, Folium, Vilnius (1996).
3. A. Blaho, and I. Kalas, I beg your pardon Turtles: Don't forget
about data structure, Proc. of Eurologo'97, Budapest, 4058 (1997).
4. A. Blaho, and I. Kalas, SuperLogo: Learning by Developing,
Longman Logotron, Cambridge (1998).
5. A. Blaho, and I. Kalas, Playing, Developing and Computing
with Images in Comenius Logo for Windows, Proc. of Eurologo'95, Birmingham,
1519 (1995).
6. S. Papertas, Minčių audros: vaikai, kompiuteris ir veiksmingos
idėjos, Žara, Vilnius (1997).
Straipsnis išspausdintas leidinyje Lietuvos matematikų
draugijos XXX konferencijos darbai (Vilnius, 1999) |