Το πλην ως μοναδιαίος τελεστής

Ξεκίνησε από perge, 04 Δεκ 2008, 10:13:58 ΠΜ

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

ntzios kostas

#15
ΠαράθεσηΈχοντας εξηγήσει στην τάξη το τυπικό της ΓΛΩΣΣΑΣ, όπως αναδεικνύεται, εδώ και κει στα τρία βιβλία, απ' όπου δεν έχω βρει αναφορά για μοναδιαίο τελεστή, ναι κόβω. Αν δεν μπορείς να καταλάβεις γιατί, λυπάμαι.
Επαναλαμβάνω πήγαινε και δες σελίδα 85 τετραδίου μαθητή ερώτηση 13, για να μην την πατήσει κανένα παιδάκι.

Και κάτι άλλο, αν θέλουμε μία μεταβλητή k να την υπσώσουμε εις το -x, τότε λες στους μαθητές σου να γράψουν  W<-k^((-1)*x) ή 
W<-k^(-x);
Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

perge

Να ξαναπώ άλλη μία φορά· άλλο τα μαθηματικά, άλλο η ψευδογλώσσα ενός αλγόριθμου, κι άλλο μια γλώσσα προγραμματισμού έστω και η ΓΛΩΣΣΑ.

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

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

alkisg

Παράθεση από: perge στις 07 Δεκ 2008, 02:31:40 ΠΜ
Αλλά, μάλλον δεν έχει νόημα, καθώς, απ' ό,τι φαίνεται, κανείς εδώ μέσα δεν έχει διδαχθεί ούτε compilers, ούτε τυπικές γλώσσες (πιθανότατα ούτε και οι συγγραφείς του βιβλίου), ούτε ο,τιδήποτε έχει να κάνει με θεμελίωση της πληροφορικής... Συνεχίστε, λοιπόν, να ορίζετε τη ΓΛΩΣΣΑ στο περίπου, και σε γενικές αρχές...

...τώρα μάλλον ο γυαλός είναι στραβός.

Δε νομίζω ότι χρειάζεται να σου παραθέσουμε βιογραφικά, αλλά αρκετοί εδώ μέσα έχουμε χρησιμοποιήσει parsers και lexers για να δημιουργήσουμε κάποια γλώσσα προγραμματισμού. Όχι ένας και δύο, αρκετοί.
Τα λες ακριβώς αντίθετα από ότι είναι και ειρωνικά κατηγορείς τους υπόλοιπους ότι δεν είναι διαβασμένοι και τα λένε ανάποδα. Και χωρίς καν να παραθέτεις επιχειρήματα.

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

Μιας και έχεις διδαχτεί compilers και τυπικές γλώσσες κτλ κι εμείς οι υπόλοιποι όχι, μπορείς να μου παραθέσεις το συντακτικό κάποιας γλώσσας που να τα ορίζει όπως τα λες εσύ;

Ας κάνω εγώ την αρχή παραθέτοντας τις αντίστοιχες γραμμές από μια γλώσσα που τα ορίζει όπως τα λέω εγώ. Τη λένε C και παραθέτω από τον κατά ISO/IEC 9899:TC2 ορισμό της.

Παράθεση από: ISO/IEC 9899:TC2, σελίδα 78
  6.5.3 Unary operators
  Syntax
1        unary-expression:
                postfix-expression
                ++ unary-expression
                -- unary-expression
                unary-operator cast-expression
                sizeof unary-expression
                sizeof ( type-name )
         unary-operator: one of
                & * + - ~ !

Την τελευταία γραμμή κοίτα, εκεί ορίζεται το (-).

Πάμε και στη σελίδα 404 να βεβαιωθούμε ότι ο λεκτικός αναλυτής δεν ορίζει θετικούς/αρνητικούς αριθμούς:

Παράθεση από: ISO/IEC 9899:TC2, σελίδα 404
(6.4.2.1) digit: one of
               0 1 2 3 4 5 6 7 8 9

(6.4.4) constant:
               integer-constant
               floating-constant
               enumeration-constant
               character-constant
(6.4.4.1) integer-constant:
               decimal-constant integer-suffixopt
               octal-constant integer-suffixopt
               hexadecimal-constant integer-suffixopt
(6.4.4.1) decimal-constant:
               nonzero-digit
               decimal-constant digit
(6.4.4.1) octal-constant:
               0
               octal-constant octal-digit
(6.4.4.1) hexadecimal-constant:
               hexadecimal-prefix hexadecimal-digit
               hexadecimal-constant hexadecimal-digit
(6.4.4.1) hexadecimal-prefix: one of
               0x 0X
(6.4.4.1) nonzero-digit: one of
               0 1 2 3 4 5 6 7 8 9
(6.4.4.1) octal-digit: one of
               0 1 2 3 4 5 6 7 8 9
(6.4.4.1) hexadecimal-digit: one of
               0 1 2 3 4 5 6 7 8 9
               a b c d e f
               A B C D E F
(6.4.4.1) integer-suffix:
               unsigned-suffix long-suffixopt
               unsigned-suffix long-long-suffix
               long-suffix unsigned-suffixopt
               long-long-suffix unsigned-suffixopt

Πού ακριβώς είδες αυτό που ισχυρίζεσαι, ότι το (-) είναι μέρος των αρνητικών σταθερών;

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

evry


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

Ας επικεντρωθούμε λοιπόν στο επαναληπτικό διαγώνισμα 1-2 και ας αφήσουμε τον τελεστή - στην ησυχία του. ;)

ΥΓ. Έχω την εντύπωση ότι για να επικαλείται κάποιος τα θεμέλια της πληροφορικής θα πρέπει να έχει ασχοληθεί με την έννοια της υπολογισιμότητας, και το μάθημα αυτό στην καθάρα αυστηρή μορφή του (μαζί με απόδειξη του Godel κλπ) δεν έχω δει να διδάσκεται σε κανένα τμήμα πληροφορικής.

Παράθεση από: perge στις 07 Δεκ 2008, 02:31:40 ΠΜ
Αλλά, μάλλον δεν έχει νόημα, καθώς, απ' ό,τι φαίνεται, κανείς εδώ μέσα δεν έχει διδαχθεί ούτε compilers, ούτε τυπικές γλώσσες (πιθανότατα ούτε και οι συγγραφείς του βιβλίου), ούτε ο,τιδήποτε έχει να κάνει με θεμελίωση της πληροφορικής
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

perge

#19
Παράθεση από: alkisg στις 07 Δεκ 2008, 04:50:32 ΠΜ...Πού ακριβώς είδες αυτό που ισχυρίζεσαι, ότι το (-) είναι μέρος των αρνητικών σταθερών;

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

Πάσο γι΄αυτό που μου δείχνεις στη C και τις αριθμητικές σταθερές. Το οποίο, βέβαια, επιβεβαιώνει την ανάγκη του μοναδιαίου τελεστή και για τις σταθερές, σε επίπεδο parsing /λεκτικής ανάλυσης, και όχι σε επίπεδο semantics. Αλλιώς, ο επόμενος ισχυρισμός θα είναι ότι αρνητικές τιμές δεν αποθηκεύονται εντέλει από ένα πρόγραμμα, παρά υπολογίζονται "on the fly".

Γι αυτόν, λοιπόν, τον μοναδιαίο τελεστή, υπάρχει απάντηση σε αυτό;
Παράθεση από: perge στις 06 Δεκ 2008, 01:50:12 ΠΜΣτα μαθηματικά και σε ψευδογλώσσα δεν έχει καμία διαφορά. Στη ΓΛΩΣΣΑ και στην εκάστοτε γλώσσα προγραμματισμού μπορεί το -χ να μην περνάει από τον συντακτικό έλεγχο του compiler ως έκφραση, αν το - δεν ανήκει στο τυπικό της ως μοναδιαίος τελεστής.
Αν δεν έχει οριστεί ο μοναδιαίος τελεστής -, ορίζεται το -χ;

Όσο για τα μαθηματικά:
από το χ=1, στο -χ=-1 ή από το χ=(2-1) στο -χ=-(2-1), πάντα πηγαίναμε βάσει της ιδιότητας α=β <=> αγ=βγ, για γ=-1.

Δε ζήτησα εννοείται βιογραφικά, ούτε πρόκαμα να βάλω κανένα "Δρ", άλλωστε. Φάνηκε, ωστόσο, αν μπορούμε να μιλάμε την ίδια γλώσσα ;)

Καρκαμάνης Γεώργιος

Αγαπητέ perge νομίζουμε ότι πνιγόμαστε σε μια κουταλιά νερό.
Γίνεται τόση συζήτηση για το εάν κάποιος μαθητής μπορεί να γράψει το -χ ή το (-1)*χ.
Όπως έχω ξαναπεί σε άλλη συζήτηση εάν κάποιος δει τις επίσημες λύσεις των θεμάτων που βγάζει η ΚΕΕ τότε σίγουρα κάποιος θα εντοπίσει αρκετά τέτοια μικρά λαθάκια. Άρα, αξίζει να ασχολούμαστε τόσο εκτενέστερα για το εάν μπορεί να χρησιμοποιηθεί το -χ;

Νομίζω ότι την αυστηρότητα της βαθμολόγησης της δείχνεις σε λάθος παράδειγμα.