Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ

Post by cyberpython » Sun Mar 08, 2009 1:33 am

Το Jargon project είναι μία προσπάθεια για τη δημιουργία ενός cross-platform open-source μεταγλωττιστή (και σταδιακά τη μετατροπή του σε interpreter) για τη "ΓΛΩΣΣΑ", τη γλώσσα προγραμματισμού που διδάσκεται στους μαθητές της τεχνολογικής κατεύθυνσης της Γ' τάξης του ενιαίου λυκείου.

Βασικός στόχος επίσης είναι ο μεταγλωττιστής να μπορεί να χρησιμοποιηθεί ως αυτόνομη εφαρμογή μέσω γραμμη εντολών, αλλά και να παρέχεται η απαραίτητη διεπαφή για την εύκολη ενσωμάτωση/χρήση του σε άλλες εφαρμογές.

Υπό-έργο του Jargon είναι το Slang, που στοχεύει στη δημιουργία ένος cross-platform επεξεργαστή κώδικα που θα ενσωματώνει το jargon compiler και θα διευκολύνει την ανάπτυξη προγραμμάτων στη ΓΛΩΣΣΑ. Όπως είναι λογικό, εφ' όσον το κοινό στο οποίο απευθύνεται η συγκεκριμένη εφαρμογή είναι μαθητές, δε θα δοθεί μεγάλη σημασία στην πληρότητα και το πλήθος των χαρακτηριστικών ως source-code editor που θα μπορούσε να χρησιμοποιηθεί σε πραγματικό περιβάλλον ανάπτυξης (π.χ. refactoring) αλλά στην ευκολία χρήσης.



Slang screenshots:

Ubuntu 8.10:
Image

Windows XP:
Image

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.
User avatar
Proxenos
Gbyte level
Gbyte level
Posts: 1095
Joined: Fri Apr 30, 2004 4:20 pm
Academic status: Alumnus/a
Gender:
Location: Κολωνία, Γερμανία
Contact:

Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ

Post by Proxenos » Sun Mar 08, 2009 11:31 am

Μπράβο, ωραία προσπάθεια.
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
User avatar
ultimate_aektzis
Wow! Terabyte level
Wow! Terabyte level
Posts: 6373
Joined: Tue Nov 13, 2007 10:11 pm
Gender:

Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ

Post by ultimate_aektzis » Sun Mar 08, 2009 2:54 pm

Πρεπει να γραφετε καιρο κωδικα ε?Συγχαρητηρια παντως :smt023
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ

Post by cyberpython » Sun Mar 08, 2009 3:10 pm

ultimate_aektzis wrote:Πρεπει να γραφετε καιρο κωδικα ε?Συγχαρητηρια παντως :smt023
:shock:
Δεν είμαι και τόσο μεγάλος για να μου μιλάς στον πληθυντικό ρε ultimate.... :-D

Βασικά τον επεξεργαστή τον είχα ξαναγράψει το καλοκαίρι σε SWT, αλλά ήταν πολύ δύσκολο να γίνει η εγκατάσταση από έναν απλό χρήστη εξ' αιτίας της πολυπλοκότητας των εξαρτήσεων από εξωτερικές βιβλιοθήκες του SWT - οπότε τον ξαναέγραψα σε Swing (χρησιμοποιώντας το εξαιρετικά χρήσιμο jsyntaxpane - http://code.google.com/p/jsyntaxpane/).

Για το μεταγλωττιστή είμαι ακόμα σε πολύ αρχικό στάδιο (έχω ολοκληρώσει τη λεκτική ανάλυση και την κατασκευή του CST και τώρα έχω αρχίσει να κάνω το μετασχηματισμό σε AST).

Σημείωση: Όποιος έχει πρόβλημα με την εκτέλεση/μεταγλώττιση του επεξεργαστή στο Netbeans, πρέπει να οφείλεται στο οτι απαιτείται το JFlex εγκατεστημένο και να βρίσκεται στο system path. Επίσης, πρέπει να έχουμε εγκατεστημένο το Maven plugin στο Netbeans.
User avatar
ultimate_aektzis
Wow! Terabyte level
Wow! Terabyte level
Posts: 6373
Joined: Tue Nov 13, 2007 10:11 pm
Gender:

Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ

Post by ultimate_aektzis » Sun Mar 08, 2009 3:40 pm

:lol: :lol:

Νομιζα οτι εισαι σε ομαδα.Χαρα στο κουραγιο σου που παραλληλα με τη σχολη φτιαχνεις και τετοιο project. :cool:
User avatar
mikem4600
Gbyte level
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 - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ

Post by mikem4600 » Sun Mar 08, 2009 5:27 pm

Εξαιρετική δουλεία! :smt023

Να φανταστείς, σκεφτόμουν κι εγώ να κάνω κάτι τέτοιο όταν έκανα μεταγλωττιστές στο 3ο έτος (αλλά με τράβηξαν τα mobile :-p ).
Autocracy hates questions. Anarchy hates answers.
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ

Post by cyberpython » Tue Mar 10, 2009 12:12 am

Κατ' αρχήν να σας ευχαριστήσω όλους για τα καλά σας λόγια.

Για όσους θέλουν να δουν τον επεξεργαστή κώδικα χρίς να μπλέξουν με το subversion μπορούν να κατεβάσουν το zip με το εκτελέσιμο jar από εδώ:
http://dl.getdropbox.com/u/599926/slang_bin.zip

Τέλος, να υπενθυμίσω οτι πρόκειται για εφαρμογή ανοικτού κώδικα και κάθε βοήθεια(ειδικά στον μεταγλωττιστή που είμαι σε αρχικό στάδιο ακόμη)/παρατήρηση/πρόταση είναι ευπρόσδεκτη (μη σας απασχολεί το κείμενο του splash - το άλλαξα ήδη :-D ).
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ

Post by cyberpython » Sun Oct 31, 2010 6:16 pm

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
Image

Όλος ο κώδικας είναι ελεύθερα διαθέσιμος υπό την άδεια 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)
Προς το παρόν παρέχεται μόνο διεπαφή γραμμής εντολών.

Image
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ

Post by cyberpython » Fri Nov 12, 2010 8:32 pm

Update: Μόλις ολοκλήρωσα την ενσωμάτωση του διερμηνευτή στον επεξεργαστή κώδικα, οπότε πλέον είναι ολοκληρωμένο περιβάλλον ανάπτυξης και όχι απλά επεξεργαστής κώδικα!

Έτσι, πλέον οι μαθητές που παρακολουθούν το μάθημα Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον και δε χρησιμοποιούν Windows έχουν μία σχετικά καλή εναλλακτική λύση απέναντι στην εκτέλεση του "Διερμηνευτή" μέσω Wine (βέβαια δε μπορεί να συγκριθεί με το "Διερμηνευτή" του Άλκη 'alkisg' Γεωργόπουλου σε πιστότητα υλοποίησης ή δυνατότητες παραμετροποίησης....) .

Ο χρήστης μπορεί να επεξεργαστεί και να εκτελέσει (σε πλήρη ταχύτητα, βήμα-προς-βήμα ή με καθυστέρηση ανάμεσα στις εντολές) τα προγράμματά του, να δει τις τιμές των μεταβλητών και την κλήση των υποπρογραμμάτων αν η εκτέλεση δε γίνεται σε πραγματικό χρόνο και να χρησιμοποιήσει κάποιο αρχείο εισόδου π.χ. για την εισαγωγή μεγάλου όγκου δεδομένων.
ΠΡΟΣΟΧΗ: Οι λειτουργίες ανοίγματος/αποθήκευσης/δημιουργίας νέου αρχείου εισόδου δε ζητούν επιβεβαίωση, οπότε μπορεί να χάσετε τις αλλαγές που έχετε κάνει αν δεν τις έχετε αποθηκεύσει.

Ακόμη δεν έχει υλοποιηθεί η προβολή των τιμών πινάκων στην παρακολούθηση εκτέλεσης και δεν έχει γραφτεί καθόλου τεκμηρίωση.


Εικόνες λειτουργίας:
Image Image Image

Λήψη 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.
User avatar
sandra
Wow! Terabyte level
Wow! Terabyte level
Posts: 4917
Joined: Mon Oct 02, 2006 11:37 am
Academic status: Alumnus/a
Gender:
Location: στη φωλιά μου κοιτώντας ένα χωράφι με στάρι...

Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ

Post by sandra » Sat Nov 13, 2010 12:20 am

Το έκανα ποστ στο ischool μπας και το δει κανας μαθητής και πιάσει τόπο. Μπράβο βρε cyber :)
Από εδώ κι εμπρός θα είσαι για πάντα υπεύθυνος για εκείνο που έχεις ημερώσει.
Είσαι υπεύθυνος για το τριαντάφυλλο σου...
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: Jargon/Slang - Περιβάλλον ανάπτυξης γα τη ΓΛΩΣΣΑ

Post by cyberpython » Sat Nov 13, 2010 12:17 pm

sandra wrote:Το έκανα ποστ στο ischool μπας και το δει κανας μαθητής και πιάσει τόπο. Μπράβο βρε cyber :)
Thanks sandra! :smt023

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

Return to “Προγραμματισμός”