Page 1 of 1
Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Posted: Sun Mar 08, 2009 1:33 am
by cyberpython
Το
Jargon project είναι μία προσπάθεια για τη δημιουργία ενός cross-platform open-source μεταγλωττιστή (και σταδιακά τη μετατροπή του σε interpreter) για τη "ΓΛΩΣΣΑ", τη γλώσσα προγραμματισμού που διδάσκεται στους μαθητές της τεχνολογικής κατεύθυνσης της Γ' τάξης του ενιαίου λυκείου.
Βασικός στόχος επίσης είναι ο μεταγλωττιστής να μπορεί να χρησιμοποιηθεί ως αυτόνομη εφαρμογή μέσω γραμμη εντολών, αλλά και να παρέχεται η απαραίτητη διεπαφή για την εύκολη ενσωμάτωση/χρήση του σε άλλες εφαρμογές.
Υπό-έργο του Jargon είναι το
Slang, που στοχεύει στη δημιουργία ένος cross-platform επεξεργαστή κώδικα που θα ενσωματώνει το jargon compiler και θα διευκολύνει την ανάπτυξη προγραμμάτων στη ΓΛΩΣΣΑ. Όπως είναι λογικό, εφ' όσον το κοινό στο οποίο απευθύνεται η συγκεκριμένη εφαρμογή είναι μαθητές, δε θα δοθεί μεγάλη σημασία στην πληρότητα και το πλήθος των χαρακτηριστικών ως source-code editor που θα μπορούσε να χρησιμοποιηθεί σε πραγματικό περιβάλλον ανάπτυξης (π.χ. refactoring) αλλά στην ευκολία χρήσης.
Slang screenshots:
Ubuntu 8.10:
Windows XP:
Edit (2009-03-11) : Η licence άλλαξε σε Apache V2.0
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Posted: Sun Mar 08, 2009 11:31 am
by Proxenos
Μπράβο, ωραία προσπάθεια.
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Posted: Sun Mar 08, 2009 2:54 pm
by ultimate_aektzis
Πρεπει να γραφετε καιρο κωδικα ε?Συγχαρητηρια παντως

Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Posted: Sun Mar 08, 2009 3:10 pm
by cyberpython
ultimate_aektzis wrote:Πρεπει να
γραφετε καιρο κωδικα ε?Συγχαρητηρια παντως

Δεν είμαι και τόσο μεγάλος για να μου μιλάς στον πληθυντικό ρε ultimate....
Βασικά τον επεξεργαστή τον είχα ξαναγράψει το καλοκαίρι σε SWT, αλλά ήταν πολύ δύσκολο να γίνει η εγκατάσταση από έναν απλό χρήστη εξ' αιτίας της πολυπλοκότητας των εξαρτήσεων από εξωτερικές βιβλιοθήκες του SWT - οπότε τον ξαναέγραψα σε Swing (χρησιμοποιώντας το εξαιρετικά χρήσιμο jsyntaxpane -
http://code.google.com/p/jsyntaxpane/).
Για το μεταγλωττιστή είμαι ακόμα σε πολύ αρχικό στάδιο (έχω ολοκληρώσει τη λεκτική ανάλυση και την κατασκευή του CST και τώρα έχω αρχίσει να κάνω το μετασχηματισμό σε AST).
Σημείωση: Όποιος έχει πρόβλημα με την εκτέλεση/μεταγλώττιση του επεξεργαστή στο Netbeans, πρέπει να οφείλεται στο οτι απαιτείται το JFlex εγκατεστημένο και να βρίσκεται στο system path. Επίσης, πρέπει να έχουμε εγκατεστημένο το Maven plugin στο Netbeans.
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Posted: Sun Mar 08, 2009 3:40 pm
by ultimate_aektzis
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Posted: Sun Mar 08, 2009 5:27 pm
by mikem4600
Εξαιρετική δουλεία!
Να φανταστείς, σκεφτόμουν κι εγώ να κάνω κάτι τέτοιο όταν έκανα μεταγλωττιστές στο 3ο έτος (αλλά με τράβηξαν τα mobile

).
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Posted: Tue Mar 10, 2009 12:12 am
by cyberpython
Κατ' αρχήν να σας ευχαριστήσω όλους για τα καλά σας λόγια.
Για όσους θέλουν να δουν τον επεξεργαστή κώδικα χρίς να μπλέξουν με το subversion μπορούν να κατεβάσουν το zip με το εκτελέσιμο jar από εδώ:
http://dl.getdropbox.com/u/599926/slang_bin.zip
Τέλος, να υπενθυμίσω οτι πρόκειται για εφαρμογή ανοικτού κώδικα και κάθε βοήθεια(ειδικά στον μεταγλωττιστή που είμαι σε αρχικό στάδιο ακόμη)/παρατήρηση/πρόταση είναι ευπρόσδεκτη (μη σας απασχολεί το κείμενο του splash - το άλλαξα ήδη

).
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Posted: Sun Oct 31, 2010 6:16 pm
by cyberpython
Necroposting, το ξέρω, αλλά πριν από 2 εβδομάδες αποφάσισα να ξανα-γράψω το μεταγλωττιστή από το μηδέν, αυτή τη φορά ως διερμηνευτή (αφορμή το βιβλίο Language Implementation Patterns που έπεσε στα χέρια μου).
Μέχρι στιγμής ο διερμηνευτής μπορεί να εκτελέσει οποιοδήποτε πρόγραμμα δεν περιέχει υπο-προγράμματα (όλα τα παραδείγματα του βιβλίου ΑΕΣΠΠ μέχρι το κεφάλαιο 10).
Υποστηρίζει όλες τις ενσωματωμένες συναρτήσεις της ΓΛΩΣΣΑΣ, πολυδιάστατους πίνακες κλπ. - βέβαια, ακόμη δεν έχω ελέγξει κατά πόσο λειτουργούν σωστά όλα αυτά...
Ακόμη δεν κάνω έλεγχο για το encoding του αρχείου εισόδου, οπότε μπορεί για αρχεία που είναι γραμμένα σε Windows να μη τρέχει σωστά.
Μπορείτε να κατεβάσετε ένα ZIP με το εκτελέσιμο
από εδώ (έκδοση 0.1)
και αφού το αποσυμπιέσετε τρέχετε από γραμμή εντολών:
Code: Select all
cd <διαδρομή όπου αποσυμπιέστηκε το ZIP>
cd glossa-interpreter_M1\(2010-10-31\)
java -jar dist/glossa-interpreter.jar src/glossa/samples/PrintTest.gls
Όλος ο κώδικας είναι ελεύθερα διαθέσιμος υπό την άδεια MIT σε αυτό το
Github repository
Edit(07-11-2010):
Πλέον ο διερμηνευτής μπορεί να εκτελέσει οποιοδήποτε πρόγραμμα γραμμένο στη ΓΛΩΣΣΑ.
Λήψη έκδοσης 0.2
- Γίνεται αυτόματη αναγνώριση της κωδικοποίησης του αρχείου εισόδου (windows-1253, ISO-8859-7 ή UTF-8).
Οι χρήστες Windows ίσως πρέπει να αλλάξουν τη γραμματοσειρά της γραμμής εντολών σε Lucida Console και να δώσουν την εντολή:
για να εμφανίζονται σωστά οι χαρακτήρες.
- Υποστηρίζονται όλες οι ενσωματωμένες συναρτήσεις της ΓΛΩΣΣΑΣ.
- Υποστηρίζονται οι κλήσεις σε συναρτήσεις και διαδικασίες.
- Μπορούν να περαστούν πίνακες ως παράμετροι σε υποπρογράμματα.
- Το πέρασμα των παραμέτρων γίνεται με τιμή και αν το υποπρόγραμμα είναι διαδικασία στο τέλος γίνεται αντιγραφή των τιμών πίσω στις αντίστοιχες μεταβλητές του (υπο)προγράμματος που την κάλεσε.
- Υποστηρίζεται η χρήση αρχείου εισόδου (-f όνομα_αρχείου).
- Υποστηρίζεται η εκτέλεση βήμα-προς-βήμα και η εμφάνιση των περιεχομένων της στοίβας εκτέλεσης. (-i)
Προς το παρόν παρέχεται μόνο διεπαφή γραμμής εντολών.

Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Posted: Fri Nov 12, 2010 8:32 pm
by cyberpython
Update: Μόλις ολοκλήρωσα την ενσωμάτωση του διερμηνευτή στον επεξεργαστή κώδικα, οπότε πλέον είναι ολοκληρωμένο περιβάλλον ανάπτυξης και όχι απλά επεξεργαστής κώδικα!
Έτσι, πλέον οι μαθητές που παρακολουθούν το μάθημα Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον και δε χρησιμοποιούν Windows έχουν μία σχετικά καλή εναλλακτική λύση απέναντι στην εκτέλεση του "Διερμηνευτή" μέσω Wine (βέβαια δε μπορεί να συγκριθεί με το "Διερμηνευτή" του Άλκη 'alkisg' Γεωργόπουλου σε πιστότητα υλοποίησης ή δυνατότητες παραμετροποίησης....) .
Ο χρήστης μπορεί να επεξεργαστεί και να εκτελέσει (σε πλήρη ταχύτητα, βήμα-προς-βήμα ή με καθυστέρηση ανάμεσα στις εντολές) τα προγράμματά του, να δει τις τιμές των μεταβλητών και την κλήση των υποπρογραμμάτων αν η εκτέλεση δε γίνεται σε πραγματικό χρόνο και να χρησιμοποιήσει κάποιο αρχείο εισόδου π.χ. για την εισαγωγή μεγάλου όγκου δεδομένων.
ΠΡΟΣΟΧΗ: Οι λειτουργίες ανοίγματος/αποθήκευσης/δημιουργίας νέου αρχείου εισόδου δε ζητούν επιβεβαίωση, οπότε μπορεί να χάσετε τις αλλαγές που έχετε κάνει αν δεν τις έχετε αποθηκεύσει.
Ακόμη δεν έχει υλοποιηθεί η προβολή των τιμών πινάκων στην παρακολούθηση εκτέλεσης και δεν έχει γραφτεί καθόλου τεκμηρίωση.
Εικόνες λειτουργίας:
Λήψη Slang - έκδοση 0.9.03
Λήψη Slang - έκδοση 0.9.02
Λήψη Slang - έκδοση 0.9
Για να το τρέξετε απαιτείται JRE >= 6u10.
Αποσυμπίεστε το αρχείο Slang-0.9.03.zip και κάντε διπλό κλικ στο αρχείο slang.jar
Όλος ο κώδικας είναι διαθέσιμος υπό την Apache License v 2.0 σε αυτό το
GitHub repository.
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Posted: Sat Nov 13, 2010 12:20 am
by sandra
Το έκανα ποστ στο ischool μπας και το δει κανας μαθητής και πιάσει τόπο. Μπράβο βρε cyber

Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Posted: Sat Nov 13, 2010 12:17 pm
by cyberpython
sandra wrote:Το έκανα ποστ στο ischool μπας και το δει κανας μαθητής και πιάσει τόπο. Μπράβο βρε cyber

Thanks sandra!
(και μόλις ανακάλυψα οτι έχω κάνει λάθος στο μήνυμα σφάλματος για δείκτη εκτός ορίων προς στοιχείο πίνακα και αντί για τη μέγιστη τιμή του δείκτη γράφει %1$d

)