Logo, een vergeten taal? III Door Janny Looyenga Leren van het leren. Ladybug is - zoals de schrijver al aangeeft - geen echt Logo programma. Het iseen grafisch programma, geschreven in Basic en daarna gecompileerd, maar welgebaseerd op Logo. Net als bij Logo bestaat de basis uit primitieven en wat decomputer nog niet kent, kan hem aangeleerd worden. Dit aanleren gaat dmv procedures (vergelijkbaar met de procedures in BBC BASIC). De opbouw van een Logo database is zo'n beetje te vergelijken met de opbouw vande database van een Expert Systeem (denk aan 'Tree of Knowledge' van Acornsoft). Bij een Expert systeem gaat het aanleren dmv vraagstelling (zgn ja/nee vragen) vanuit de vaste basis van (meestal) twee gegevens:
DIEREN (met de opdracht list krijg je de dieren te zien die ik al ken)
Denk je aan een dier? list Dieren die ik al ken zijn: vis vogel Denk je aan een dier? j Zwemt het? n Is het een vogel? n Het dier waaraan je dacht was een ? kat Tik eens een vraag in die een kat onderscheidt van een vogel: ? heeft het een staart Voor een kat zou het antwoord zijn? j Denk je aan een dier? list Dieren die ik al ken zijn: vis vogel kat Denk je aan een dier?
Bij een Logo database staan de primitieven vast. Dit zijn woorden in een taal, te gebruiken voor opdrachten en bewerkingen. Deze commando's zijn altijd in hetengels. Ze kunnen in het nederlands gezet worden, maar daarvoor is het nodig desource te vertalen (zie: SuperLogo (demo), een vertaling van Comenius Logo - http://www.input.sk/slogo/usage.htm#demo ). Het leuke hieraan is, dat deopdrachten zowel in het nederlands als in het engels werken.De primitieven van LadyBug zijn op te vragen door 'Load help' en daarna 'help'in te tikken. Het verschenen menu geeft keus uit 8 helpschermen.Zoals al gezegd lijkt Logo op BBC BASIC, maar er zijn ook verschillen. In Logo is er 1 scherm voor tekst en grafiek, waarbij in BBC Basic aparte schermenvoor tekst en grafiek zijn. Het tekenen van een vierkant in Basic en Logo, een vergelijking. BASIC | LOGO | mode 5 | forward 100 | move 400, 400 | right 90 | draw 800, 400 | forward 100 | draw 800, 800 | right 90 | draw 400, 800 | forward 100 | draw 400, 400 | right 90 | | forward 100 | Er wordt onmiddellijk getekend, daar we ons in de directe mode bevinden. Hetkan ook anders...
In beide gevallen kunnen we gebruik maken van de ingebouwde editor. In Basic tebeginnen met 'auto', in Logo met edit "<procedurenaam> of to <naam van deprocedure>, elke opdracht op een nieuwe regel en de laatste regel eindigend opend (een procedure is in feite een klein programmaatje, iedere procedure hoortdan ook een eigen naam te krijgen). Een return geeft vierkant defined. Hetvierkant is gedefinieerd, die kent hij nu. Tenminste, als je niet vergeet deprocedure te bewaren: save <naam> of gebruik F9. 10 Defprocvierkant | to vierkant | 20 mode 5 | forward 100 | 30 move 400, 400 | right 90 | 40 draw 800, 400 | forward 100 | 50 draw 800, 800 | right 90 | 60 draw 400, 800 | forward 100 | 70 draw 400, 400 | right 90 | 80 Endproc | forward 100 | | end |
De procedure in BBC Basic wordt aangeroepen door Procvierkant en die in Logodoor vierkant in te tikken.
De procedure vierkant kan echter korter. Allereerst door de woorden af tekorten: forward = fd en right = rt, daarna - als we goed tellen zien we dat we4x hetzelfde hebben ingetikt - door het gebruik van 'repeat'. De procedure wordt dan aldus:
to vierkant | | repeat 4 [fd 100 rt 90] | | end | |
Andere procedures:
to cirkel | | repeat 36 [fd 10 rt 10] | | end | |
to driehoek | | rt 30 | | repeat 3 [fd 120 rt 120] | | end | |
to rechthoek | | repeat 2 [fd 80 rt 90 fd 150 rt 90] | | end | |
to ruit | | left 30 | | repeat 2 [fd 100 rt 60 fd 100 rt 120] | | right 30 | | end | |
De 8Bit Acorn Computers Electron, BBC en Master gebruiken de functietoetsenvoor de diverse Logo commando's (helaas niet in de emulatoren). Ook in Logo is zo'n programmaatje te maken: to functietoetsen
make "toets readchar if :toets = 1 [fd 10] if :toets = 2 [bk 10] if :toets = 3 [rt 15] if :toets = 4 [lt 15] if :toets = 5 [cs] if :toets = 6 [penup] if :toets = 7 [pendown] if :toets = 8 [cirkel] if :toets = 9 [vierkant] if :toets = 0 [driehoek] functietoetsen end
Deze listing werkt in Ladybug (vermits de procedures bekend zijn); bij andere Logo dialecten moeten er misschien quotes voor de cijfers worden geplaatst. In de meest volledige versie van LadyBug Logo zit een demo, eigenlijk een soorthandleiding. Deze is te bekijken door 'Load tutor' in te tikken en daarna 'start'.In verband met snelle computers is er een vertragingsfactor (de WAITprocedure) in gezet die u kunt invullen achter de vraag: Enter a number.Na het zien van de demo kunt u vast al snel antwoord geven op de vraag: Hoe is deze ster gemaakt?
| |
(wordt vervolgd) Janny Looyenga P.S. Voor geinteresserden heeft Janny op haar website: http://www.nostalgia8.nl/logo.htm dieren en ladybug als zip-files ter download geplaatst. H. |