Slang - Ολοκληρωμένο περιβάλλον ανάπτυξης για τη ΓΛΩΣΣΑ

Ξεκίνησε από cyberpython, 26 Νοε 2010, 01:37:47 ΜΜ

« προηγούμενο - επόμενο »

cyberpython

Καλησπέρα σε όλους!

Πριν λίγες ημέρες ολοκλήρωσα (?) την κατασκευή της εφαρμογής Slang - ενός open-source ολοκληρωμένου περιβάλλοντος για τη ΓΛΩΣΣΑ.
Είναι γραμμένο σε Java (τουλάχιστον έκδοση 6 update 10) και ο ενσωματωμένος διερμηνευτής μπορεί να χρησιμοποιηθεί είτε μέσω της γραφικής διεπαφής (προεπιλογή) είτε μέσω γραμμής εντολών με την παράμετρο   -c.

Περισσότερες πληροφορίες για τις παραμέτρους κλήσεις είναι διαθέσιμες μέω της παραμέτρου -h, δηλαδή:
java -jar dist/slang.jar -h

(η / είναι \ σε περιβάλλον Windows)

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

Κατά την κατασκευή του διερμηνευτή όπου υπήρχε αοριστία/ασάφεια από τον ορισμό της ΓΛΩΣΣΑΣ επέλεξα να υλοποιήσω την επιλογή που είχε τους περισσότερους ψήφους στα αντίστοιχα θέματα αυτού του forum, εκτός από αυτή που αφορά το modulo όπου προτίμησα τον ορισμό του Knuth.

Όλος ο κώδικας είναι διαθέσιμος σε αυτό το GitHub repository: https://github.com/cyberpython/Slang

Η σελίδα των λήψεων βρίσκεται εδώ: https://github.com/cyberpython/Slang/downloads

Ο διερμηνευτής είναι διαθέσιμος και ως αυτόνομο project από εδώ: https://github.com/cyberpython/glossa-interpreter

Screenshots:




Ο διερμηνευτής σε CLI:




soron80

ενδιαφέρον μου ακούγεται..
νομίζω ότι έκανες καλή δουλειά!!
Τσισπαράς Βασίλης
Καθηγητής Πληροφορικής ΠΕ19

cyberpython

Παράθεση από: soron80 στις 26 Νοε 2010, 03:31:11 ΜΜ
ενδιαφέρον μου ακούγεται..
νομίζω ότι έκανες καλή δουλειά!!

Ευχαριστώ!
Ελπίζω να υπάρξουν χρήστες που θα το βρουν χρήσιμο.  :)

sstergou

Συγχαρητήρια, πολύ καλή προσπάθεια αλλά και αποτέλεσμα.

tom

Παράθεση από: cyberpython στις 26 Νοε 2010, 04:31:26 ΜΜ
Ευχαριστώ!
Ελπίζω να υπάρξουν χρήστες που θα το βρουν χρήσιμο.  :)
Συγχαρητήρια συνάδελφε για την προσπάθεια σου! Εγώ θα έλεγα, ελπίζω να υπάρξουν καθηγητές και μάθημα αλγοριθμικής στο Λύκειο να χρησιμοποιήσουν το εργαλείο που έφτιαξες.
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

Νίκος Αδαμόπουλος

Συγχαρητήρια και από μένα...! Θα το δοκιμάσω άμεσα... Πες μας καμιά λεπτομέρεια...: Είσαι συνάδελφος εκπαιδευτικός; Το λογισμικό σου περιλαμβάνει δυνατότητες που δεν παρείχαν τα άλλα σχετικά λογισμικά;

Προφανώς συμφωνούμε και με αυτό που λέει ο tom!!!

cyberpython

Ευχαριστώ για τα καλά σας λόγια!

Παράθεση από: Νίκος Αδαμόπουλος στις 26 Νοε 2010, 07:01:15 ΜΜ
Πες μας καμιά λεπτομέρεια...: Είσαι συνάδελφος εκπαιδευτικός;
Μόλις πήρα το πτυχίο μου από το τμήμα Πληροφορικής της ΑΣΟΕΕ (λίγο καθυστερημένα βέβαια...). Εκπαιδευτικός δεν είμαι (και πλέον δεν έχω τη δυνατότητα να γίνω σύμφωνα με το νέο νομοσχέδιο για την επάρκεια, εκτός και αν κάνω κάποιο μεταπτυχιακό σε γνωστικό αντικείμενο που δίνει τη σχετική αναγνώριση), αλλά έχω διδάξει Πληροφορική και το μάθημα της ΑΕΠΠ για 3 χρόνια σε φροντιστήριο μέσης εκπαίδευσης.

Παράθεση από: Νίκος Αδαμόπουλος στις 26 Νοε 2010, 07:01:15 ΜΜ
Το λογισμικό σου περιλαμβάνει δυνατότητες που δεν παρείχαν τα άλλα σχετικά λογισμικά;
Ο βασικός λόγος που το έγραψα ήταν οτι ο Διερμηνευτής του alkisg τρέχει σε Linux, αλλά μέσω WINE (πολλοί δεν θέλουν να το εγκαταστήσουν στο σύστημά τους). Επίσης σε περίπτωση που κάποιος δεν έχει διαθέσιμο σύστημα με γραφικό περιβάλλον δε μπορεί να τρέξει τα προγράμματά του. Έτσι, έγραψα το διερμηνευτή ως εντελώς ανεξάρτητη εφαρμογή που λειτουργεί από CLI και μετά το 'έδεσα' με το γραφικό περιβάλλον. Οπότε τα βασικά του χαρακτηριστικά είναι:

  • Διαθεσιμότητα σε οποιαδήποτε πλατφόρμα υπάρχει Java SE Runtime Environment (έκδοση > 6u10)
  • Πιστότητα υλοποίησης σύμφωνα με τον ορισμό της ΓΛΩΣΣΑΣ του σχολικού βιβλίου
  • Δυνάτοτητα εκτέλεσης των προγραμμάτων του μαθητή και σε συστήματα χωρίς γραφικό περιβάλλον
Σε αυτό το σημείο να πω οτι ο κώδικας της διεπαφής δεν είναι ακριβώς σε 'ιδανική' μορφή και αυτό γιατί το ξεκίνησα πιο πολύ για να πειραματιστώ με το Swing toolkit οπότε ίσως να υπάρχουν τμήματα κώδικα που μπορεί να μη χρησιμοποιούνται, δεν είναι καλογραμμένα κλπ. Π.χ. κάποια στιγμή υπήρχε τάξη που φόρτωνε τα native εικονίδια σε GNOME/KDE/XFCE περιβάλλοντα. Ή η λειτουργία εξαγωγής σε HTML που χρησιμοποιεί άλλο λεκτικό αναλυτή από αυτή του διερμηνευτή (χρησιμοποιούσα άλλο parser generator πιο παλιά).
Ίσως κάποια στιγμή να κάνω λίγο refactoring. Πάντως σε γενικές γραμμές πρέπει να λειτουργούν όλα σωστά.


xkait

Με κόκκινο τα "κινέζικα" για τους μη μυημένους  ;D  ;D
δώστε σε έναν μαθητή γυμνασίου να δούμε πόση ώρα θα αναρωτιέται αν μπήκε σε τάξη εκμάθησης κινεζικών ή πληροφορικής...

ΥΓ: ωραία δουλειά φίλε μου αλλά μάλλον "άκυρη" εκ των διοικούντων.




Ο βασικός λόγος που το έγραψα ήταν οτι ο Διερμηνευτής του alkisg τρέχει σε Linux, αλλά μέσω WINE (πολλοί δεν θέλουν να το εγκαταστήσουν στο σύστημά τους). Επίσης σε περίπτωση που κάποιος δεν έχει διαθέσιμο σύστημα με γραφικό περιβάλλον δε μπορεί να τρέξει τα προγράμματά του. Έτσι, έγραψα το διερμηνευτή ως εντελώς ανεξάρτητη εφαρμογή που λειτουργεί από CLI και μετά το 'έδεσα' με το γραφικό περιβάλλον. Οπότε τα βασικά του χαρακτηριστικά είναι:

  • Διαθεσιμότητα σε οποιαδήποτε πλατφόρμα υπάρχει Java SE Runtime Environment (έκδοση > 6u10)
  • Πιστότητα υλοποίησης σύμφωνα με τον ορισμό της ΓΛΩΣΣΑΣ του σχολικού βιβλίου
  • Δυνάτοτητα εκτέλεσης των προγραμμάτων του μαθητή και σε συστήματα χωρίς γραφικό περιβάλλον
Σε αυτό το σημείο να πω οτι ο κώδικας της διεπαφής δεν είναι ακριβώς σε 'ιδανική' μορφή και αυτό γιατί το ξεκίνησα πιο πολύ για να πειραματιστώ με το Swing toolkit οπότε ίσως να υπάρχουν τμήματα κώδικα που μπορεί να μη χρησιμοποιούνται, δεν είναι καλογραμμένα κλπ. Π.χ. κάποια στιγμή υπήρχε τάξη που φόρτωνε τα native εικονίδια σε GNOME/KDE/XFCE περιβάλλοντα. Ή η λειτουργία εξαγωγής σε HTML που χρησιμοποιεί άλλο λεκτικό αναλυτή από αυτή του διερμηνευτή (χρησιμοποιούσα άλλο parser generator πιο παλιά).
Ίσως κάποια στιγμή να κάνω λίγο refactoring. Πάντως σε γενικές γραμμές πρέπει να λειτουργούν όλα σωστά.

Gnirut

Αγαπητέ cyberpython κατ'αρχάς να σε συγχαρώ για την προσπάθεια σου.

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

Π.χ. πιστεύω ότι πολύ πιο χρήσιμο θα ήταν κάποιος να κωδικοποιούσε σε κάποιο pdf όλες τις ιδιαιτερότητες και την σύνταξη της ΓΛΩΣΣΑΣ όπως πρoκύπτουν από τα σχολικά βιβλία και βοηθήματα και τις συζητήσεις από το ΣΤΕΚΙ.

Εαν έχει γίνει αυτό πείτε μου που μπορώ να το βρω.

sstergou

Ένα νέο λογισμικό είναι πάντα κάτι καλό.

Μάλιστα το πρόγραμμα του cyberpytyhon είναι ανοιχτού κώδικα και γραμμένο σε γλώσσα cross platform.

cyberpython

Και ο 'Διερμηνευτής' ανοιχτού κώδικα είναι, απλά (απ' όσο ξέρω) η διεπαφή χρησιμοποιεί κάποια Delphi components που δεν είναι.... :'(

Όπως έγραψα και πιο πάνω την εφαρμογή την ξεκίνησα πιο πολύ ως εξάσκηση στο Swing και στην κατασκευή language tools με το Antlr3. Αν παράλληλα είναι και χρήσιμη σε κάποιους τόσο το καλύτερο  :)

alkisg

Παράθεση από: cyberpython στις 03 Δεκ 2010, 11:30:33 ΜΜ
Και ο 'Διερμηνευτής' ανοιχτού κώδικα είναι, απλά (απ' όσο ξέρω) η διεπαφή χρησιμοποιεί κάποια Delphi components που δεν είναι.... :'(

cyberpython καταρχάς συγχαρητήρια για το πρόγραμμα.

Όλα τα components που χρησιμοποιεί ο Διερμηνευτής ήταν και είναι ελεύθερα. Απλά τα Tnt Unicode Controls σε κάποια στιγμή πουλήθηκαν στην εταιρία TMS οπότε δεν βγαίνουν νεότερες εκδόσεις τους ως ανοιχτού κώδικα.

Και επειδή τα καινούργια Delphi (2009, 2010 κτλ) είναι Unicode οπότε τα Tnt Controls δεν χρειάζονται πια, στην επόμενη έκδοση του Διερμηνευτή που ετοιμάζεται τα έχω ήδη αφαιρέσει, οπότε θα δημοσιευθεί και ο κώδικας του GUI. Όχι ότι πείραζε να δημοσιευθεί και πιο πριν, αλλά αφού θα έβγαιναν έτσι κι αλλιώς από τη μέση, είπα να το καθυστερήσω.

Το μειονέκτημα με το Delphi 2010 είναι ότι οι νέες εκδόσεις του Διερμηνευτή δεν θα παίζουν σε Windows 98, αλλά όσα σχολεία έχουν 98 θα κάνουν καλά να πάνε σε Ubuntu / LTSP οπότε εκεί παίζει χωρίς πρόβλημα.
Επίσης βγάζει και "εκτελέσιμα" οπότε αυτά μπορούν να χρησιμοποιηθούν και σε κονσόλα.

fof

cyberpython συγχαρητήρια!!

Είδα την εφαρμογή σου και σκοπεύω να την χρησιμοποιήσω. Η σκέψη του να φτιάξεις κάτι τέτοιο είναι πολύ ωραία, και θα διευκολύνεις πολλούς!

Και εις ανώτερα!

SPY

Cyberpython συγχαρητήρια για την πολύ καλή δουλειά σου.

Μια βελτιωσούλα που θα σου πρότεινα είναι οι εντολές να επιλέγονται με απλό κλικ του ποντικιού.

Να είσαι καλά και καλό κώδικα!




cyberpython

Σας ευχαριστώ όλους!

@alkisg: Ευχαριστώ για τη διευκρίνηση- είχα αυτή την (λανθασμένη) εντύπωση οτι δεν ήταν όλα τα components ελεύθερα και οτι αυτός ήταν ο λόγος που δεν έγινε μεταφορά στο Lazarus.

@SPY: Εννοείς με απλό κλικ αντί για επιλογή να γίνεται εισαγωγή του αντίστοιχου κώδικα; ϊσως να μπερδέψει περισσότερο από ότι θα βοηθήσει το χρήστη (τα περισσότερα περιβάλλοντα - εκτός από το KDE νομίζω - έχουν ως προεπιλογή το μονό κλικ για επιλογή και το διπλό για εκτέλεση ενέργειας)