Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
KLogo

KLogo

18926_size.jpg
KLogo e' un linguaggio di programmazione interpretato simile al Logo ed e' stato creato come progetto universitario per il corso di Compiler Design all'University of Minnesota Duluth. La parte relativa alla tartaruga che dovrebbe disegnare sullo schermo non e' inclusa perche' la licenza della libreria che ho utilizzato e' diversa dalla GPL, quindi quando viene ad esempio invocato il comando:

penup();

Invece che effettivamente alzare la penna dal canvas, un messaggio sulla console appare dicendo "pen is up". Ma con poche modifiche e' possibile linkare il progetto con la parte grafica.

Il binario compilato per Windows e Linux è incluso! I requisiti qui sotto sono per gli utenti che volessero compilare i sorgenti per conto proprio.

Requisiti per la compilazione:
==============================

gcc 4.3.4, flex 2.5.35, bison 2.4.2. Ho compilato il binario per Linux su una macchina Ubuntu e quello per Windows usando cygwin.

Per compilare una volta installati i requisiti, dalla cartella src.

# make
# ./KLogo <inputfile>

Note:
=====
E' un progetto universitario e il tempo che ho avuto a disposizione e' stato limitato. Il codice non e' esattamente dei piu' belli (mi viene in mente AST.hh dove ho buttato dentro una dozzina di classi invece che creare dei files separati per ogni AST) e non e' troppo commentato. Ho utilizzato flex per riconoscere i token e bison per il parser. La cartella /examples contiene alcuni esempi che ho scritto velocemente per mostrare le capacita' del linguaggio.

Non e' un lavoro completo e non e' perfetto. Il controllo sui tipi nelle liste e nei parametri delle funzioni definite dall'utente in particolare e' assente. Il return di una funzione puo' tornare un tipo diverso da quello definito nella dichiarazione. Sicuramente ci sono altri errori, ma questi sono quelli che mi vengono in mente.

Dovrebbe essere un ottimo esempio didattico per poter capire qualcosa di piu' su come funziona un compilatore.


Categoria: Esempi / C++
Piattaforma:

Downloads: 552
Rating: (4 voti)
Data: 06/05/2011
Download

A proposito dell'autore

E' un appassionato di programmazione con un particolare interesse per le tecnologie web e mobile. Da 11 anni gestisce il sito pierotofy.it e lavora negli Stati Uniti come consulente informatico tramite la sua azienda, MasseranoLabs LLC. Seguilo su Twitter: @pierotofy

Aggiungi un commento

Inserisci il tuo commento qui
Esegui il login oppure registrati per inviare commenti