# MSWLogo

MSWLogo (il cui progetto di sviluppo prosegue ora con FMSLogo) è un linguaggio interpretato basato sul Logo, ma dispone in più di un ambiente di sviluppo con interfaccia grafica. Il linguaggio è stato progettato e sviluppato al Massachusetts Institute of Technology negli anni novanta da Brian Harvey e George Mills.

## Descrizione

Il nucleo del linguaggio è quello dell'UCBLogo di Brian Harvey. È un software gratuito, con il codice sorgente disponibile, scritto nel linguaggio C++ della Borland. Il programma inizialmente apre due finestre: quella grafica con al centro la tartaruga e la scritta MSWLogo Screen e quella di testo per i comandi identificata da Commander. Scritta l'istruzione sulla linea di comando e premuto il tasto "Execute" per l'esecuzione della stessa, la linea passa memorizzata nella parte soprastante. Spesso l'effetto dell'istruzione è visibile nella finestra riservata alla grafica. Premendo il tasto "EdAll" mediante il mouse si apre una terza finestra con scritto Editor dove si possono memorizzare nuovi comandi collaudabili poi, dopo averli salvati, dalla linea di comando (vedi immagini). MSWLogo supporta più di mille tartarughe simultanee e la grafica tridimensionale. Supporta anche un'interfaccia Windows, quindi l'I / O è disponibile tramite Interfaccia grafica e gli eventi generati da tastiera e da mouse possono attivare degli "interrupt" che permettono di rilevarli.

### Grafica della tartaruga e gif animati

Oltre a numerose altre funzioni elencate successivamente, come in ogni linguaggio Logo, è implementato il "linguaggio della tartaruga" che fu ideato da Seymour Papert per scopi educativi. Poche istruzioni elementari, dette primitive, permettono alla tartaruga azioni elementari intuitive come avanzare, indietreggiare, girare lasciando o meno traccia del passaggio sullo schermo. La tartaruga è un automa cibernetico, rappresentato dal tradizionale triangolino orientato. È capace di obbedire a comandi familiari a ogni essere vivente mobile, umano o non, e di apprendere e memorizzare nuovi comandi, diventando così sempre più abile nel descrivere la geometria dal suo punto di vista. Istruire l'automa porta a un processo di identificazione che pone l'istruttore al centro dello scenario geometrico che vuol creare. Tutto ciò è stato progettato per esplorare e scoprire la matematica in modo naturale, divertente e creativo. In questo modo si stabilisce anche, secondo Papert, un'importante sinergia tra l'esperienza sensomotoria individuale e il linguaggio puramente formale tipico del mondo logico della matematica e dell'informatica.
Molto interessante dal punto di vista didattico è anche la possibilità, offerta dal MSWLogo, di creare gif animati collegando in rapida successione le schermate disegnate dalla tartaruga.. Il libro, scritto con particolare attenzione ai più giovani, da Jim Muller, è anche un manuale completo del Logo con particolare riferimento proprio all' MSWLogo. Programmi logo e immagini relativi al libro si possono scaricare gratuitamente dal sito della Softronics in lingua inglese. In Italiano invece, nel sito didattico Maecla, nella sezione Tartapelago, è disponibile un vocabolario animato dove sono spiegate le principali istruzioni della geometria della tartaruga illustrate anche mediante apposite animazioni didattiche.

### Elenco caratteristiche tecniche

MSWLogo, nell'ultima versione v6.5b del 19 dicembre 2002, ha le seguenti funzionalità:
* Supporta TCP / IP WinSock Networking.
* Supporta Win16, Win32 e Win32s.
* Supporta il testo in tutti i tipi di carattere e dimensioni disponibili.
* Supporta 1024 tartarughe indipendenti.
* Supporta tartarughe bitmap.
* Supporta Taglia, Incolla e allunga bitmap.
* Supporta testo e bitmap degli Appunti.
* Supporta dispositivi MIDI.
* Supporta l'I / O diretto per il controllo dell'hardware esterno.
* Supporta comunicazioni Serial e Parallel Port.
* Supporta lo zoom.
* Supporta la ricorsione di coda (ottimizza la maggior parte delle funzioni ricorsive).
* Supporta la gestione degli errori degli utenti.
* Supporta l'analisi del logo "standard".
* Supporta Salva e ripristina le immagini nei file in formato .BMP.
* Supporta colori a 1, 4, 8, 16, 24 bit per pixel.
* Supporta la Guida standard di Hypertext di Windows.
* Supporta la stampa Windows standard.
* Supporta libreria e area di lavoro separate.
* Supporta la costruzione di finestre di dialogo di Windows.
* Supporta la programmazione Event Driven (Mouse, KeyBoard, Timer).
* Supporta dispositivi MultiMedia (file audio .WAV, controllo CD-ROM ecc.)
* Supporta i timer degli eventi che consentono il multiprocessing.
* Supporta il disegno prospettico 3D (Wireframe e Solidi).
* Supporta la generazione GIF animata.

## FMSLogo

L'ultima versione dell'MSWLogo risale al 2002. David Costanzo nel 2004 a Washington decise di utilizzare MSWLogo. Stava avviado un laboratorio informatico basato su sistema operativo Windows 98 per la didattica di una scuola locale. Volendo migliorare il flusso di lavoro del suo laboratorio cominciò ad apportare modifiche al codice sorgente. Comunicò poi le modifiche effettuate a George MIlls per l'integrazione nella prossima versione. Successivamente, non potendo attendere i tempi necessari, Costanzo continuò con le sue modifiche creando una sua personale versione del programma. Poco dopo fu assunto dalla Microsoft che gli permise di continuare a sviluppare il suo progetto ma gli impose di cambiare nome al programma. Questo perché MSWLogo poteva essere interpretato come "Logo della Microsoft per Windows", lasciando credere quel che non era in violazione del marchio. George Mills, i cui cari avevano recentemente contratto la sclerosi multipla, voleva invece mantenere la "MS" nel nome. Nacque così il prefisso "FMS", che, come già detto, significa "Lotta contro la sclerosi multipla". Di fatto, dunque FMSLogo è la continuazione di MSWLogo. Nel sito della Softronics, infatti, oltre alla possibilità di scaricare l'ultima versione di MSWLogo ver 6.5b, vi è il collegamento al sito di Costanzo con l'avvertenza che il progetto comune continua con FMSLogo, con correzioni di bug, nuove funzionalità e miglioramenti delle prestazioni. Anche in questo sito il programma è distribuito gratuitamente.