Progetto

L'obiettivo del progetto è di scrivere un mini-ambiente di sviluppo per il linguaggio di programmazione LOGO.

LOGO è stato sviluppato negli anni 60 da W. Feurzeig, D. Bobrow e S. Papert.

La motivazione principale di questo linguaggio è di avere un linguaggio semplice e intuitivo da poter essere insegnato ai bambini.

Inizialmente il linguaggio è stato definito come un insieme di comandi per muovere un piccolo robot su un piano.

Il robot ha la forma di una tartaruga ed è munito di una penna.

Il compito di un programma LOGO è di fare disegnare alla tartaruga delle forme piú o meno complicate.

Un comando di base è Avanti. Tale comando prende come argomento un numero che indica la distanza da percorrere.

Un altro comando è Destra. Tale comando prende come argomento un numero che indica l'angolo in gradi da girare.

Un programma è composto da una sequenza di comandi. Per esempio il programma

Avanti 10
Destra 90
Avanti 10
ha la seguente esecuzione:
  1. All'inizio la tartaruga è al centro della pagina:

  2. Dopo

    Avanti 10 si ha
  3. Dopo

    Avanti 10
    Destra 90 si ha
  4. Dopo

    Avanti 10
    Destra 90
    Avanti 10 si ha
  5. Fine dell'esecuzione

Il linguaggio

Numeri

Ci sono sia numeri interi (10) che numeri in virgola mobile (3.14).

Stringa

Una stringa è una sequenza di caratteri (senza blank) che inizia con il carattere ". Per esempio la stringa Hello si scrive "Hello.

Aritmetica

Ci sono le operazioni aritmetiche usuali +,*,-,/. Per esempio 3+5*6 vale 33.

Operazioni di confronto

Ci sono le operazioni di confronto usuali sui numeri =,<,>,<=,>=.

Variabili

Le variabili non sono dichiarate. L'assegnazione è fatta usando il comando Assegna che prende una stringa (il nome della variabile) e un valore. Si riferisce al valore di una variabile con :nome. Per esempio
Assegna "dieci 10
Avanti :dieci
fa avanzare la tartaruga di 10 unità.

Comandi per disegnare

Controllo

Si può controllare il flusso di un programma usando il comando Ripeti n [ ... ] che permette di eseguire n volte il programma dato fra le parentesi. Per esempio
Ripeti 4 [
  Avanti 10
  Destra 90
         ]
è equivalente a
  Avanti 10
  Destra 90
  Avanti 10
  Destra 90
  Avanti 10
  Destra 90
  Avanti 10
  Destra 90
Si può scrivere codice condizionale usando il comando Se test [...] che permette di eseguire il programma fra parentesi solamente se il test è vero. Per esempio:
  Se :x < 0 [ Assegna "x 0]
permette di mettere la variabile x a zero se il suo valore è negativo.

Procedura

Il comando Per permette di dare un nome ad una procedura. Per esempio
Per Triangolo
  Ripeti 3 [
    Avanti 10
    Destra 120
           ]
Fine
Triangolo
Avanti 30
Triangolo
è equivalente a
Ripeti 3 [
  Avanti 10
  Destra 120
         ]
Avanti 30
Ripeti 3 [
  Avanti 10
  Destra 120
         ]
Si possono dare parametri ad una procedura
Per Triangolo :taglia
  Ripeti 3 [
    Avanti :taglia
    Destra 120
           ]
Fine
Assegna "piccolo 10
Assegna "grande 20
Triangolo :piccolo
Avanti 30
Triangolo :grande
è equivalente a
Ripeti 3 [
  Avanti 10
  Destra 120
         ]
Avanti 30
Ripeti 3 [
  Avanti 20
  Destra 120
         ]
Una procedura può essere ricorsiva (si può usare il nome di una procedura nella sua definizione).
Per Linea :n
 Avanti 10
 Destra 10
 Se :n > 0 
  [Linea :n - 1]
Fine
è equivalente a
Per Linea :n
 Ripeti :n + 1 [
   Avanti 10
   Destra 10
             ]
Fine
Si può terminare l'esecuzione di una procedura usando il comando Termina.

Progetto

La base del progetto consiste nell'avere una rappresentazione di un programma LOGO come un oggetto Java. Per esempio al programma

Avanti 10
Destra 90
potrebbe corrispondere l'oggetto
new Programma(
  new Avanti(new Int(10)),
  new Programma(
    new Destra(new Int(90))
    new Fine()))
La base del progetto dovrà imperativamente essere consegnata prima della prova scritta dell'esame.

A partire da questa base, si può completare il progetto realizzando per esempio:

Progetto

Qui sono qualche esempi per testare il progetto:

Netbeans

Se si utilizza netbeans per sviluppare il progetto:

Per avere le parentesi {} sotto netbeans con la tastiera italiana, fare unzip di patch-kb.zip sotto ~/.netbeans/X.X/system (Linux) o C:\Documents and Settings\NOME\.netbeans\X.X\system (Window) dove X.X è il numero della versione di netbeans istallata e NOME il nome utente. Questo dovrebbe creare una sotto directory Editors sotto system. Adesso rieseguendo netbeans, i tasti F11 e F12 dovrebbero permettere di avere le parentesi.

Per verificare la conformità del progetto, si può usare nbcheckstyle. Vedere la sessione Installation per l'istallazione.


Laurent Théry
Last modified: Tue Jan 27 13:05:20 MET 2004