Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
- cyberpython
- Mbyte level
- Posts: 654
- Joined: Wed Nov 21, 2007 8:18 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Αθηνα
- Contact:
Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Το 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
Βασικός στόχος επίσης είναι ο μεταγλωττιστής να μπορεί να χρησιμοποιηθεί ως αυτόνομη εφαρμογή μέσω γραμμη εντολών, αλλά και να παρέχεται η απαραίτητη διεπαφή για την εύκολη ενσωμάτωση/χρήση του σε άλλες εφαρμογές.
Υπό-έργο του 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
Last edited by cyberpython on Sun Oct 24, 2010 9:48 pm, edited 2 times in total.
- Proxenos
- Gbyte level
- Posts: 1095
- Joined: Fri Apr 30, 2004 4:20 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Κολωνία, Γερμανία
- Contact:
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Μπράβο, ωραία προσπάθεια.
One who pays some attention to history will not be surprised if those who cry most loudly that we must smash and destroy are later found among the administrators of some new system of repression. - Noam Chomsky
- ultimate_aektzis
- Wow! Terabyte level
- Posts: 6373
- Joined: Tue Nov 13, 2007 10:11 pm
- Gender: ♂
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Πρεπει να γραφετε καιρο κωδικα ε?Συγχαρητηρια παντως
- cyberpython
- Mbyte level
- Posts: 654
- Joined: Wed Nov 21, 2007 8:18 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Αθηνα
- Contact:
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
ultimate_aektzis wrote:Πρεπει να γραφετε καιρο κωδικα ε?Συγχαρητηρια παντως
Δεν είμαι και τόσο μεγάλος για να μου μιλάς στον πληθυντικό ρε ultimate....
Βασικά τον επεξεργαστή τον είχα ξαναγράψει το καλοκαίρι σε SWT, αλλά ήταν πολύ δύσκολο να γίνει η εγκατάσταση από έναν απλό χρήστη εξ' αιτίας της πολυπλοκότητας των εξαρτήσεων από εξωτερικές βιβλιοθήκες του SWT - οπότε τον ξαναέγραψα σε Swing (χρησιμοποιώντας το εξαιρετικά χρήσιμο jsyntaxpane - http://code.google.com/p/jsyntaxpane/).
Για το μεταγλωττιστή είμαι ακόμα σε πολύ αρχικό στάδιο (έχω ολοκληρώσει τη λεκτική ανάλυση και την κατασκευή του CST και τώρα έχω αρχίσει να κάνω το μετασχηματισμό σε AST).
Σημείωση: Όποιος έχει πρόβλημα με την εκτέλεση/μεταγλώττιση του επεξεργαστή στο Netbeans, πρέπει να οφείλεται στο οτι απαιτείται το JFlex εγκατεστημένο και να βρίσκεται στο system path. Επίσης, πρέπει να έχουμε εγκατεστημένο το Maven plugin στο Netbeans.
- ultimate_aektzis
- Wow! Terabyte level
- Posts: 6373
- Joined: Tue Nov 13, 2007 10:11 pm
- Gender: ♂
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Νομιζα οτι εισαι σε ομαδα.Χαρα στο κουραγιο σου που παραλληλα με τη σχολη φτιαχνεις και τετοιο project.
- mikem4600
- Gbyte level
- Posts: 1363
- Joined: Fri Mar 12, 2004 2:00 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: A Galaxy Far, Far Away
- Contact:
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Εξαιρετική δουλεία!
Να φανταστείς, σκεφτόμουν κι εγώ να κάνω κάτι τέτοιο όταν έκανα μεταγλωττιστές στο 3ο έτος (αλλά με τράβηξαν τα mobile ).
Να φανταστείς, σκεφτόμουν κι εγώ να κάνω κάτι τέτοιο όταν έκανα μεταγλωττιστές στο 3ο έτος (αλλά με τράβηξαν τα mobile ).
Autocracy hates questions. Anarchy hates answers.
- cyberpython
- Mbyte level
- Posts: 654
- Joined: Wed Nov 21, 2007 8:18 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Αθηνα
- Contact:
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Κατ' αρχήν να σας ευχαριστήσω όλους για τα καλά σας λόγια.
Για όσους θέλουν να δουν τον επεξεργαστή κώδικα χρίς να μπλέξουν με το subversion μπορούν να κατεβάσουν το zip με το εκτελέσιμο jar από εδώ:
http://dl.getdropbox.com/u/599926/slang_bin.zip
Τέλος, να υπενθυμίσω οτι πρόκειται για εφαρμογή ανοικτού κώδικα και κάθε βοήθεια(ειδικά στον μεταγλωττιστή που είμαι σε αρχικό στάδιο ακόμη)/παρατήρηση/πρόταση είναι ευπρόσδεκτη (μη σας απασχολεί το κείμενο του splash - το άλλαξα ήδη ).
Για όσους θέλουν να δουν τον επεξεργαστή κώδικα χρίς να μπλέξουν με το subversion μπορούν να κατεβάσουν το zip με το εκτελέσιμο jar από εδώ:
http://dl.getdropbox.com/u/599926/slang_bin.zip
Τέλος, να υπενθυμίσω οτι πρόκειται για εφαρμογή ανοικτού κώδικα και κάθε βοήθεια(ειδικά στον μεταγλωττιστή που είμαι σε αρχικό στάδιο ακόμη)/παρατήρηση/πρόταση είναι ευπρόσδεκτη (μη σας απασχολεί το κείμενο του splash - το άλλαξα ήδη ).
- cyberpython
- Mbyte level
- Posts: 654
- Joined: Wed Nov 21, 2007 8:18 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Αθηνα
- Contact:
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Necroposting, το ξέρω, αλλά πριν από 2 εβδομάδες αποφάσισα να ξανα-γράψω το μεταγλωττιστή από το μηδέν, αυτή τη φορά ως διερμηνευτή (αφορμή το βιβλίο Language Implementation Patterns που έπεσε στα χέρια μου).
Μέχρι στιγμής ο διερμηνευτής μπορεί να εκτελέσει οποιοδήποτε πρόγραμμα δεν περιέχει υπο-προγράμματα (όλα τα παραδείγματα του βιβλίου ΑΕΣΠΠ μέχρι το κεφάλαιο 10).
Υποστηρίζει όλες τις ενσωματωμένες συναρτήσεις της ΓΛΩΣΣΑΣ, πολυδιάστατους πίνακες κλπ. - βέβαια, ακόμη δεν έχω ελέγξει κατά πόσο λειτουργούν σωστά όλα αυτά...
Ακόμη δεν κάνω έλεγχο για το encoding του αρχείου εισόδου, οπότε μπορεί για αρχεία που είναι γραμμένα σε Windows να μη τρέχει σωστά.
Μπορείτε να κατεβάσετε ένα ZIP με το εκτελέσιμο από εδώ (έκδοση 0.1)
και αφού το αποσυμπιέσετε τρέχετε από γραμμή εντολών:
Όλος ο κώδικας είναι ελεύθερα διαθέσιμος υπό την άδεια MIT σε αυτό το Github repository
Edit(07-11-2010):
Πλέον ο διερμηνευτής μπορεί να εκτελέσει οποιοδήποτε πρόγραμμα γραμμένο στη ΓΛΩΣΣΑ.
Λήψη έκδοσης 0.2
Μέχρι στιγμής ο διερμηνευτής μπορεί να εκτελέσει οποιοδήποτε πρόγραμμα δεν περιέχει υπο-προγράμματα (όλα τα παραδείγματα του βιβλίου ΑΕΣΠΠ μέχρι το κεφάλαιο 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 και να δώσουν την εντολή:για να εμφανίζονται σωστά οι χαρακτήρες.Code: Select all
chcp 1253
- Υποστηρίζονται όλες οι ενσωματωμένες συναρτήσεις της ΓΛΩΣΣΑΣ.
- Υποστηρίζονται οι κλήσεις σε συναρτήσεις και διαδικασίες.
- Μπορούν να περαστούν πίνακες ως παράμετροι σε υποπρογράμματα.
- Το πέρασμα των παραμέτρων γίνεται με τιμή και αν το υποπρόγραμμα είναι διαδικασία στο τέλος γίνεται αντιγραφή των τιμών πίσω στις αντίστοιχες μεταβλητές του (υπο)προγράμματος που την κάλεσε.
- Υποστηρίζεται η χρήση αρχείου εισόδου (-f όνομα_αρχείου).
- Υποστηρίζεται η εκτέλεση βήμα-προς-βήμα και η εμφάνιση των περιεχομένων της στοίβας εκτέλεσης. (-i)
- cyberpython
- Mbyte level
- Posts: 654
- Joined: Wed Nov 21, 2007 8:18 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Αθηνα
- Contact:
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
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.
Έτσι, πλέον οι μαθητές που παρακολουθούν το μάθημα Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον και δε χρησιμοποιούν 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.
Last edited by cyberpython on Sun Nov 14, 2010 5:40 pm, edited 3 times in total.
- sandra
- Wow! Terabyte level
- Posts: 4917
- Joined: Mon Oct 02, 2006 11:37 am
- Academic status: Alumnus/a
- Gender: ♀
- Location: στη φωλιά μου κοιτώντας ένα χωράφι με στάρι...
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Το έκανα ποστ στο ischool μπας και το δει κανας μαθητής και πιάσει τόπο. Μπράβο βρε cyber
Από εδώ κι εμπρός θα είσαι για πάντα υπεύθυνος για εκείνο που έχεις ημερώσει.
Είσαι υπεύθυνος για το τριαντάφυλλο σου...
Είσαι υπεύθυνος για το τριαντάφυλλο σου...
- cyberpython
- Mbyte level
- Posts: 654
- Joined: Wed Nov 21, 2007 8:18 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Αθηνα
- Contact:
Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ
Thanks sandra!sandra wrote:Το έκανα ποστ στο ischool μπας και το δει κανας μαθητής και πιάσει τόπο. Μπράβο βρε cyber
(και μόλις ανακάλυψα οτι έχω κάνει λάθος στο μήνυμα σφάλματος για δείκτη εκτός ορίων προς στοιχείο πίνακα και αντί για τη μέγιστη τιμή του δείκτη γράφει %1$d )