Capitolo 5
Convenzioni adottate da XLOGO

Questo capitolo espone alcuni punti chiave circa il linguaggio LOGO e circa XLOGO in modo specifico.

5.1 I comandi e loro elaborazione

Il linguaggio LOGO permette di invocare alcuni eventi tramite comandi interni. Questi comandi sono chiamati primitive. Ciascuna primitiva può accettare uno o più parametri che vengono chiamati argomenti. Per esempio, la primitiva PulisciSchermo non accetta alcun argomento mentre la primitiva Somma accetta due argomenti.
Stampa Somma 2 3 restituirà 5.

Gli argomenti LOGO sono di tre tipi:

Nota: i Numeri sono trattati a volte come valori numerici (per esempio Avanti 100), altre volte come parole (per esempio Stampa Primo 12 scrive 1).

5.1.1 Le primitive generali

Molte primitive possiedono una forma generale ossia possono essere usate con un numero di argomenti indefinito. Queste primitive sono:

Stampa Somma Prodotto o




e Elenco Frase Parola

Per notificare l’interprete LOGO che queste primitive saranno usate nella loro forma generale occorre inscrivere il comando fra parentesi tonde, come nell’esempio seguente:

Stampa (Somma 1 2 3 4 5) 
# 15 
 
Stampa (Elenco [a b] 1 [c d]) 
# [a b] 1 [c d] 
 
Se (e 1=1 2=2 8=5+3) [Avanti 100 RuotaDestra 90]

5.2 Le procedure e le variabili

Oltre alle primitive è possibile definire comandi personalizzati. Questi comandi sono chiamati procedure. Le procedure sono definite mediante le primitive Per …Fine. Il blocco di comandi che la procedura eseguirà viene posto all’interno delle due precedenti primitive. Esse possono essere create utilizzando l’editor interno di XLOGO. Ecco un breve esempio:

Per quadrato 
  Ripeti 4 [Avanti 100 RuotaDestra 90] 
Fine

Come le primitive anche le procedure possono trarre vantaggio degli argomenti. Per passare argomenti alle procedure si utilizzano le variabili. Una variabile è una parola alla quale si può associare (assegnare in termini informatici) un valore. Le variabili sono quindi una sorta di contenitori che possono essere riempiti di valori a nostro piacimento. Ecco un semplice esempio:

Per totale :a :b 
  Stampa Somma :a :b 
Fine

Invocando totale 2 3 otterremo 5 come risultato.

5.3 Il carattere speciale \

Il carattere speciale \ (barra rovesciata) permette la creazione di parole contenenti simboli vuoti o di particolare significato come l’andare a capo. Se \n è usato la frase salta alla linea successiva e \␣ seguito da uno spazio permette di inserire uno spazio in una parola. Per esempio:

  Stampa "xlogo\ xlogo 
  # xlogo xlogo 
  Stampa "xlogo\nxlogo 
  # xlogo 
  # xlogo

Per inserire la barra rovesciata in una parola occorre scrivere \\.
Allo stesso modo, per includere quei caratteri a cui XLOGO assegna particolari significati ( ( ) [ ] # ) in una parola occorre prefissarli con la barra rovesciata.
Tutti i simboli preceduti da \ sono ignorati. Questo è particolarmente importante nello scrivere i nomi dei file.. Per esempio per impostare il percorso attuale a c:\Miei Documenti:

  ImpDir "c:\\Miei\ Documenti.

Da notare l’uso di \␣ per notificare all’interprete LOGO dell’esistenza dello spazio fra Miei e Documenti. Se si omette la doppia barra rovesciata il percorso diventa c:Miei Documenti e l’interprete restituirà un messaggio di errore circa l’inesistenza di tale percorso.

5.4 Maiuscole e minuscole

XLOGO non fa differenza tra maiuscole e minuscole nei nomi delle procedure e delle primitive. Quindi la procedura quadrato definita precedentemente può essere invocata come QUADRATO, Quadrato, qUadrato e così via, l’interprete LOGO la eseguirà in ogni caso. Al contrario XLOGO differenzia le maiuscole dalle minuscole nel caso degli elenchi e delle parole, per esempio:

Stampa "Ciao 
# Ciao (la maiuscola iniziale viene conservata)

5.5 Gli operatori e la sintassi

Ci sono due modi per scrivere taluni comandi. Per esempio per sommare 4 e 7 si può usare la primitiva Somma che richiede due argomenti: Somma 4 7, o si può usare l’operatore “+”: 4+7. Entrambi i modi hanno il medesimo effetto. La seguente tabella illustra la relazione tra operatori e primitive:





Somma Differenza Prodotto Quoziente




+ - * /




o e uguale?




| (ALT GR+6) & =




Ci sono due altri operatori che non sono associati ad alcuna primitiva:

Nota: I due operatori | e & sono specifici di XLOGO. Non esistono nelle versioni tradizionali di LOGO. Qualche esempio di impiego:

Stampa 3+4=7-1 # falso 
Stampa 3=4 | 7<=49/7# vero 
Stampa 3=4 & 7=49/7# falso