![Προγραμματισμός](/f/fb74f4e7f23d105e31fa77aa485a58b6.jpg)
Η συγγραφή κώδικα σε επίπεδο μηχανής είναι μια δύσκολη διαδικασία.
Πίστωση εικόνας: Jupiterimages/Photos.com/Getty Images
Ο σκοπός κάθε γλώσσας προγραμματισμού είναι να μετατρέψει έναν υπολογιστή από ένα ακριβό ηλεκτρονικό βάρος χαρτιού σε μια χρήσιμη συσκευή επεξεργασίας και αποθήκευσης δεδομένων. Η επιλογή μιας γλώσσας για την ολοκλήρωση αυτής της εργασίας είναι μια αντιστάθμιση μεταξύ αποτελεσματικότητας και ευκολίας χρήσης. Η γλώσσα μηχανής αντιπροσωπεύει τα ακραία άκρα του φάσματος και για τους δύο αυτούς παράγοντες.
Γλώσσα μηχανής
Η γλώσσα μηχανής παράγει το μοναδικό σύνολο εντολών που καταλαβαίνει ένας υπολογιστής χωρίς μεταφραστή. Οι υπολογιστές καταφέρνουν να πραγματοποιήσουν αναπαραγωγή ήχου και εικόνας, επεξεργασία και αποθήκευση δεδομένων, Διαδίκτυο επικοινωνία και όλες τις άλλες εξειδικευμένες εργασίες ανταποκρινόμενοι σε ένα σύνολο εντολών που αναγνωρίζει μόνο μία και μηδενικά. Η σύνταξη εκατοντάδων γραμμών κώδικα που αποτελούνται από ένα και μηδενικό είναι μια απαιτητική και κουραστική διαδικασία που εξηγεί τη δημοτικότητα γλωσσών υψηλότερου επιπέδου όπως η C και η Java.
Το βίντεο της ημέρας
Πρώιμα πλεονεκτήματα
Ο πρώτος προσωπικός υπολογιστής της IBM ήταν εξοπλισμένος με 512 kilobyte μνήμης τυχαίας πρόσβασης και μονάδα δισκέτας 360 kilobyte. Μετά τη φόρτωση του λειτουργικού συστήματος στη μνήμη από τη μονάδα δισκέτας, τα προγράμματα φορτώθηκαν στην υπόλοιπη μονάδα χώρος μνήμης αφήνοντας μια πολύ μικρή περιοχή μνήμης RAM, συχνά λιγότερο από 100 kilobyte, για να επεξεργαστεί το ενεργό πρόγραμμα δεδομένα. Κατά τη διάρκεια αυτής της περιόδου, το κύριο μέλημα ενός προγραμματιστή ήταν ο λιτός, αποτελεσματικός κώδικας. Τα επιλεγμένα εργαλεία προγραμματισμού σε αυτούς τους πρώιμους υπολογιστές ήταν συνήθως η γλώσσα μηχανής, η οποία μπορεί να είναι σημαντικά μικρότερη από μια έκδοση γραμμένη σε BASIC ή C. Ήταν επίσης κάπως πιο εύκολο να χρησιμοποιήσω τη γλώσσα συναρμολόγησης.
Εξάρτηση πλατφόρμας
Η γλώσσα μηχανής απευθύνεται απευθείας στο υλικό του υπολογιστή, δίνοντας στον προγραμματιστή πλήρη έλεγχο σε κάθε πτυχή της εκτέλεσης ενός προγράμματος. Το μειονέκτημα αυτής της προσέγγισης είναι ότι ο προγραμματιστής πρέπει να γνωρίζει την αρχιτεκτονική κάθε chipset πριν μπορέσει να γράψει αποτελεσματικό κώδικα. Όταν αλλάζει ένα στοιχείο όπως μια κάρτα γραφικών ή ένας ελεγκτής μονάδας δίσκου, για παράδειγμα, ο κωδικός γλώσσας του μηχανήματος πρέπει να ενημερωθεί για την αναγνώριση και τη διεύθυνση της νέας συσκευής.
Γλώσσες υψηλού επιπέδου
Τα πλεονεκτήματα της ταχύτητας και του μικρού αποτυπώματος μνήμης της γλώσσας μηχανής αντισταθμίζονται όλο και περισσότερο από τη δυσκολία εγγραφής εντολών σε επίπεδο chip σε δυαδικό κώδικα. Τα Gigabyte RAM και τα terabyte του διαθέσιμου αποθηκευτικού χώρου έχουν εξαλείψει την απαίτηση για λιτό, αποτελεσματικό κώδικα στους σύγχρονους προσωπικούς υπολογιστές. Οι πρόσθετες απαιτήσεις μνήμης και αποθήκευσης που δημιουργούνται από προγράμματα γραμμένα σε γλώσσες υψηλότερου επιπέδου όπως η C και η Java δεν αποτελούν πλέον παράγοντα κατά την επιλογή μιας πλατφόρμας ανάπτυξης. Η ευκολία χρήσης και οι μελλοντικές ανησυχίες για τη συντήρηση του προγράμματος αντικαθιστούν την ταχύτητα και την αποτελεσματικότητα στα περισσότερα σύγχρονα έργα λογισμικού.