Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Αλγοριθμική και Προγραμματισμός => Ψευδογλώσσα => Μήνυμα ξεκίνησε από: sstergou στις 20 Μαΐου 2008, 07:11:30 ΜΜ

Τίτλος: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 20 Μαΐου 2008, 07:11:30 ΜΜ
Τους τελευταίους μήνες κάνω μια προσπάθεια υλοποίησης της ψευδογλώσσας της ΑΕΠΠ. Μια γρήγορη ερώτηση που έρχεται στο μυαλό όλων είναι:"μα καλά, πως είναι δυνατόν να υλοποιηθεί μια ψευδογλώσσα; Λέγεται έτσι επειδή ακριβώς δεν είναι υλοποιήσιμη.".

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

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

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

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

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

Μέχρι τώρα έχει υλοποιηθεί ο λεκτικός και συντακτικός αναλυτής(backend) και μένει ο συντάκτης και το περιβάλλον εκτέλεσης (frontend).

Πρόβλημα 1 – Τύποι

Υπάρχουν 3 βασικοί τύποι εκφράσεων αλφαριθμητικές, αριθμητικές, λογικές.
Ο αριθμητικός τύπος διακρίνεται σε ακέραιο και πραγματικό. Η διάκριση αυτή γίνεται μόνο για την εφαρμογή των τελεστών div-mod.

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

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

Οι μεταβλητές που δεν έχουν τύπο αποκτούν τύπο σύμφωνα με τους παρακάτω κανόνες.

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

Ο λόγος που τα γράφω αυτά είναι επειδή θέλω τη γνώμη σας...Οποιαδήποτε βοήθεια θα εκτιμηθεί ιδιαίτερα.
Ελπίζω να μην σας κούρασα.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: P.Tsiotakis στις 20 Μαΐου 2008, 07:55:04 ΜΜ
Είμαι απόλυτα σύμφωνος με την ιδέα Στάθη και μάλιστα την είχα προτείνει και στους 2 αστέρες (Άλκη και Σπύρο), είναι γνωστή η αντιπάθεια που έχω στη ΓΛΩΣΣΑ.

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

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

Φυσικά, πρέπει να καλύπτονται και οι λάθος εκχωρήσεις του στυλ  α <- 2 * "ζ".

Εγω θέλω να βοηθήσω. Υπάρχουν σίγουρα ΠΑΡΑ πολλά θέματα που θα ανακύψουν και θέλω να συμμετέχω στη συζήτηση.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 20 Μαΐου 2008, 08:20:26 ΜΜ
Χαίρομαι ιδιαίτερα για για την συμμετοχή σου Παναγιώτη.  :)

Παράθεση
Φυσικά, πρέπει να καλύπτονται και οι λάθος εκχωρήσεις του στυλ  α <- 2 * "ζ"

Αυτό σημαίνει ότι μέρος των ελέγχων θα πρέπει να γίνει πριν την εκτέλεση. Ποιοι όμως έλεγχοι θα γίνονται πριν και ποιοι μετά;

Αν ελέγχονται μόνο οι εκφράσεις που έχουν μέσα σταθερές;
Τι γίνεται με το :

Διάβασε α
Διάβασε β

γ <- α + β

γ <- "αα";

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

Παράθεση από: Τσιωτάκης Παναγιώτης στις 20 Μαΐου 2008, 07:55:04 ΜΜΥπάρχουν σίγουρα ΠΑΡΑ πολλά θέματα που θα ανακύψουν και θέλω να συμμετέχω στη συζήτηση.

Αυτό είναι το μόνο σίγουρο, σκέψου μόνο την κλήση αλγορίθμου από αλγόριθμο  :o

Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: P.Tsiotakis στις 20 Μαΐου 2008, 08:38:26 ΜΜ
Την κλήση αλγορίθμου απο αλγόριθμο, μπορείς να την αφήσεις (ή κ να μην την υλοποιήσεις καν)

Στο παράδειγμά σου, προφανώς οι μεταβλητές α, β, γ είναι αριθμητικές.
Και βέβαια, μόνο αν υπάρχει div, mod σε μια έκφραση, θα θεωρείται ακέραια κάποια μεταβλητή, αν και στην ψευδογλώσσα πάλι αριθμητική θεωρείται..
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 20 Μαΐου 2008, 10:36:14 ΜΜ
Μάλλον δεν γλιτώνουμε το type checking και κατά την διάρκεια της μεταγλώττισης.

Άρα 2 ειδών λάθη τύπων:

Ήλπιζα να γλιτώσω το πρώτο αλλά μάλλον είναι κακή ιδέα τελικά.

ΠαράθεσηΤην κλήση αλγορίθμου από αλγόριθμο, μπορείς να την αφήσεις ...

Σίγουρα θα την αφήσω για τελευταία πάντως...
Τίτλος: Διερμηνευτής Ψευδογλώσσας - Τύποι - Τελικό
Αποστολή από: sstergou στις 02 Ιουν 2008, 11:54:00 ΠΜ
Μία μεταβλητή μ παίρνει τύπο

1) Όταν συμμετέχει σε μία έκφραση με μια άλλη έκφραση
  α) Όταν ο τελεστής είναι αριθμητικός - παίρνει αριθμητικό τύπο
  β) Όταν ο τελεστής είναι λογικός - παίρνει λογικό τύπο
  γ) Όταν ο τελεστής είναι συγκριτικός :
    γ.1)όταν η έκφραση είναι αριθμητική - παίρνει αριθμητικό τύπο
    γ.2)όταν η έκφραση είναι αλφαριθμητική μεταβλητή - παίρνει αλφαριθμητικό τύπο
    γ.3)όταν η έκφραση είναι μεταβλητή αγνώστου τύπου, οι δύο μεταβλητές "δένονται" και δεν παίρνουν τύπο.

2)Όταν συμμετέχει σε έκφραση δείκτη πίνακα - παίρνει αριθμητικό τύπο

3)Όταν αποτελεί παράμετρο κλήσης συνάρτησης - παίρνει αριθμητικό τύπο

4)Όταν συμμετέχει στην εντολή αντιμετάθεσε
  α) Όταν η άλλη μεταβλητή έχει τύπο παίρνει τον τύπο της άλλης μεταβλητής
  β) Όταν η άλλη μεταβλητή δεν έχει τύπο οι δύο μεταβλητές δένονται

5)Όταν συμμετέχει σε επίλεξε είτε ως επιλογέας είτε ως μέλος έκφρασης περίπτωσης
  α) Αν κάτι από όλα έχει τύπο,παίρνει τον κατάλληλο τύπο (Αυτόν που έχουν οι υπόλοιπες εκφράσεις ή ο επιλογέας)
  β) Αν ο επιλογέας ή και οι εκφράσεις δεν έχουν τύπο και είναι μεταβλητές - τότε αυτές "δένοται" μεταξύ τους.

6)Στη εντολή εκχώρησης
  α) Αν η έκφραση έχει τύπο παίρνει τον τύπο της έκφρασης
  β)Αν η έκφραση είναι μεταβλητή που δεν έχει τύπο τότε οι δύο μεταβλητές "δένονται".

7)Αν είναι στοιχείο πίνακα, τότε παίρνει τον τύπο του πίνακα. Αν ο πίνακας δεν έχει τύπο τότε η μεταβλητή "δένεται" με τον πίνακα.

8 )Αν είναι η μοναδική μεταβλητή σε για είτε ως μεταβλητή είτε ως από είτε ως μέχρι είτε ως βήμα, παίρνει αριθμητικό τύπο.

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

Όταν μία μεταβλητή δένεται με μία άλλη σημαίνει ότι όποια πάρει πρώτη τύπο , δίνει τον τύπο της και στην άλλη.
 
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 08 Ιουν 2008, 01:43:38 ΜΜ
Είμαι σε φάση που δοκιμάζω την λεκτική-συντακτική ανάλυση και την εξαγωγή τύπων. Θέλω να δοκιμάσω αρκετά το backend πριν προχωρήσω στο περιβάλλον εκτέλεσης και τον συντάκτη.

Σημασία έχει ο διερμηνευτής να
1) Επιστρέφει το σωστό κώδικα μετά τον πετυχημένο συντακτικό έλεγχο
2) Να εξάγει τον σωστό τύπο σύμφωνα με τους κανόνες που δημοσίευσα
3)Να πιάνει όλα τα λάθη που μπορούν να πιαστούν κατά τη μεταγλώττιση.

Στην διεύθυνση : http://users.sch.gr/sstergou/pseudoglossa/ υπάρχει ένα πολύ λιτό και όχι φιλικό interface για το μεταγλωττιστή. Μπορεί όμως να δοκιμάσει όλα τα παραπάνω.

Αν κάποιος έχει χρόνο και όρεξη, ας ρίξει μια ματιά. Σημασία έχουν όλα τα πιθανά λάθη αλλά και οι σωστές μεταγλωττίσεις. Βάζεις τον κώδικα στο textarea πατάς μεταγλώττιση αν υπάρχει λάθος υποτίθεται αναφέρεται, αλλιώς φαίνονται οι μεταβλητές που έχουν πάρει τύπο (και η έκφραση από την οποία έχουν πάρει) και στη συνέχεια ο κώδικας μορφοποιημένος με tabs, χωρίς σχόλια. Θα είναι μεγάλη βοήθεια οποιαδήποτε δοκιμή και αναφορά λάθους στο : sstergouATgmailDOTcom.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: pgrontas στις 08 Ιουν 2008, 05:34:47 ΜΜ
Στάθη θα έχω κάποιον χρόνο από Τετάρτη, οπότε σκέφτομαι να αρχίσω να δοκιμάζω.
Θες να ελέγξεις κάτι συγκεκριμένο ή να αρχίσουμε να βαράμε και ότι βρίσκουμε?
Από μια σύντομη ματιά που είδα τώρα είναι case sensitive. Δεν δέχεται πχ. ΑΛΓΟΡΙΘΜΟΣ με κεφαλαία. Επίσης η εκχώρηση είναι <-?
Θα ξεκινήσω δοκιμές από Τετάρτη.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 09 Ιουν 2008, 12:11:20 ΠΜ
Παναγιώτη προς το παρόν είναι case sensitive, αργότερα όταν υλοποιηθεί ο συντάκτης θα γίνεται έλεγχος για τις λέξεις κλειδιά και θα αναγνωρίζονται σε όλες τους τις μορφές (π.χ. τελοσ_αΝ).
Προς το παρόν οι λέξεις κλειδιά είναι όπως τις έχει το βιβλίο. Η εκχώρηση είναι το <- αλλά και το σύμβολο unicode ← .

Εγώ ελέγχω συνεχώς για τη σωστή απόδοση τύπων, το χειρισμό πινάκων και τα λάθη που προκύπτουν όταν γίνεται κάτι περίεργο κτλ
π.χ.
Κώδικας (ψευδογλώσσα) [Επιλογή]

Επίλεξε α
  Περίπτωση β,τ
  Περίπτωση γ[1]
  Περίπτωση 4
Τέλος_επιλογών


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

ενώ ο :
Κώδικας (ψευδογλώσσα) [Επιλογή]

α[1] <- 2
α[2] <- "3"


Πρέπει να χτυπήσει λάθος τύπων.

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

Ευχαριστώ εκ των προτέρων.

Α, και όποιος θέλει να ασχοληθεί παραπάνω τώρα που υπάρχει κάποια βάση και δεν ξεκινάμε από το μηδέν ας μου στείλει μήνυμα.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: alkisg στις 09 Ιουν 2008, 07:31:47 ΠΜ
Διάβασε α, β
Εμφάνισε α > β

Δουλεύει ανεξαρτήτως τύπων είτε για αριθμητικές είτε για αλφαριθμητικές μεταβλητές, και μάλιστα αν ο χρήστης δώσει 10, 9 ανάλογα με το τι τύπο θα ορίσεις βγάζεις διαφορετικό αποτέλεσμα.
Στάθη μου φαίνεται πιο σοφό για την ψυχική σου υγεία ;) να παρατήσεις τον στατικό έλεγχο τύπων, και να κάνεις μόνο δυναμικό.

Διάβασε α   !Ο χρήστης δίνει 0432. Tο διαβάζεις σαν κείμενο! Όχι σαν αριθμό, γιατί τότε θα χάσεις τα αρχικά μηδενικά.
                !Αν όμως δεν είχε μηδενικά, καλύτερα να τον διαβάσεις σαν αριθμό για να διευκολύνεις τις αρχικές δραστηριότητες.
Εμφάνισε α > 0  !Σε αυτό το σημείο καταλαβαίνεις ότι έπρεπε να είναι αριθμός.

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

α <- "10"
Εμφάνισε α > 0

Το παραπάνω όμως είναι σίγουρα συντακτικό σφάλμα.

Επομένως, κατά την εκτέλεση, αποφασίζεις για τους τύπους:
1. Το τι τύπο θεώρησες ότι είναι, a.type = {empty, number, integer, real, string, boolean}
2. Το πόσο σίγουρος είσαι για τη θεώρηση, a.stricttype = {false, true}
Αν δεν είσαι σίγουρος, επιτρέπεις (μερικές μόνο) δυναμικές αλλαγές τύπων, όπως στο παραπάνω παράδειγμα.
Αν είσαι σίγουρος τότε δεν επιτρέπεις δυναμική αλλαγή τύπου και πετάς συντακτικό σφάλμα κατά την εκτέλεση. :)

Ο τύπος number παραπάνω χρειάζεται για τις περιπτώσεις:
α <- 1    ! α = number, δεν ξέρουμε τι είναι
α <- 1.1 ! α = real
α <- 4 div 2  ! α = integer

και φυσικά δυναμικά μετατρέπεται σε real ή integer όταν θα έχεις παραπάνω πληροφορίες, ώστε να απαγορεύσεις στη συνέχεια περαιτέρω αλλαγή του στον αντίθετο (integer / real) τύπο. Π.χ. αν οι τρεις παραπάνω εντολές υπήρχαν στο ίδιο πρόγραμμα, στην τρίτη έπρεπε να χτυπήσεις συντακτικό σφάλμα.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 09 Ιουν 2008, 11:21:02 ΠΜ
Παράθεση από: alkisg στις 09 Ιουν 2008, 07:31:47 ΠΜ
Διάβασε α, β
Εμφάνισε α > β
Δουλεύει ανεξαρτήτως τύπων είτε για αριθμητικές είτε για αλφαριθμητικές μεταβλητές, και μάλιστα αν ο χρήστης δώσει 10, 9 ανάλογα με το τι τύπο θα ορίσεις βγάζεις διαφορετικό αποτέλεσμα.
Για αυτό και σ'αυτήν την περίπτωση δεν αποδίδεται τύπος στη διάρκεια της μεταγλώττισης αλλά περιμένω να μαντέψω κατά τη διάρκεια της εκτέλεσης.

Παράθεση από: alkisg στις 09 Ιουν 2008, 07:31:47 ΠΜ
Στάθη μου φαίνεται πιο σοφό για την ψυχική σου υγεία ;) να παρατήσεις τον στατικό έλεγχο τύπων, και να κάνεις μόνο δυναμικό.

Αυτό σκεφτόμουνα στην αρχή αλλά προφανώς το
Κώδικας (ψευδογλώσσα) [Επιλογή]
β<- α / "αλφαριθμητικό"
πρέπει να χτυπήσει λάθος μεταγλώττισης. Τώρα η ζημιά έγινε (!)

Βέβαια υπάρχει το εξής πρόβλημα :
Κώδικας (ψευδογλώσσα) [Επιλογή]

α <- 2
Αν α > 3 τότε
  β <- 4
αλλιώς
  β <-3.14
Τέλος_αν

γ <- α mod β

όπου αν και όλη η πληροφορία είναι εκεί ο τύπος δεν μπορεί να εξακριβωθεί γιατί πρέπει να εκτελεστεί ο κώδικας οπότε ο έλεγχος για το mod είναι λάθος και βασίζεται στην τελευταία τιμή του β (3.14).
Αυτό που θα μπορούσε να γίνει είναι :
Ο real να είναι strict τύπος και να μην επιτρέπεται μετατροπή σε integer οπότε χτυπάει λάθος μεταγλώττισης, αλλά τότε παίρνουμε μέρος της ελευθερίας της ψευδογλώσσας και αυτό δεν μου αρέσει. Ακόμη θα μπορούσε ο μεταγλωττιστής απλά να βγάζει ένα warning χωρίς να σταματάει και να αφήνει το λάθος να πιαστεί κατά τη διάρκεια της εκτέλεσης.

Παράθεση από: alkisg στις 09 Ιουν 2008, 07:31:47 ΠΜ
2. Το πόσο σίγουρος είσαι για τη θεώρηση, a.stricttype = {false, true}
Αν δεν είσαι σίγουρος, επιτρέπεις (μερικές μόνο) δυναμικές αλλαγές τύπων, όπως στο παραπάνω παράδειγμα.
Αν είσαι σίγουρος τότε δεν επιτρέπεις δυναμική αλλαγή τύπου και πετάς συντακτικό σφάλμα κατά την εκτέλεση. :)

Ενδιαφέρουσα προσέγγιση  :)

Παράθεση από: alkisg στις 09 Ιουν 2008, 07:31:47 ΠΜ
Ο τύπος number παραπάνω χρειάζεται για τις περιπτώσεις:
α <- 1    ! α = number, δεν ξέρουμε τι είναι
α <- 1.1 ! α = real
α <- 4 div 2  ! α = integer

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

Ξέρεις τι δε μου αρέσει σε αυτό; :
Κώδικας (ψευδογλώσσα) [Επιλογή]
α<-3.14
εντολές
α <- 2
Γράψε α mod 2

με αυτή την προσέγγιση ο παραπάνω κώδικας πρέπει να χτυπήσει λάθος αν και η τιμή του α είναι έγκυρη... :(
Μήπως να πάμε και εδώ σε σφάλμα χρόνου εκτέλεσης με κάποιο warning ίσως στη μεταγλώττιση;
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: papet στις 09 Ιουν 2008, 11:59:54 ΠΜ
Είμαι λίγο ζαλισμένος σήμερα αλλά, παρακαλώ ας μου επιτραπεί μια παρέμβαση...

Παράθεση από: alkisg στις 09 Ιουν 2008, 07:31:47 ΠΜ
Ο τύπος number παραπάνω χρειάζεται για τις περιπτώσεις:
α <- 1    ! α = number, δεν ξέρουμε τι είναι
α <- 1.1 ! α = real
α <- 4 div 2  ! α = integer

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

Νομίζω ότι μπορεί να αποφευχθεί η χρήση του τύπου number. Ο αριθμός μπορεί να θεωρείται αρχικά integer (αν δεν καθορίζεται σαφώς ως real από την πρώτη εκχώρηση) και στη συνέχεια να "κλειδώνει" (κι εμένα μου άρεσε η ιδέα με τη stricttype ιδιότητα) με το πρώτο div/mod ή δεκαδικό στον αντίστοιχο τύπο...

(Συγχωρήστε με αν λέω αβάσιμα πράγματα -είχα μια πολύ δύσκολη νύχτα-)
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 09 Ιουν 2008, 01:07:07 ΜΜ
Ναι, σε κάποιες περιπτώσεις όπως στη συγκεκριμένη μπορεί να αποφευχθεί.

Σκέψου όμως και το :

Κώδικας (ψευδογλώσσα) [Επιλογή]

β <- 1
Διάβασε α
β <- α + β


Δεν πρέπει το α να πάρει κάποιον τύπο έστω και προσωρινό ώστε να ξέρει ο μεταγλωττιστής σε τι εκφράσεις μπορεί να τον χρησιμοποιήσει;
Και αφού δεν ξέρουμε αν είναι integer ή real , το προτιμότερο είναι ένας γενικότερος τύπος number.

Βασικά αυτό που σκεφτόμουνα είναι οι τύποι integer και real να έχουν αξία μόνο αν η μεταβλητή έχει τιμή. Την τιμή της όμως δεν μπορείς να την ξέρεις πριν την εκτέλεση είτε γιατί πρέπει να διαβαστεί είτε γιατί πρέπει να εκτελέσεις τον κώδικα (δες το παραπάνω παράδειγμα με την Αν). Μου κακοφαίνεται για την φιλοσοφία της ψευδογλώσσας ο αυστηρός ακέραιος ή πραγματικός τύπος που χτυπάει λάθος μεταγλώττισης σε div,mod, ακόμα και αν δεν είναι γνωστή η τιμή της μεταβλητής...

π.χ. ο κώδικας
Κώδικας (ψευδογλώσσα) [Επιλογή]

α[4/4] <- 1

πρέπει να χτυπήσει λάθος μεταγλώττισης?

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

Βέβαια ίσως αυτό αποδειχθεί τελικά ανέφικτο οπότε πάμε σε αυστηρούς τύπους.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: alkisg στις 09 Ιουν 2008, 02:37:02 ΜΜ
papet, δίκιο έχεις, ο τύπος number μπορεί να αποφευχθεί αν οι αριθμοί θεωρούνται αρχικά integer με stricttype=false. Τα έγραψα βιαστικά γιατί έφευγα για σχολείο.

Στάθη, το
β <- α / "αλφαριθμητικό"
ΔΕΝ είναι απαραίτητο να χτυπήσει εξ' αρχής λάθος μεταγλώττισης. Μπορεί να το χτυπήσει αργότερα όταν πάει να εκτελέσει τη συγκεκριμένη γραμμή. Έτσι θα είναι και συνεπής με τη θεωρία του βιβλίου, που λέει ότι οι διερμηνευτές μεταφράζουν το πρόγραμμα ανά γραμμή (ας μην επεκταθώ παραπέρα γιατί έχω πολλά να πω για τη θεωρία! :P). Φυσικά έτσι που το έχεις σχεδιάσει το β <- α / / θα χτυπήσει συντακτικό λάθος εξ' αρχής αφού το δεύτερο / δεν είναι έκφραση.

Για παράδειγμα,
Κώδικας (ψευδογλώσσα) [Επιλογή]

Αν 1 = 2 τότε β <- α / "αλφαριθμητικό"
Εμφάνισε "Η παραπάνω ανάθεση δεν πρόκειται να εκτελεστεί ποτέ, επομένως ένας διερμηνευτής μπορεί κάλλιστα να εκτελέσει τον αλγόριθμο"



Βασικά προτείνω να υπάρχουν οι εξής επιλογές κάπου στο interface:
( ) Να μην επιτρέπονται αλλαγές στον τύπο των μεταβλητών και να σταματάει η εκτέλεση
(*) Να επιτρέπονται αλλαγές στον τύπο των μεταβλητών και να εμφανίζεται warning
( ) Να επιτρέπονται αλλαγές στον τύπο των μεταβλητών και να μην εμφανίζεται warning

και φυσικά όταν λέω αλλαγή τύπου, εννοώ αφού έχει ξεκαθαριστεί ο τύπος της (stricttype = true). Δηλαδή το α <- 1 και μετά α <- 1.2 δεν θεωρείται αλλαγή τύπου.
Γράφω κάποια παραδείγματα παρακάτω. Όταν λέω "να βγάλει warning", αυτό εξαρτάται από την επιλογή του interface, δηλαδή μπορεί είτε να σταματήσει, είτε να εμφανίσει warning, είτε να μην εμφανίσει τίποτα.

Παραδείγματα:
α <- 1.1
α <- 2
ι <- α div 2
Θεωρώ ότι πρέπει να βγάλει warning, το div δεν ορίζεται για πραγματικούς. Αν ήθελε div δεν θα έπρεπε ποτέ να του αναθέσει πραγματική τιμή.

α <- 6.2
β <- α div 2
Επίσης warning αλλά αν ο χρήστης έχει επιλέξει να μη σταματάει η εκτέλεση τότε το β να γίνει 3 και να συνεχίσει.

α <- "Κώστας"
α <- 3
Επίσης προτείνω σκέτο warning και να επιτρέπεται η συνέχιση της εκτέλεσης με τη σχετική επιλογή του interface.
Εφόσον λέμε ότι δεν έχουμε τύπους, δεν έχουμε τύπους, τελεία. Στο χέρι του προγραμματιστή είναι να κάνει ότι θέλει. Δεν είναι περίεργο, αρκετές γλώσσες το επιτρέπουν.

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

Ένα πιο σοβαρό είναι οι πράξεις:
α <- "6.2"
β <- α div 2

ή

α <- "Κώστας"
β <- α div 2

Φυσικά θα βγάλεις warning, θα σταματήσει όμως η εκτέλεση ή όχι; Εδώ μερικές γλώσσες κάνουν το β στην πρώτη περίπτωση 3 και στη δεύτερη 0, άλλες το κάνουν NaN (Not A Number) και άλλες δεν το επιτρέπουν και σταματάνε την εκτέλεση.
Προτείνω σε αυτήν την περίπτωση να σταματάει η εκτέλεση, γιατί δεν μπορώ να φανταστώ μαθητή που να θέλει επίτηδες να κάνει κάτι τέτοιο.

Ιδέες ρίχνω, εσύ διαλέγεις...
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 09 Ιουν 2008, 09:05:54 ΜΜ
Μου φαίνεται περίεργο να υλοποιώ μια stictly typed γλώσσα ενώ τόσο καιρό είμαι φανατικός υποστηρικτής των δυναμικών τύπων και πιο συγκεκριμένα των τύπων πάπιας : http://en.wikipedia.org/wiki/Duck_typing (http://en.wikipedia.org/wiki/Duck_typing)

Το κακό είναι ότι δεν υπάρχει η αντίστοιχη στήριξη από το βιβλίο για τέτοια υλοποίηση, το οποίο μιλάει ξεκάθαρα για τύπους. Αν είναι να δώσω ένα χαρακτηρισμό στην ψευδογλώσσα θα της έδινα stictly typed με type inference εκτός βέβαια από τους αριθμούς που εκεί τα πράγματα είναι λίγο χλωμά.

Νομίζω ότι για τους αριθμούς το καλύτερο θα ήταν ένα warning πριν την εκτέλεση για τον πιθανό κίνδυνο και σφάλμα χρόνου εκτέλεσης αν έχουμε μη ακέραιο δείκτη πίνακα και div, mod με μη ακέραιους τελεσταίους.

Παράθεση από: alkisg στις 09 Ιουν 2008, 02:37:02 ΜΜ
το
β <- α / "αλφαριθμητικό"
ΔΕΝ είναι απαραίτητο να χτυπήσει εξ' αρχής λάθος μεταγλώττισης. Μπορεί να το χτυπήσει αργότερα όταν πάει να εκτελέσει τη συγκεκριμένη γραμμή. Έτσι θα είναι και συνεπής με τη θεωρία του βιβλίου, που λέει ότι οι διερμηνευτές μεταφράζουν το πρόγραμμα ανά γραμμή (ας μην επεκταθώ παραπέρα γιατί έχω πολλά να πω για τη θεωρία!
...


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

Άσε που το συγκεκριμένο σημείο θεωρίας είναι το λιγότερο παρωχημένο ;) Μήπως ο διερμηνευτής της γλώσσας δεν είναι τελικά διερμηνευτής :D

Παράθεση από: alkisg στις 09 Ιουν 2008, 02:37:02 ΜΜ
Βασικά προτείνω να υπάρχουν οι εξής επιλογές κάπου στο interface:
( ) Να μην επιτρέπονται αλλαγές στον τύπο των μεταβλητών και να σταματάει η εκτέλεση
(*) Να επιτρέπονται αλλαγές στον τύπο των μεταβλητών και να εμφανίζεται warning
( ) Να επιτρέπονται αλλαγές στον τύπο των μεταβλητών και να μην εμφανίζεται warning

Το κακό στα 2,3 είναι ότι μπορεί να χαθεί πληροφορία και το ότι έρχεται σε πλήρη αντίθεση με αυτό που θα μάθουν αργότερα....

Ψηφίζω warning πριν την εκτέλεση (μόνο για αριθμούς, για άλλους τύπους λάθος) και σφάλμα χρόνου εκτέλεσης με παύση εκτέλεσης.

Όσοι άλλοι συνάδελφοι έχουν άποψη για αυτό το θέμα, θα εκτιμούσα ιδιαίτερα αν την έγραφαν.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: pgrontas στις 12 Ιουν 2008, 10:14:13 ΜΜ
My 2 cents...

Από εκπαιδευτικής πλευρά ο Στάθης έχει δίκιο, από την πλευρά της ευελιξίας ο Άλκης έχει δίκιο. Αλλά νομίζω πως για το συγκεκριμένο θέμα προέχει η εκπαιδευτική πλευρά.
Επιπλέον νομίζω ότι έχει απόλυτο δίκιο στον χαρακτηρισμό static typed με type inference με τους τύπους που εξάγονται να είναι οι γενικότεροι δυνατοί - όπως το έχει φτιάξει ήδη.
Δεν έχω όλους τους αλγόριθμους του βιβλίου στο κεφάλι μου αλλά δεν νομίζω να μπορεί να συμβεί αλλαγή τύπου - μπορεί να υπάρχει περίπτωση μη αναγνώρισης τύπου όχι όμως αλλαγής.
Σχετικά με το div και το mod είναι σίγουρο ότι δεν ορίζονται σε πραγματικούς? Μήπως θα μας έλυνε τα προβλήματα αν τα ορίζαμε και σε πραγματικούς χρησιμοποιώντας το ακεραιο μέρος, όπως γίνεται σε κάποιες γλώσσες προγραμματισμού.
Αυτό στο οποίο δεν συμφωνώ είναι να δίνεται η δυνατότητα μέσω επιλογών στον χρήστη να αλλάξει την σημασία και την συμπεριφορά ενός προγράμματος.
Καλύτερα να αποφασίσουμε κάτι και τα προγράμματα να έχουν την ίδια σημασία πάντα έστω και αν μας περιορίζει.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 12 Ιουν 2008, 10:35:06 ΜΜ
Αν δεν με απατά η μνήμη μου τα div, mod ορίζονται μόνο για ακέραιους αριθμούς.

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

Μια ιδέα είναι οι  συγκεκριμένοι τελεστές να υλοποιηθούν έτσι ώστε να δουλεύουν και με πραγματικούς και να εμφανίζεται προειδοποίηση (ή σφάλμα) στη μεταγλώττιση αλλά και στην εκτέλεση. Η προειδοποίηση αυτή θα μπορεί να απενεργοποιείται έτσι ώστε ο χρήστης που "ξέρει τι κάνει" να μην ενοχλείται. Από πλευράς ευελιξίας σίγουρα το καλύτερο.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: potato στις 14 Ιουν 2008, 01:52:46 ΠΜ
Βασικά πρέπει να σκεφτείς τι σκοπό και ανάγκες εκπληρώνεις με το project αυτό. Όταν καλοσκεφτείς αυτό, μετά θα μπορείς να κρίνεις αν είναι αναγκαίο να υλοποιηθεί τέτοια  συνάρτηση σαν την fmod. Δηλαδή τουλάχιστον για αρχή δε νομίζω ότι πρέπει να αφιερώσεις χρόνο και κόπο σε ένα τέτοιο θέμα.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 14 Ιουν 2008, 07:20:13 ΜΜ
Έχεις δίκιο σε αυτό που λες, μόνο που είναι δύσκολο με τόσα σκοτεινά σημεία στα βιβλία του μαθήματος. Σε κάνει να αναρωτιέσαι πρωτίστως για το τι σκοπούς είχαν οι συγγραφείς, αν τους πέτυχαν και αν πρέπει να τους ακολουθήσεις κατά γράμμα με δεδομένα τα προβλήματα που υπάρχουν.

Προς το παρόν σαρώνω ξανά τα 3 βιβλία μήπως και μου ξέφυγε τίποτα αλλά και μήπως μαντέψω τις απαντήσεις σε αυτά τα ερωτήματα.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 21 Μαρ 2009, 05:36:42 ΜΜ
Συνάδελφοι, στην διεύθυνση http://www.pseudoglossa.gr (http://www.pseudoglossa.gr) λειτουργεί ένας on-line διερμηνευτής για την Ψευδογλώσσα της Α.Ε.Π.Π. Βρίσκεται σε στάδιο δοκιμών αλλά έχει χρησιμοποιηθεί με επιτυχία από τους μαθητές μου.

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

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

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

Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: P.Tsiotakis στις 22 Μαρ 2009, 06:46:59 ΜΜ
Συγχαρητήρια για την επιμονή σου Στάθη.

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

Και πάλι πολλά μπράβο..
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 22 Μαρ 2009, 10:29:50 ΜΜ
Ευχαριστώ για τα καλά σου λόγια Παναγιώτη.
Το θέμα με το βελάκι διορθώθηκε.

Παραλίγο να το ξεχάσω, αντί για το βελάκι μπορείς να γράψεις : <-
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: P.Tsiotakis στις 10 Ιουν 2009, 11:41:40 ΠΜ
Στάθη, ήθελα εδω και καιρό να γράψω και το αμελούσα

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

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



Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: evry στις 10 Ιουν 2009, 12:56:13 ΜΜ
Πάρα πολύ καλή δουλειά, μπράβο. Είναι γρήγορο, δεν κολλάει καθόλου, αν και θα πρέπει να το δω και από τους υπολογιστές του σχολείου ;D.

Ειδικά με τους πίνακες έχει πολύ ενδιαφέρον. Μπορείς να φτιάξεις έναν πίνακα 10 θέσεων και μετά να κάνεις μια εκχώρηση στο 20ο στοιχείο του. Υπάρχει δηλαδή ένας δυναμικός χαρακτήρας όπως θα έπρεπε να είναι σε ψευδογλώσσα.
   Σε javascript το έχεις κάνει?
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: Νίκος Αδαμόπουλος στις 10 Ιουν 2009, 04:01:38 ΜΜ
Όντως πολύ καλή δουλειά! Μπράβο Στάθη!! Δεν είχα υπόψη μου το εργαλείο που έχεις φτιάξει και πράγματι μπορεί να συμβάλλει πολύ στο μάθημα...

Ρίχνοντας μια ματιά στον κώδικα είδα ότι αναφέρεται το Adobe Flex...
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: pgrontas στις 10 Ιουν 2009, 05:53:36 ΜΜ
Στάθη, πολύ καλή δουλειά.
Είχα λίγο καιρό να μπώ στο site σου και όπως είδα σήμερα του άλλαξες το φώτα!!!
Πολύ ωραίο design και πολύ επαγγελματικό.

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

Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: P.Tsiotakis στις 10 Ιουν 2009, 06:03:30 ΜΜ
Αυτό με το offline είναι και δική μου απορία (- αίτημα  ::) )
ο κώδικας λογικά μπορεί να κλειδωθεί ...

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

Επίσης, αν θέλεις θα βρούμε και άλλες προσθήκες για να γεμίσεις και τον υπόλοιπο ελεύθερο χρόνο σου  :D
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 10 Ιουν 2009, 06:21:39 ΜΜ
Παναγιώτη, Ευριπίδη και Νίκο ευχαριστώ για τον χρόνο που διαθέσατε στο να δείτε την εφαρμογή.

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

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

Ευριπίδη είναι αρκετά γρήγορο για διαδικτυακή εφαρμογή επειδή η διαδικασία της μεταγλώττισης και της εκτέλεσης γίνεται εξ' ολοκλήρου στον 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:24:16 ΜΜ
Παράθεση από: Τσιωτάκης Παναγιώτης στις 10 Ιουν 2009, 06:03:30 ΜΜ
Επίσης, αν θέλεις θα βρούμε και άλλες προσθήκες για να γεμίσεις και τον υπόλοιπο ελεύθερο χρόνο σου  :D

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

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

Κύριε των δυνάμεων....
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: P.Tsiotakis στις 10 Ιουν 2009, 06:36:11 ΜΜ
Άρα αν αποθηκευτεί τοπικά το plug in θα ανοίγει offline απο browser ??
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 10 Ιουν 2009, 06:37:00 ΜΜ
Ευχαριστώ και εσένα Παναγιώτη (pgrontas).

Μπορεί κάποιος να κάνει αποθήκευση της σελίδας τοπικά και να το τρέξει offline. Για την αποθήκευση του κώδικα όμως (όταν με το καλό υλοποιηθεί) θα πρέπει να έχει σύνδεση. Προς το παρόν δεν έχω σκοπό να φτιάξω και έκδοση που να λειτουργεί αυτόνομα τοπικά. Όποιος δεν έχει σύνδεση όμως  μπορεί να αποθηκεύει σε txt (π.χ. με το notepad) τα αρχεία και να τα φορτώνει με αντιγραφή επικόλληση.

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

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

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

Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: evry στις 10 Ιουν 2009, 06:43:16 ΜΜ
Μια χαρά είναι και στην ταχύτητα, δοκίμασα για τους πρώτους από 1 εώς 100 και τους έβγαλε αμέσως. Μέχρι το 1000 φυσικά καθυστέρησε λίγο αλλά και πάλι τους έβγαλε.
   Φυσικά αυτό το οποίο με κέρδισε αμέσως είναι ότι μπορείς να αλλάξεις τον μετρητή i μέσα στη Για και έτσι γίνεται σίγουρα η καταλληλότερη δομή επανάληψης :D.

Κώδικας (ΨΕΥΔΟΓΛΩΣΣΑ) [Επιλογή]

Αλγόριθμος primes
Εμφάνισε 'Δώσε έναν ακέραιο αριθμό'
Διάβασε Ν
ΓΙΑ  αριθμός  ΑΠΟ 2 ΜΕΧΡΙ Ν
ΓΙΑ i  ΑΠΟ 2 μέχρι αριθμός-1
Αν αριθμός mod i = 0  τότε
i <-  αριθμός+1
Τέλος_Αν
Τέλος_Επανάληψης
Αν i = αριθμός Τότε
Εμφάνισε αριθμός
Τέλος_Αν
Τέλος_Επανάληψης
Τέλος primes
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: P.Tsiotakis στις 10 Ιουν 2009, 06:45:33 ΜΜ
Στάθη

(http://users.kor.sch.gr/ptsiotakis/image_gen/worshippy.gif)
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: P.Tsiotakis στις 10 Ιουν 2009, 06:46:13 ΜΜ
Ευριπίδη, και ποιος πιστεύεις οτι είναι ο καταλληλότερος υπουργός;
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 10 Ιουν 2009, 06:46:42 ΜΜ
Παράθεση από: pgrontas στις 10 Ιουν 2009, 06:24:16 ΜΜ
Παράθεση από: Τσιωτάκης Παναγιώτης στις 10 Ιουν 2009, 06:03:30 ΜΜ
Επίσης, αν θέλεις θα βρούμε και άλλες προσθήκες για να γεμίσεις και τον υπόλοιπο ελεύθερο χρόνο σου  :D

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

Και πάλι μπράβο, Στάθη.

Τα περισσότερα από αυτά που λες (και ιδιαίτερα η πλοήγηση σε αλγορίθμους και ασκήσεις με tags) αλλά και άλλα (περιορισμός πρόσβασης σε ασκήσεις και αλγορίθμους από τον ιδιοκτήτη τους) τα έχω λάβει υπόψη μου στον αρχικό σχεδιασμό. Δεν ξέρω όμως για τους λόγους που είπα πριν αν και πότε θα τα κάνω.

Αρκετοί από εσάς είχατε σκεφτεί κάτι τέτοιο πολύ πριν από μένα. Μάλιστα είχε συγκροτηθεί τότε και μια ομάδα. Αν πιστεύετε ότι έχετε το χρόνο και την διάθεση να συνεισφέρετε ακόμη και τώρα υπάρχουν πολλά που πρέπει να γίνουν. Ήδη έχετε σκεφτεί αρκετά!
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 10 Ιουν 2009, 06:48:52 ΜΜ
Με δεξί κλικ μπορείτε να αντιγράψετε τον κώδικα ως HTML.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: alkisg στις 10 Ιουν 2009, 10:16:48 ΜΜ
Μπράβο βρε Στάθη!
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: evry στις 11 Ιουν 2009, 01:32:51 ΠΜ

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

Παράθεση από: Τσιωτάκης Παναγιώτης στις 10 Ιουν 2009, 06:46:13 ΜΜ
Ευριπίδη, και ποιος πιστεύεις οτι είναι ο καταλληλότερος υπουργός;
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: P.Tsiotakis στις 11 Ιουν 2009, 09:21:59 ΠΜ
Θα πω στο Λαζόπουλο που θα παει στο γάμο, να του πει καμια καλή κουβέντα...
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 28 Αυγ 2009, 03:49:35 ΜΜ
Προστέθηκαν οι δυνατότητες εγγραφής χρηστών και δημιουργίας-διαχείρισης αλγορίθμων.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: ntzios kostas στις 29 Αυγ 2009, 11:08:19 ΠΜ
Φίλε Στάθη έξοχη δουλεία. Μπράβο σου!!!!

Το μόνο που βρήκα ως παρατήρηση είναι ότι κατά βήμα προς βήμα εκτέλεσης της δομής ΓΙΑ,  ο μετρητής αλλάζει όταν η εκτέλεση μπαίνει σε μία επανάληψη δηλαδή όταν ξεπερνάει την πρώτη γραμμή του ΓΙΑ και όχι στο τέλος_επανάληψης.

Ευχαριστώ.

Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 29 Αυγ 2009, 12:29:17 ΜΜ
Ευχαριστώ Κώστα!

Όσον αφορά την δομή Για, είναι εύκολο να γίνει μία τέτοια αλλαγή και η αλλαγή της τιμής της μεταβλητής ελέγχου να γίνεται στο τέλος_επανάληψης. Από την στιγμή όμως που η εντολή με_βήμα βρίσκεται στην πρώτη γραμμή της εντολής, έβαλα εκεί πέρα και αλλαγή της μεταβλητής ελέγχου (για λόγους κατανόησης).

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

Αν παρ' όλα αυτά οι περισσότεροι νομίζουν ότι η αλλαγή πρέπει να γίνεται στο τέλος, θα το αλλάξω.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: Νίκος Αδαμόπουλος στις 29 Αυγ 2009, 02:35:59 ΜΜ
Παράθεση από: sstergou στις 29 Αυγ 2009, 12:29:17 ΜΜ
Όσον αφορά την δομή Για, είναι εύκολο να γίνει μία τέτοια αλλαγή και η αλλαγή της τιμής της μεταβλητής ελέγχου να γίνεται στο τέλος_επανάληψης. Από την στιγμή όμως που η εντολή με_βήμα βρίσκεται στην πρώτη γραμμή της εντολής, έβαλα εκεί πέρα και αλλαγή της μεταβλητής ελέγχου (για λόγους κατανόησης).

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

Κι εγώ θα συμφωνήσω με τον Κώστα!

Για παράδειγμα στο:

Για i από 1 μέχρι 10 με_βήμα 2
   Εμφάνισε  i
Τέλος_επανάληψης

Η μετατροπή σε Όσο θα ήταν:

i<-1
Όσο i<=10 επανάλαβε
   Εμφάνισε  i
   i<-i+2
Τέλος_επανάληψης 

Δηλαδή θα περίμενε κάποιος όταν η εκτέλεση θα φτάνει στο Τέλος_επανάληψης κάθε φορά, να έχει αλλάξει ήδη η τιμή της μεταβλητής (ή να αλλάζει τη στιγμή εκείνη αφού η εντολή  i<-i+2 είναι αόρατη) - βλ. εικόνα. Αλλιώς μπορεί να δημιουργήσει σύγχυση ακριβώς σε αυτό: στον συσχετισμό με την Όσο...
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 29 Αυγ 2009, 03:38:35 ΜΜ
Έχετε δίκιο στο ότι μπορεί να μπερδέψει κάποιον που έχει στο μυαλό του την ισοδύναμη Όσο. Μιλάμε όμως για διαφορετική δομή.

Όπως και να χει, το αλλάζω.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: evry στις 29 Αυγ 2009, 04:39:56 ΜΜ
Κάτσε ρε περίμενεεεε, μην αλλάζεις τίποτα ακόμα!!!
  Ο μετρητής πρέπει να αλλάζει τη στιγμή που φεύγει ο έλεγχος από το Τέλος_Επανάληψης και γυρνάει πίσω στο Για. Δηλαδή πριν φύγει από το τέλος επανάληψης έχει ακόμα την τιμή της προηγούμενης επανάληψης. Συμφωνώ με το σκεπτικό του Στάθη ότι πρόκειται για άλλη δομή και όχι για την Όσο και πρέπει να την αντιμετωπίσουμε με τις δικές της ιδιαιτερότητες δηλαδή ότι πρέπει να συσχετιστεί η αλλαγή του μετρητή με το με βήμα.
   Δεν είμαι απολύτως σίγουρος γιατί το θέμα δεν είναι τόσο απλό όσο φαίνεται να πεις με σιγουριά ποια από τις 2 περιπτώσεις θα παράγει περισσότερες παρανοήσεις, αλλά μου φαίνεται με μια πρώτη ματιά ότι είναι οκ ως έχει.
   Δηλαδή αν αλλάζει πριν το Τέλος_Επανάληψης ο μαθητής θα αναρωτηθεί γιατί το με_βήμα είναι εκεί πάνω και δεν είναι εδώ κάτω αφού εδώ εκτελείται?
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 29 Αυγ 2009, 05:44:21 ΜΜ
Ευριπίδη  οι περιπτώσεις είναι 2
1) Αλλαγή τιμής όταν ο εκτελείται τη εντολή "Για ι από 1 μέχρι 10 με_βήμα 2"
2) Αλλαγή τιμής όταν εκτελείται η εντολή "Τέλος_Επανάληψης".

Εγώ είμαι υπέρ της πρώτης.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: P.Tsiotakis στις 29 Αυγ 2009, 06:02:01 ΜΜ
Εγώ παιδιά θεωρώ οτι μετά την Τέλος_επανάληψης (που η ροή αναγκαστικά μεταβαίνει στη Για), πραγματοποιείται η τροποποίηση του μετρητή σύμφωνα με το βήμα...
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: evry στις 29 Αυγ 2009, 07:19:21 ΜΜ
Συμφωνώ με τον Παναγιώτη. Δηλαδή η μεταβολή του μετρητή πρέπει να γίνεται τη στιγμή που ο έλεγχος μεταβαίνει από το Τέλος_Επανάληψης στο με_βήμα. Όπως το έχει τώρα

Παράθεση από: Τσιωτάκης Παναγιώτης στις 29 Αυγ 2009, 06:02:01 ΜΜ
Εγώ παιδιά θεωρώ οτι μετά την Τέλος_επανάληψης (που η ροή αναγκαστικά μεταβαίνει στη Για), πραγματοποιείται η τροποποίηση του μετρητή σύμφωνα με το βήμα...
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: Νίκος Αδαμόπουλος στις 29 Αυγ 2009, 08:24:54 ΜΜ
Άλλαξες τίποτα; Δεν θυμάμαι αν το μεσημέρι που το είχα δοκιμάει ο μετρητής άλλαζε και πιο μετά που γύρναγε πίσω στην αρχή της Για ή αν άλλαζε με το που γύρναγε στην αρχή της Για - όπως είναι τώρα... Τώρα που το ξαναείδα καλό μου φαίνεται...  :)
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: Νίκος Αδαμόπουλος στις 29 Αυγ 2009, 08:24:00 ΜΜ
Είδα ότι τα κουπιά Αντιγραφής και Επικόλλησης κώδικα λειτουργούν ανεξάρτητα από τις εντολές Copy και Paste του δεξιού κλικ. Είναι σαν να υπάρχουν δύο διαφορετικά πρόχειρα. Ένα για τα κουμπιά και ένα για το δεξί κλικ...
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: ntzios kostas στις 29 Αυγ 2009, 09:25:47 ΜΜ
Τώρα είναι σωστό. Τώρα η αλλαγή γίνεται κατά την μετάβαση από το τέλος_επανάληψης στη για. Το πρωί ήταν από την για στην πρώτη εντολή της δομής.



Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 29 Αυγ 2009, 09:48:22 ΜΜ
Παράθεση από: Νίκος Αδαμόπουλος στις 29 Αυγ 2009, 08:24:54 ΜΜ
Άλλαξες τίποτα; Δεν θυμάμαι αν το μεσημέρι που το είχα δοκιμάει ο μετρητής άλλαζε και πιο μετά που γύρναγε πίσω στην αρχή της Για ή αν άλλαζε με το που γύρναγε στην αρχή της Για - όπως είναι τώρα..
Ναι, το άλλαξα το μεσημέρι.


Παράθεση από: Νίκος Αδαμόπουλος στις 29 Αυγ 2009, 08:24:00 ΜΜ
Είδα ότι τα κουπιά Αντιγραφής και Επικόλλησης κώδικα λειτουργούν ανεξάρτητα από τις εντολές Copy και Paste του δεξιού κλικ. Είναι σαν να υπάρχουν δύο διαφορετικά πρόχειρα. Ένα για τα κουμπιά και ένα για το δεξί κλικ...

Οι περιορισμοί ασφαλείας που έχει το φλας δεν επιτρέπουν πρόσβαση στο κανονικό πρόχειρο του H/Y και ως εκ τούτου δεν ήταν δυνατό να μπει το κουμπί της επικόλλησης. Για το λόγο αυτό υπάρχει και ξεχωριστό πρόχειρο με κουμπιά στην μπάρα εργαλείων. Το θέμα με προβλημάτισε πάρα πολύ. Το ξέρω δεν είναι ότι καλύτερο αλλά το οι επιλογές ήταν οι εξής :
1) 1 πρόχειρο χωρίς όμως κουμπιά στην μπάρα και πρόσβαση μόνο από το μενού του δεξιού κλικ.
2) 2 πρόχειρα, το πρώτο προσβάσιμο με δεξί κλικ και τις εντολές copy, paste και το δεύτερο με ύπαρξη κουμπιών στην μπάρα και τις επιλογές Αντιγραφή Κώδικα, Επικόλληση κώδικα προσβάσιμες και αυτές από το δεξί κλικ.

Αν όμως δημιουργεί σύγχυση τότε αναγκαστικά θα πρέπει να φύγει.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: Νίκος Αδαμόπουλος στις 30 Αυγ 2009, 12:40:01 ΠΜ
Παράθεση από: sstergou στις 29 Αυγ 2009, 09:48:22 ΜΜ
Το ξέρω δεν είναι ότι καλύτερο αλλά το οι επιλογές ήταν οι εξής :
1) 1 πρόχειρο χωρίς όμως κουμπιά στην μπάρα και πρόσβαση μόνο από το μενού του δεξιού κλικ.
2) 2 πρόχειρα, το πρώτο προσβάσιμο με δεξί κλικ και τις εντολές copy, paste και το δεύτερο με ύπαρξη κουμπιών στην μπάρα και τις επιλογές Αντιγραφή Κώδικα, Επικόλληση κώδικα προσβάσιμες και αυτές από το δεξί κλικ.

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

ΟΚ. Μην τρελαίνεσαι κιόλας! Διαφήμισέ το ως ειδικό χαρακτηριστικό της εφαρμογής!  ;)
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: meteo_xampos στις 18 Σεπ 2009, 02:11:49 ΜΜ
Συνάδελφοι σας χαιρετώ, και καλή σχολική χρονιά να έχουμε... Λοιπόν, κάτι που παρατήρησα στον online διερμηνευτή...
Αν τρέξω τον παρακάτω αλγόριθμο...

Αλγόριθμος Τάδε
Διάβασε α
α← "α"
Εκτύπωσε α
Τέλος Τάδε

Αν προσπαθήσεω να τρέξω τον παρακάτω αλγόριθμο...

Αλγόριθμος Τάδε
α← 2
α← "α"
Εκτύπωσε α
Τέλος Τάδε

τότε με ειδοποιεί με μήνυμα ότι... "Η μεταβλητή έχει διαφορετικό τύπο από αυτόν με τον οποίο χρησιμοποιείται στην συγκεκριμένη εντολή"...

Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: pgrontas στις 18 Σεπ 2009, 03:32:26 ΜΜ
Αυτό σωστό μου φαίνεται
Στην πρώτη περίπτωση το α από την Διάβασε μπορεί να είναι οποιοδήποτε τύπος. Στην συνέχεια έρχεται η ανάθεση και το συγκεκριμενοποιεί σε χαρακτήρες. Δεν υπάρχει ασυμβατότητα.
Στην δεύτερη περίπτωση από την πρώτη ανάθεση εξάγει ότι το α είναι αριθμητικό και στην συνέχεια μπαίνουν χαρακτήρες οπότε υπάρχει ασυμβατότητα.
Ας πει βέβαια και ο Στάθης ως ειδικός.

Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: Νίκος Αδαμόπουλος στις 18 Σεπ 2009, 04:01:24 ΜΜ
Κι εμένα σωστό μου φαίνεται...
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: meteo_xampos στις 18 Σεπ 2009, 04:38:21 ΜΜ
Όπα άκυρο... Βάλτε μια οποιαδήποτε αριθμητική τιμή στην μεταβλητή α, και θα δείτε ότι εκτυπώνει πάλι "α"...
Δεν ολοκλήρωσα τη σκέψη μου...Όποιος δεν έχει μυαλό έχει δάχτυλα και ξαναστέλνει e-mail... :)
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 18 Σεπ 2009, 04:59:53 ΜΜ
Ο Παναγιώτης εξήγησε σωστά αυτό που συμβαίνει.

Τώρα για την πρώτη περίπτωση, αν η απορία σου είναι "γιατί δεν βγάζει λάθος αφού η μεταβλητή είναι αλφαριθμητική και έχω δώσει αριθμό;" τότε και πάλι υπάρχει εξήγηση: Το 2 είναι και αυτό μια έγκυρη αλφαριθμητική τιμή, δεν νομίζω ότι γίνεται να ξέρουμε αν ο χρήστης είχε την πρόθεση να δώσει αριθμό και όχι αλφαριθμητικό. Οπότε δεν είναι σωστό να εγερθεί λάθος σε αυτή την περίπτωση.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: Wizard στις 04 Οκτ 2009, 10:09:25 ΠΜ
Συγχαρητήρια για την πολύ καλή δουλειά!!!

Θα ήθελα κι εγώ με τη σειρά μου να ξαναπροτείνω το αίτημα για offline υποστήριξη (δηλαδή, άνοιγμα και σώσιμο αρχείων), αλλά και κάτι καινούργιο: να μπορούμε να μεταβάλλουμε το μέγεθος της γραμματοσειράς (και του κώδικα και του τμήματος εντολών/μεταβλητών), γιατί θα ήθελα να κάνω προβολές με προτζέκτορα, αλλά η γραμματοσειρά είναι πολύ μικρή.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 04 Οκτ 2009, 12:28:06 ΜΜ
Ναι, έχεις δίκιο, χρειάζεται ένα παράθυρο ρυθμίσεων όπου θα μπορείς να καθορίσεις το μέγεθος της γραμματοσειράς, την καθυστέρηση εκτέλεσης κτλ. Είναι στα άμεσα σχέδια, θα σε ειδοποιήσω όταν υλοποιηθεί.

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

Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 10 Οκτ 2009, 06:41:30 ΜΜ
Προστέθηκε η δυνατότητα αλλαγής μεγέθους γραμματοσειράς μαζί με κάποιες άλλες ρυθμίσεις.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: Wizard στις 10 Οκτ 2009, 08:09:07 ΜΜ
Παράθεση από: sstergou στις 10 Οκτ 2009, 06:41:30 ΜΜ
Προστέθηκε η δυνατότητα αλλαγής μεγέθους γραμματοσειράς μαζί με κάποιες άλλες ρυθμίσεις.

Ευχαριστούμε!! Πώς θα σου φαινότανε επίσης μια επιλογή να εμφανίζονται κενά μεταξύ των μεταβλητών/σταθερών σε εντολή Εμφάνισε;
Δηλαδή, αν υπάρχουν οι μεταβλητές α,β,γ με τιμές 1,2 και 3 αντίστοιχα, η εντολή Εμφάνισε α,β,γ να μπορεί να εμφανίζει "1 2 3" και όχι μόνο "123"  ;) Γιατί τώρα αναγκάζομαι να λέω στα παιδιά να βάζουν οι ίδιοι κενά για να ξεχωρίζουν τις τιμές.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 11 Οκτ 2009, 08:28:49 ΜΜ
Αυτό είναι κάτι που μου είχε ζητήσει και ο sdoukakis, αλλά δυστυχώς το ξέχασα  ::)   Σε λίγο καιρό θα μπει και αυτή η επιλογή/ρύθμιση.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: Wizard στις 31 Οκτ 2009, 06:55:41 ΜΜ
Πολύ καλή η ρύθμιση για τα κενά μεταξύ τιμών  ;)
Ανακάλυψα ένα bug(?) : αν φτιάξω έναν αλγόριθμο στον Διερμηνευτή χρησιμοποιώντας tabs και τον αντιγράψω σε έναν άλλο editor, ο αλγόριθμος μεταφέρεται αυτούσιος μαζί με τα tabs όπως πρέπει. Αν όμως τον ξανακάνω paste στον Διερμηνευτή, τα tabs δεν αναγνωρίζονται και εμφανίζονται όλες οι εντολές η μία κάτω από την άλλη  :-\
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 03 Νοε 2009, 02:50:17 ΜΜ
Ναι, το είδα και είναι πολύ σπαστικό. Δουλεύω ένα fix αυτές τις μέρες. Ευχαριστώ για την αναφορά.
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: Σπύρος Δουκάκης στις 03 Νοε 2009, 10:33:34 ΜΜ
Παράθεση από: Wizard στις 31 Οκτ 2009, 06:55:41 ΜΜ
Πολύ καλή η ρύθμιση για τα κενά μεταξύ τιμών  ;)

Διαμαρτύρομαι  >:( εντόνως για τη διαφορετική μεταχείριση που απολαμβάνουν οι δεινόσαυροι του forum. Ενημέρωσα για τη ρύθμιση του κενού στις 11/06/2009 τον κο Στέργου και ο κος Στέργου δεν το υλοποίησε...

Είναι ανήκουστο να συμπεριφέρεστε έτσι στους Βετεράνους  :'(. Αν και τον Ιούνιο του 2009 μάλλον ήμουν Νέος...παρότι έχω στην πλάτη μου δέκα χρόνια διδασκαλίας και διόρθωσης του μαθήματος!!

Το ξέρω ότι θα γίνω δεινόσαυρος κάποια μέρα και τότε όλα θα αλλάξουν!

Tέρμα το αστείο! ;)

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

Συνέχισε το έργο σου!
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: P.Tsiotakis στις 03 Νοε 2009, 10:40:24 ΜΜ
Σπύρο, κατέβασε και δες το "ice age 3: dawn of the dinosaurs"
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: Νίκος Αδαμόπουλος στις 04 Νοε 2009, 12:12:01 ΠΜ
Τρέχει κάτι με τους δεινόσαυρους;  >:(
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: potato στις 22 Νοε 2009, 07:34:54 ΜΜ
Είδα ότι δεν τηρείται η προτεραιότητα στους λογικούς τελεστές
π.χ. το

s4 ←  Αληθής  ή  Ψευδής  και  Ψευδής
Εμφάνισε s4

δίνει "Ψευδής"
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: sstergou στις 22 Νοε 2009, 08:03:15 ΜΜ
Στο βιβλίο δεν ορίζεται σαφώς η ιεραρχία των τελεστών ΚΑΙ και Η.
Στο pseudoglossa.gr οι δύο αυτοί τελεστές έχουν την ίδια προτεραιότητα.

Αν σε ενδιαφέρει το θέμα διάβασε τα παρακάτω :

https://alkisg.mysch.gr/steki/index.php?topic=112.0
https://alkisg.mysch.gr/steki/index.php?topic=727.0
https://alkisg.mysch.gr/steki/index.php?topic=916.0
https://alkisg.mysch.gr/steki/index.php?topic=912.msg8645#msg8645

Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: potato στις 22 Νοε 2009, 09:57:53 ΜΜ
Ναι έχετε δίκιο, συγνώμη, είχα μείνει στην `αυθαίρετη` σειρά "ΟΧΙ - ΚΑΙ - Η".

Παράλογο να μην ορίζεται, by the way, είναι τελεστές και θα πρέπει να υπάρχει προτεραιότητα.
Anyway thanks!
Τίτλος: Απ: Διερμηνευτής Ψευδογλώσσας
Αποστολή από: evry στις 30 Μαρ 2010, 11:58:25 ΠΜ
Κάτι μου λέει ότι σύντομα θα ανέβει το pagerank σου ;D