Μέλος : Σύνδεση |Εγγραφή |Ανεβάστε τη γνώση
Αναζήτηση
Λειτουργικός προγραμματισμός [Τροποποίηση ]
Στην επιστήμη των υπολογιστών, ο λειτουργικός προγραμματισμός είναι ένα παράδειγμα προγραμματισμού - ένα στυλ οικοδόμησης της δομής και των στοιχείων των προγραμμάτων ηλεκτρονικών υπολογιστών - που αντιμετωπίζει τον υπολογισμό ως αξιολόγηση των μαθηματικών λειτουργιών και αποφεύγει τα μεταβαλλόμενα δεδομένα και τα μεταβαλλόμενα δεδομένα. Πρόκειται για ένα δηλωτικό παράδειγμα προγραμματισμού, το οποίο σημαίνει ότι ο προγραμματισμός γίνεται με εκφράσεις ή δηλώσεις αντί για δηλώσεις. Σε λειτουργικό κώδικα, η τιμή εξόδου μιας συνάρτησης εξαρτάται μόνο από τα επιχειρήματα που μεταβιβάζονται στη συνάρτηση, οπότε καλούμε μια συνάρτηση f δύο φορές με την ίδια τιμή για ένα όρισμα x παράγει το ίδιο αποτέλεσμα f (x) κάθε φορά. αυτό είναι σε αντίθεση με τις διαδικασίες που εξαρτώνται από μια τοπική ή παγκόσμια κατάσταση, η οποία μπορεί να παράγει διαφορετικά αποτελέσματα σε διαφορετικές χρονικές στιγμές όταν καλείται με τα ίδια επιχειρήματα αλλά με διαφορετική κατάσταση προγράμματος. Η εξάλειψη των παρενεργειών, δηλ. Οι αλλαγές στην κατάσταση που δεν εξαρτώνται από τις εισόδους των λειτουργιών, μπορεί να καταστήσει πολύ πιο εύκολη την κατανόηση και την πρόβλεψη της συμπεριφοράς ενός προγράμματος, το οποίο είναι ένα από τα βασικά κίνητρα για την ανάπτυξη λειτουργικού προγραμματισμού.
Ο λειτουργικός προγραμματισμός έχει τις ρίζες του στο λογαριθμικό λάμδα, ένα τυπικό σύστημα που αναπτύχθηκε στη δεκαετία του 1930 για να διερευνήσει την υπολογιστική ικανότητα, το Entscheidungsproblem, τον ορισμό της λειτουργίας, την εφαρμογή λειτουργίας και την επανάληψη. Πολλές λειτουργικές γλώσσες προγραμματισμού μπορούν να θεωρηθούν ως επεξεργασίες για τον υπολογισμό λ. Ένα άλλο πολύ γνωστό παραδειγματικό προγραμματιστικό παράδειγμα, ο λογικός προγραμματισμός, βασίζεται στις σχέσεις.
Αντίθετα, ο επιτακτικός προγραμματισμός αλλάζει κατάσταση με εντολές στον πηγαίο κώδικα, το πιο απλό παράδειγμα είναι η ανάθεση. Ο επιτακτικός προγραμματισμός έχει λειτουργίες - όχι με τη μαθηματική έννοια - αλλά με την έννοια των υπορουτίνων. Μπορούν να έχουν παρενέργειες που μπορεί να αλλάξουν την τιμή της κατάστασης του προγράμματος. Συνεπώς, οι λειτουργίες χωρίς τιμές επιστροφής έχουν νόημα. Εξαιτίας αυτού, δεν υπάρχει σχετική διαφάνεια, δηλ. Η ίδια έκφραση γλώσσας μπορεί να οδηγήσει σε διαφορετικές τιμές σε διαφορετικούς χρόνους ανάλογα με την κατάσταση του προγράμματος εκτέλεσης.
Οι λειτουργικές γλώσσες προγραμματισμού έχουν τονιστεί σε μεγάλο βαθμό στον ακαδημαϊκό χώρο παρά στην εμπορική ανάπτυξη λογισμικού. Εντούτοις, προεξέχουσες γλώσσες προγραμματισμού που υποστηρίζουν λειτουργικούς προγραμματιστές όπως το Common Lisp, το Scheme, το Clojure, το Wolfram Language (επίσης γνωστό ως Mathematica), το Racket, το Erlang, το OCaml, το Haskell και το F # έχουν χρησιμοποιηθεί σε βιομηχανικές και εμπορικές εφαρμογές από μια μεγάλη ποικιλία οργανώσεις. Η JavaScript, μία από τις πιο διαδεδομένες γλώσσες στον κόσμο, έχει τις ιδιότητες μιας άτυπης λειτουργικής γλώσσας, εκτός από επιτακτικά και αντικειμενοστρεφή παραδείγματα. Ο λειτουργικός προγραμματισμός υποστηρίζεται επίσης σε ορισμένες γλώσσες προγραμματισμού όπως το R (στατιστικά στοιχεία), J, K και Q από την Kx Systems (οικονομική ανάλυση), το XQuery / XSLT (XML) και το Opal. Οι ευρέως διαδεδομένες δηλωτικές γλώσσες όπως το SQL και το Lex / Yacc χρησιμοποιούν συγκεκριμένα στοιχεία λειτουργικού προγραμματισμού, ειδικά για την αποφυγή μεταβλητών τιμών.
Ο προγραμματισμός σε λειτουργικό στυλ μπορεί επίσης να επιτευχθεί σε γλώσσες που δεν έχουν σχεδιαστεί ειδικά για λειτουργικό προγραμματισμό. Για παράδειγμα, η επιτακτική γλώσσα προγραμματισμού Perl αποτέλεσε αντικείμενο βιβλίου που περιγράφει τον τρόπο εφαρμογής των λειτουργικών εννοιών προγραμματισμού. Αυτό ισχύει επίσης και για τη γλώσσα προγραμματισμού PHP. C 11, Java 8 και C # 3.0 όλα τα πρόσθετα κατασκευάσματα για τη διευκόλυνση του λειτουργικού στυλ. Η γλώσσα Julia προσφέρει επίσης λειτουργικές ικανότητες προγραμματισμού. Μια ενδιαφέρουσα περίπτωση είναι αυτή της Scala - είναι συχνά γραμμένη σε λειτουργικό στυλ, αλλά η παρουσία παρενεργειών και η μεταβλητή κατάσταση την τοποθετούν σε μια γκρίζα περιοχή ανάμεσα στις επιτακτικές και τις λειτουργικές γλώσσες.
[Δηλωτικό προγραμματισμό][Απαιτητικός προγραμματισμός][Υπολογιστικό φύλλο][Λογικός προγραμματισμός][Ανάπτυξη τελικού χρήστη][Σχεδιασμός βάσει πολιτικής][Παράλληλη υπολογιστική][Πρόγραμμα υπολογιστή][Υπολογισμός][Υπολογίσιμο][Γλώσσα προγραμματισμού][R: γλώσσα προγραμματισμού]
1.Ιστορία
2.Έννοιες
2.1.Λειτουργίες πρώτης και υψηλότερης τάξης
2.2.Καθαρές λειτουργίες
2.3.Αναδρομή
2.4.Αυστηρή έναντι μη αυστηρής αξιολόγησης
2.5.Συστήματα τύπου
2.6.Αναλογική διαφάνεια
2.7.Λειτουργικός προγραμματισμός σε μη λειτουργικές γλώσσες
2.8.ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
3.Σύγκριση με τον επιτακτικό προγραμματισμό
3.1.Προσομοίωση της κατάστασης
3.2.Θέματα αποτελεσματικότητας
3.3.Στυλ κωδικοποίησης
3.3.1.PHP
3.3.2.Πύθων
3.3.3.Χασκέλ
3.3.4.Perl 6
3.3.5.Ερλάνγκ
3.3.6.Ελιξήριο
3.3.7.Ψελλίζω
3.3.8.Clojure
3.3.9.Kotlin
3.3.10.JavaScript
3.3.11.SequenceL
3.3.12.Tcl
3.3.13.Σκάλα
4.Χρήση στη βιομηχανία
5.Στην εκπαίδευση
[Μεταφόρτωση Περισσότερο Περιεχόμενα ]


Πνευματική ιδιοκτησία @2018 Lxjkh