Logo jest uniwersalnym, w pełni konwersacyjnym językiem programowania. Ma on najwięcej wspólnych cech z językiem LISP. Logo może swobodnie wykonywać dowolne operacje na tekstach. W języku tym możliwe jest definiowanie zmiennych globalnych i lokalnych, istnieje iteracja i rekurencja.
Gramatyka Logo jest stosunkowo prosta. Każdy program jest zbiorem procedur i funkcji. Instrukcje traktowane są jako wywołania procedur podstawowych.
Dużą zaletą tego języka jest to, że dzięki swojej strukturze utrudnia on chaotyczne programowanie.
Wraz z dynamicznym rozwojem mikrokomputerów powstało wiele implementacji tego języka na poszczególne komputery. Największą popularność ten język miał w latach 80-tych. Obecnie możemy sobie przypomnieć ten język, dzięki implementacji dokonanej przez Timothy Lipetz'a na komputery Palm.
Użytkownik w TinyLogo ma do dyspozycji 65 procedur podstawowych. Wszystkie te procedury można podzielić na dwie grupy:
- instrukcje, których celem jest wykonanie określonej czynności,
- funkcje, czyli operacje, w których wykonanie czynności jest zakończone przekazaniem pewnej wartości
Instalacja TinyLogo
TinyLogo wymaga do uruchomienia systemu Palm OS w wersji co najmniej 3.0, programu PocketC 3.10 lub nowszej wersji (http://www.orbworks.com), a także biblioteki MathLib.
W skład dystrybucji wchodzą następujące pliki:
- TinyLogo.prc
- TinyLogoSamples.prc
- TinyLogo_Procedures.PDB
- TinyLogoProcedures.txt
- PocketC.prc
- MathLib.prc
Pierwsze kroki
Po zainstalowaniu programu powinniśmy zobaczyć trzy ikony (PocketC, TinyLogo, TinyLogoSamples):
Przy pierwszym uruchomieniu trzeba odczekać około dziesięciu sekund, jest to czas potrzebny na inicjalizację programu.
Po chwili można wcisnąć przycisk Scrool Up (w palmtopie) by otworzyć okienko do wprowadzania komend.
Jeżeli chcemy przejrzeć wszystkie procedury możemy wyświetlić je za pomocą komendy help.
W TinyLogo możemy używać równoważnie pełnych nazw instrukcji lub ich skrótów, np. "print" lub "p" jest w ten sam sposób interpretowana.
A teraz na początek prosty przykład dodawania:
print sum 2 2
Jak by się można było spodziewać, otrzymamy
4
Można zauważyć na załączonym przykładzie, że operator poprzedza cyfry. Będziemy się musieli jednak przyzwyczaić do tego odmiennego zapisu. Zamiast operatorów (+,-,*,/) używamy (sum, difference, product, quotion) w skrócie (sum, dif, prd, quo). Zamiast:
2+2
piszemy sum 2 23*(5-2)
piszemy prd 3 dif 5 2
Na początku trudno będzie się do tego przyzwyczaić. Ale w miarę szybko każdy się przyzwyczai.
Programowanie odbywa się tutaj w sposób interaktywny, wydajemy polecenie, a komputer stara się je natychmiast wykonać. Są także inne tryby, gdzie można zgromadzić większą liczbę instrukcji by następnie je wykonać wspólnie.
Grafika żółwia
Początek przygody z tym językiem najlepiej zacząć od żółwia. TinyLogo tak samo jak każde Logo, może pracować w trybie graficznym w którym wydaje się polecenia żółwiowi.
Aby przejść do trybu żółwia należy użyć polecenia turtle albo tu. By wyjść z tego trybu należy użyć noturtle lub ntu.
Po przejściu do trybu żółwia, zobaczymy.
W lewym dolnym rogu widać dwa kursory wskazujące na to, że program czeka na polecenia.
Możemy teraz wydawać naszemu żółwiowi różne polecenia sterujące, np. forward 40 spowoduje, że nasz żółw przemieści się o 40 punktów do przodu.
Do obsługi żółwia mamy jeszcze wiele innych poleceń takich jak:
clearscreen, home, pendown, pennormal, penerase, penreverse, turtlex, turtley, turtleheading, back, left, right, setheading, setx, sety, box, printtext, icon, loadicons.
Języki programowania doskonale sobie radzą przy powtarzających się operacjach.
Tak samo jest w i TinyLogo. Instrukcją która pozwala na powtarzanie różnych czynności jest repeat (rep).
Dla zobrazowania działania tej instrukcji, zdefiniujemy najpierw nową procedurę i nazwiemy ją kwadrat
to kwadrat rep 4 [fd 30 rt 90]end
Polecenie repeat ma dwa argumenty. Pierwszy określa liczbę powtórzeń, drugi to spis rozkazów które ma wykonać za każdym razem.
Teraz gdy wydamy polecenie cs kwadrat, zobaczymy
By zatrzymać jakąś procedurę możemy użyć przycisku Scroll Down.
Oczywiście programowanie w tym języku nie polega tylko na wydawaniu pojedynczych poleceń. Aby zgrupować polecenia w większą liczbę, każdą linię należy zakończyć znakiem +. Dzięki temu polecenia nie są wykonywane od razu, jeżeli chcemy zakończyć grupowanie, wystarczy że w kolejnej linii nie zamieścimy znaku +.
Przy popełnieniu błędu możemy przejść do trybu reedycji, w tym celu należy wpisać znak -.
Dzięki temu można zredagować linię w której nastąpiła pomyłka.
TinyLogo oczywiście umożliwia także wczytywanie i zapisywanie programów które napisaliśmy.
Do zapisania procedury wydajemy polecenia saveproc lub sp.
Składnia: saveproc "myproc "memoname
Do ładowania procedur stosujemy polecenie load lub ldload "myprocUruchamianie przykładów.
Wraz z dystrybucją tego języka otrzymujemy zestaw przykładów, do ich załadowania:
1. Należy załadować plik TinyLogoSamples.prc do palmtopa.
2. Uruchomić TinyLogoSamples - co spowoduje to zapisanie przykładów które można uruchomić spod TinyLogo.
3. Można po tym już skasować TinyLogoSamples które już nie będą potrzebne.
Dla każdej demonstracji:
1. Uruchomić ponownie TinyLogo (unikniemy dzięki temu niepotrzebnego zużycia pamięci).
2. Z linii poleceń wydać instrukcję np. load "loops.
3. Podczas ładowania pojawią się nazwy procedur dzięki którym będziemy wiedzieli jak uruchomić dany przykład, w tym przypadku będzie to loopdemo.