Διερμηνευτής Ψευδογλώσσας

Ξεκίνησε από sstergou, 20 Μαΐου 2008, 07:11:30 ΜΜ

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

pgrontas

My 2 cents...

Από εκπαιδευτικής πλευρά ο Στάθης έχει δίκιο, από την πλευρά της ευελιξίας ο Άλκης έχει δίκιο. Αλλά νομίζω πως για το συγκεκριμένο θέμα προέχει η εκπαιδευτική πλευρά.
Επιπλέον νομίζω ότι έχει απόλυτο δίκιο στον χαρακτηρισμό static typed με type inference με τους τύπους που εξάγονται να είναι οι γενικότεροι δυνατοί - όπως το έχει φτιάξει ήδη.
Δεν έχω όλους τους αλγόριθμους του βιβλίου στο κεφάλι μου αλλά δεν νομίζω να μπορεί να συμβεί αλλαγή τύπου - μπορεί να υπάρχει περίπτωση μη αναγνώρισης τύπου όχι όμως αλλαγής.
Σχετικά με το div και το mod είναι σίγουρο ότι δεν ορίζονται σε πραγματικούς? Μήπως θα μας έλυνε τα προβλήματα αν τα ορίζαμε και σε πραγματικούς χρησιμοποιώντας το ακεραιο μέρος, όπως γίνεται σε κάποιες γλώσσες προγραμματισμού.
Αυτό στο οποίο δεν συμφωνώ είναι να δίνεται η δυνατότητα μέσω επιλογών στον χρήστη να αλλάξει την σημασία και την συμπεριφορά ενός προγράμματος.
Καλύτερα να αποφασίσουμε κάτι και τα προγράμματα να έχουν την ίδια σημασία πάντα έστω και αν μας περιορίζει.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

sstergou

Αν δεν με απατά η μνήμη μου τα div, mod ορίζονται μόνο για ακέραιους αριθμούς.

Σε μερικές γλώσσες προγραμματισμού όμως (π.χ. C++) υπάρχουν συναρτήσεις (fmod, fdiv) οι οποίες λειτουργούν και με πραγματικούς αριθμούς και επιστρέφουν πραγματικό αριθμό.

Μια ιδέα είναι οι  συγκεκριμένοι τελεστές να υλοποιηθούν έτσι ώστε να δουλεύουν και με πραγματικούς και να εμφανίζεται προειδοποίηση (ή σφάλμα) στη μεταγλώττιση αλλά και στην εκτέλεση. Η προειδοποίηση αυτή θα μπορεί να απενεργοποιείται έτσι ώστε ο χρήστης που "ξέρει τι κάνει" να μην ενοχλείται. Από πλευράς ευελιξίας σίγουρα το καλύτερο.

potato

Βασικά πρέπει να σκεφτείς τι σκοπό και ανάγκες εκπληρώνεις με το project αυτό. Όταν καλοσκεφτείς αυτό, μετά θα μπορείς να κρίνεις αν είναι αναγκαίο να υλοποιηθεί τέτοια  συνάρτηση σαν την fmod. Δηλαδή τουλάχιστον για αρχή δε νομίζω ότι πρέπει να αφιερώσεις χρόνο και κόπο σε ένα τέτοιο θέμα.
Be open source. Knowledge belongs to the world.

sstergou

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

Προς το παρόν σαρώνω ξανά τα 3 βιβλία μήπως και μου ξέφυγε τίποτα αλλά και μήπως μαντέψω τις απαντήσεις σε αυτά τα ερωτήματα.

sstergou

Συνάδελφοι, στην διεύθυνση http://www.pseudoglossa.gr λειτουργεί ένας on-line διερμηνευτής για την Ψευδογλώσσα της Α.Ε.Π.Π. Βρίσκεται σε στάδιο δοκιμών αλλά έχει χρησιμοποιηθεί με επιτυχία από τους μαθητές μου.

Το περιβάλλον είναι ακόμη σε πρωτόγονη μορφή αλλά μέχρι τον Σεπτέμβρη θα έχουν υλοποιηθεί όλες οι βοηθητικές λειτουργίες (on-line αποθήκευση ασκήσεων, λύσεων κτλ, εξαγωγή κώδικα) και θα έχει βελτιωθεί η εμφάνιση.

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

Όποιος έχει όρεξη ας του ρίξει μία ματιά. Εάν εντοπίσετε κάποιο πρόβλημα παρακαλώ να μου το επισημάνετε.
Ευχαριστώ.


P.Tsiotakis

Συγχαρητήρια για την επιμονή σου Στάθη.

Θα το ξανακοιτάξω ενδελεχώς. Μόνο, μια σκέψη, να βάλεις και το βελάκι αριστερά στο πλαίσιο των εντολών, στο copy paste δεν έβαλε βελάκι, και προβληματίστηκα λίγο ποιο ειναι το βελάκι..

Και πάλι πολλά μπράβο..

sstergou

Ευχαριστώ για τα καλά σου λόγια Παναγιώτη.
Το θέμα με το βελάκι διορθώθηκε.

Παραλίγο να το ξεχάσω, αντί για το βελάκι μπορείς να γράψεις : <-

P.Tsiotakis

Στάθη, ήθελα εδω και καιρό να γράψω και το αμελούσα

χρησιμοποίησα το pseudoglossa.gr  για να δείξω στη Β λυκείου "περι τίνος πρόκειται"  και ήταν πολύ ωραία και απλά. Δεν ήθελα να μπλέξω με προγράμματα και δηλώσεις μεταβλητών, ήθελα να είναι όσο πιο απλά γίνεται και έτσι έγινε...

Πρέπει να σου πω παλι μπράβο για την πολύ καλή δουλειά.




evry

Πάρα πολύ καλή δουλειά, μπράβο. Είναι γρήγορο, δεν κολλάει καθόλου, αν και θα πρέπει να το δω και από τους υπολογιστές του σχολείου ;D.

Ειδικά με τους πίνακες έχει πολύ ενδιαφέρον. Μπορείς να φτιάξεις έναν πίνακα 10 θέσεων και μετά να κάνεις μια εκχώρηση στο 20ο στοιχείο του. Υπάρχει δηλαδή ένας δυναμικός χαρακτήρας όπως θα έπρεπε να είναι σε ψευδογλώσσα.
   Σε javascript το έχεις κάνει?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

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

Όντως πολύ καλή δουλειά! Μπράβο Στάθη!! Δεν είχα υπόψη μου το εργαλείο που έχεις φτιάξει και πράγματι μπορεί να συμβάλλει πολύ στο μάθημα...

Ρίχνοντας μια ματιά στον κώδικα είδα ότι αναφέρεται το Adobe Flex...

pgrontas

Στάθη, πολύ καλή δουλειά.
Είχα λίγο καιρό να μπώ στο site σου και όπως είδα σήμερα του άλλαξες το φώτα!!!
Πολύ ωραίο design και πολύ επαγγελματικό.

Μπορείς να το τρέξεις και offline?

Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

P.Tsiotakis

Αυτό με το offline είναι και δική μου απορία (- αίτημα  ::) )
ο κώδικας λογικά μπορεί να κλειδωθεί ...

πιθανώς και η αποθήκευση σε αρχεία txt (ή κάτι τέτοιο) να ήταν χρήσιμη, λες ποιο πάνω για Σεπτέμβρη.
Αν εξάγεται το πρόγραμμα σε ΓΛΩΣΣΑ, τότε θα μπορούν και να "τροφοδοτηθούν" τα άλλα λογισμικά
(πχ για εξαγωγή διαγράμματος ροής που κάνει η ΓΛΩΣΣΟΜΑΘΕΙΑ)

Επίσης, αν θέλεις θα βρούμε και άλλες προσθήκες για να γεμίσεις και τον υπόλοιπο ελεύθερο χρόνο σου  :D

sstergou

Παναγιώτη, Ευριπίδη και Νίκο ευχαριστώ για τον χρόνο που διαθέσατε στο να δείτε την εφαρμογή.

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

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

Ευριπίδη είναι αρκετά γρήγορο για διαδικτυακή εφαρμογή επειδή η διαδικασία της μεταγλώττισης και της εκτέλεσης γίνεται εξ' ολοκλήρου στον client.  Το κομμάτι του μεταγλωττιστή τρέχει στο plugin του flash και έχει γραφτεί σε actionscript 3 χρησιμοποιώντας τα components ανοιχτού κώδικα της adobe (flex).

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

Τώρα όσο αφορά την υλοποίηση προσπάθησα να είμαι όσο πιο κοντά γίνεται στο βιβλίο (στατικοί τύποι, διάκριση ακέραιου - πραγματικού μόνο σε div, mod, εντολές δεδομένα - αποτελέσματα, πίνακες που το μέγεθος καθορίζεται κατά την εκτέλεση κτλ..).

Μια μικρή παρατήρηση για τους χρήστες linux : Ο adobe flash player έχει πρόβλημα στο συγκεκριμένο λειτουργικό στην απεικόνιση χαρακτήρων άλλων γλωσσών πέραν της αγγλικής. Είναι αρκετά γνωστό πρόβλημα και πολλοί περιμένουμε πως και πως να φτιαχτεί.

http://bugs.adobe.com/jira/browse/FP-40

Προσωρινά οι χρήστες linux μπορούν να πληκτρολογούν τις εντολές σε greeklish και αυτόματα γίνεται μετατροπή τους σε ελληνικά. Τα ονόματα μεταβλητών αναγκαστικά πρέπει να είναι με αγγλικούς χαρακτήρες. Το workaround αυτό το έχω δοκιμάσει εκτεταμένα και μπορώ να πω ότι δουλεύει αρκετά καλά.


Οποιαδήποτε παρατήρηση-πρόταση είναι ευπρόσδεκτη. Στόχος μου είναι με τη νέα σχολική χρονιά να μπορεί να χρησιμοποιηθεί στα εργαστήρια.

pgrontas

Παράθεση από: Τσιωτάκης Παναγιώτης στις 10 Ιουν 2009, 06:03:30 ΜΜ
Επίσης, αν θέλεις θα βρούμε και άλλες προσθήκες για να γεμίσεις και τον υπόλοιπο ελεύθερο χρόνο σου  :D

Παναγιώτη έχεις δίκιο, όσο κάθομαι και το σκέφτομαι, οι δυνατότητες που έχει είναι τεράστιες!!!
Για παράδειγμα θα μπορούσε να δημιουργηθεί κάτι σαν ηλεκτρονική τάξη:
Να μπαίνουν οι μαθητές να γράφουν τον κώδικα τους, να τον σώζουν στο site και μετά να μπαίνει ο καθηγητής να κάνει συγκεκριμένες διορθώσεις, οι οποίες να γίνονται tagged σε κάθε εντολή, ή σε ομάδες εντολών. Μετά να μπαίνουν οι μαθητές να τις βλέπουν κτλ. Μπορεί να κρατάει και ιστορικό κτλ. για κάθε μαθητή. Μπορούν να γίνουν παππάδες!

Και πάλι μπράβο, Στάθη.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

P.Tsiotakis

Παράθεση από: pgrontas στις 10 Ιουν 2009, 06:24:16 ΜΜ
Για παράδειγμα θα μπορούσε να δημιουργηθεί κάτι σαν ηλεκτρονική τάξη:
Να μπαίνουν οι μαθητές να γράφουν τον κώδικα τους, να τον σώζουν στο site και μετά να μπαίνει ο καθηγητής να κάνει συγκεκριμένες διορθώσεις, οι οποίες να γίνονται tagged σε κάθε εντολή, ή σε ομάδες. Μετά να μπαίνουν οι μαθητές να τις βλέπουν κτλ. Μπορεί να κρατάει και ιστορικό κτλ. για κάθε μαθητή. Μπορούν να γίνουν παππάδες!

Κύριε των δυνάμεων....