5 σχόλια »

    • #1
    • Κωστής
    • Σε Fortran και Pascal οι πίνακες ξεκινάν από το 1. Και είναι αρκετά παλιές γλώσσες ;)

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

      Δες το σαν να προσπαθείς να μάθεις μια ξένη γλώσσα. Μαθαίνεις τους κανόνες και τους ακολουθείς. Π.χ. Στα γερμανικά η καρέκλα είναι αρσενικό. Πρέπει να το μάθεις κι ας έρχεται αντίθετα με τα ελληνικά που μιλάς τόσα χρόνια.

      Αυτό που ίσως θα είχε νόημα, είναι ένας “compiler” που θα διόρθωνε τέτοια λάθη ;) (Νομίζω κάτι τέτοιο έκανε ο Clipper στη C αλλά δεν είμαι και σίγουρος).

    • #2
    • Γ. Κεραμίδας
    • Υπάρχουν και οι “high level” γλώσσες, στις οποίες δεν ασχολείται καν ο κόσμος με το είδος ενός “sequence” ή με το αν το πρώτο στοιχείο είναι στη θέση μηδέν, στη θέση 1, ή στη θέση 42:

      (loop for x in '(1 2 3 4)
             do (format t "~A" x)
             finally (return nil))
    • #3
    • Serafeim
    • Νομίζω ότι συγχέεις τις γλώσσες προγραμματισμού με ένα (yet to be invented) σύστημα τεχνητής νοημοσύνης που θα συμπεραίνει τι (δεν) εννοείς όταν περιγράφεις στον υπολογιστή τι θέλεις να κάνει. (Το οποίο μπορεί να ποικίλει αφάνταστα ανάλογα με το τι γλώσσα μιλάς, πού ζεις, κτλ.) Dream on :)

      Για μένα το βασικό κριτήριο για μια γλώσσα προγραμματισμού είναι πόσες γραμμές κώδικα χρειάζεται να γράψω (+test, read, print, debug, etc) για ένα πρόβλημα. Μέχρι στιγμής η καλύτερη μου είναι high level γλώσσες (python) και γλώσσες που μπορούν να επεκταθούν ώστε να είναι κοντύτερα στις έννοιες του προβλήματος (common lisp).

    • #4
    • Κώστας
    • Φίλε Δημήτρη,

      Ενώ συμμερίζομαι τους αρχικούς προβληματισμούς σου, όταν γράφεις:

      “Πόσο κουτό μου φαίνεται οι σύγχρονες γλώσσες προγραμματισμού να αναφέρονται στο πρώτο κελί ενός πίνακα με τον δείκτη 0 αντί με το 1. Το πρώτο στοιχείο είναι το 0, το νιοστό στοιχείο είναι το ν-1.”

      Νομίζω ότι αν όντως γράφεις προγράμματα πάνω από 10 χρόνια δεν θα έπρεπε να το λές αυτό για τους εξής λόγους:
      1) Ο τρόπος προσπέλασης της μνήμης όπως ανέφερες μπορεί να είναι παλιός αλλά είναι αυτός που χρησιμοποιείται μέχρι σήμερα (και δεν βλέπω κανένα λόγο να αλλάζει στο ορατό μέλλον…). Οπότε καλώς οι σύγχρονες γλώσσες προγραμματισμού ακολουθούν αυτόν τον τρόπο για να κάνουν indexing
      2) Οπως προανέφερε και ο Γ. Κεραμίδας πολλές σύγχρονες γλώσσες κάνουν iteration ανεξαρτήτως index και το κάνουν όχι μόνο για λόγους ευκολίας στον προγραμματισμό αλλά κυριώς για λόγους αξιοπιστίας και robustness του κώδικα
      2) Το indexing εξακολουθεί να γίνεται έται και για έναν ακόμα λόγο, βοηθά στο slicing (π.χ a[1:3]) αλλά και στην υπάρξη του negative indexing που πάλι υποστηρίζουν κάποιες γλώσσες (που χωρίς το 0 δεν θα είχε νόημα π.χ. a[1:-1])
      3) Και ένα προσωπικό σχόλιο έγω μάλλον περισσότερο μπερδεύομαι με “γλώσσες” που δεν υποστηρίζουν αυτόν τον τρόπο indexing (π.χ R)

    • #5
    • Δημήτρης Γλέζος
    • Το θέμα του indexing των πινάκων ήταν απλά ένα παράδειγμα. Μάλιστα, το ότι οι σύγχρονες γλώσσες δίνουν νέας μορφής loops, δείχνει τουλάχιστον ότι μεταφερόμαστε από σύμβολα (for ($x=0; $x<10; $x++)) σε φράσεις πιο κοντά στην ανθρώπινη γλώσσα και λογική (for x in range(1,10)).

      Η συνέντευξη που κάνω link στην υποσημείωση του άρθρου τα λέει πολύ καλύτερα από μένα. :)


Comment!




Feel free to express yourselves!

Please read the comment policy before commenting.

Your email address will never be published. It is only asked to send you a personal email if needed. I hate spam too.

XHTML tags allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped=""> . For block quotes use <blockquote>.

 


Reduce textarea size Increase textarea size


 
π
Last post: March 4 2011, 20:12 UTC