Logo (programski jezik)
Paradigma: | funkcijski, obrazovni |
---|---|
Pojavio se: | 1967. |
Dizajnirao: | Wally Feurzeig i Seymour Papert |
Disciplina tipiziranja: | dinamičko |
Glavne implementacije: | UCBLogo i mnoge druge |
Pod utjecajem: | Lispa |
Utjecao na: | Smalltalk, Etoys |
Programski jezik Logo je funkcijski programski jezik. Predstavlja prilagodbu i dijalekt Lispa - toliko da ga neki zovu Lispom bez zagrada. Stvoren je za obrazovnu uporabu, ponajprije za konstruktivističko učenje, od strane Daniela G. Bobrowa, Wallyja Feurzeiga i Seymoura Paperta. Danas je najviše poznat po svojoj tzv. turtle grafici, ali jezik također posjeduje značajne mogućnosti za baratanje listama, datotekama i U/I. Logo se može rabiti za podučavanje većine koncepata računarske znanosti, kao što to čini profesor pri UC Berkeley Brian Harvey u trilogiji Computer Science Logo Style.
Poznatiji interpreteri Loga
- MSW Logo
- FMS Logo
- UCB Logo
- ELICA Logo
- MicroWorlds
- Comenius Logo
- StarLogo
Kratka povijest
Logo je od svog nastanka do danas doživio mnoge verzije različitih autora. Pokušat ćemo ih kronološki prikazati i pri tomu otkriti još poneku zanimljivost.
Prvi Logo je stvorila “MIT Artificial Intelligence Laboratory” grupa predvođena Wallaceom Feurzeigom 1967. godine. U radu i razvoju sudjelovao je i matematičar Seymour Papert. Razvoj se svodio uglavnom na MIT 60-tih godina i na rad nekih manjih centara. Logo, kao dijalekt Lisp-a, stvoren je kao alat za učenje. Njegove karakteristike: modularnost, proširivost, interaktivnost i fleksibilnost, posljedica su toga. Najpopularnije proširenje vezano je uz pojavu Logo kornjače, grafičkog pokazivača koji je u početku bio robot. Upravo pojava robota koji je trčkarao po podu i ostavljao tragove, koštala je Logo gubitka ozbiljnosti. Ostale karakteristike i proširenja (multimedijalne prezentacije, kompleksna istraživanja, istraživanja u robotici, glazbi, jeziku i drugo) gube zbog toga značaj.
Sedamdesetih godina, započeo je svjetski “bum” Logo-a razvojem osobnih računala. MIT grupa razvila je Logo za “Apple II” i “Texas Instruments TI 99/4”. Osamdesetih stvorene su i učionice u Dallasu i New Yorku s tim računalima i Logom. Rezultati proučavanja i iskustva doveli su do stvaranja komercijalnih produkata kao što su “TIlogo”. 1977. godine, kompanija “Terrapin Software” započela je distribuciju robotskih Logo kornjača. 1980. formirana je “Logo Computer Systems, Inc. (LCSI)”. Mnogi značajni ljudi za razvoj Logo-a surađivali su u LCSI koji je razvio “Apple Logo”. Komercijalna verzija izazvala je brzo širenje, koje je još više ubzano pojavom knjige “Mindstorms” Seymora Paperta. Javile su se mnoge verzije na mnogim platformama. Logo za MSX računala bio je popularan u Europi, Južnoj Americi i Japanu. Atari Logo i Commodore Logo u Sjevernoj Americi.
Sredinom 80-tih računala sa “video game” mogućnostima tržišno su izgubila bitku s MSDOS strojevima. Njihov je pad povukao i Logo sa sobom, dok su MSDOS strojevi počeli vladati i u školstvu (osim u Americi). Održali su se neki projekti kao “MacLogo” s poboljšanjem funkcionalnosti i “Object Logo” s kompilatorom za izradu samostojećih objektno orjentiranih programa. Iako se samostalne aplikacije mogle kreirati, Logo nije postao popularan među programerima.
1985. godine nastao je “LogoWriter” sa novougrađenim text-procesorskim mogućnostima (obrada teksta) i već prije viđenim (IBM i Apple) višestrukim kornjačama koje su mogle imati razne oblike. U to vrijeme, pojava nekih modernih blještavih edukacijskih softwarea, istisnula je Logo koji se presporo razvijao. Tomu je pridonijelo i nekoliko pogrešaka unutar krugova ljudi koji su razvijali Logo u SAD i Kanadi, a koji su inače prednjačili u njegovom razvoju. Na sreću, u latinskoj Americi i dalje su se održavali kongresi i ugrađivao Logo u škole. Tako je, 1995. godine, održan “Congreso Logo”. U Japanskim školama “LogoWriter2” bio je najpopularnija verzija. Sličnu povoljnu situaciju nalazimo u Engleskoj i Slovačkoj (Comenius Logo).
U Americi, 1993. nastaje “MicroWorlds” (LCSI) za Macintosh (razvija se i verzija za PC DOS) koji dodaje značajne promjene. Najznačajnije su promjene u višezadaćnosti i paralelnoj obradi podataka. Mitchel Resnick iz MIT-a razvija “StarLogo”; masivnu paralelnu verziju Logo-a. Tisuće kornjača sada mogu raditi istovremeno i interaktivno.
Nastaju razne knjige i nove verzije Logo-a, među kojima i UCB Logo Briana Harveya za Unix, Macintosh, MSDOS i Windows. On je napisao i trilogiju “Computer Science Logo Style” koja se smatra vrlo značajnom u svijetu, a bazira se na UCB Logo-u.
Primjer MSW Logo programskog koda
Donji primjer crta kvadratnu spiralu izvana na unutra, ako mu je drugi ulazni podatak (:d) pozitivan broj. Ako je on negativan onda crta prema van. Prvim ulaznim podatkom (:x) određujemo duljinu prve crte kvadratne spirale, a svaka sljedeća je ili manja ili veća za vrijednost drugog ulaznog podatka (:d). U primjeru se rabi tehnika rekurzivnog programiranja.
to spirkvad :x :d
if or :x<1 :x>500 [stop]
fd :x rt 90
spirkvad difference :x :d :d
end
Vrijednost d se ne mjenja dok se x mijenja ili na manje ili na više. Naime, ako pozovemo:
spirkvad 100 10
prva vrijednost x je 100, a sljedeća je 100-10=90, sljedeća je 90-10=80 i tako dalje dok ne postane manja od 1, kad se prekida procedura. Ako upišemo:
spirkvad 100 -5
onda je prvi x=100, a sljedeći je 100-(-5)=105, sljedeći 105-(-5)=110 i tako dok ne postane veći od 500 kada se procedura prekida.