![]() |
Το λήμμα παραθέτει τις πηγές του αόριστα, χωρίς παραπομπές. |
Η m4 είναι μια γλώσσα και πρόγραμμα επεξεργασίας μακροεντολών (ή ένας μακροεπεξεργαστής) που σχεδιάστηκε από τους Brian Kernighan και Dennis Ritchie.
Ένας μακροεπεξεργαστής είναι ένα εργαλεία αντικατάστασης κειμένου. Κυρίως χρησιμοποιείται για την επεναχρησιμοποιήση φορμών κειμένου σε γλώσσες σε εφαρμογές προγραμματισμού αλλά και σε εφαρμογές επεξεργασίας κειμένου.
Οι μακροεπεξεργαστές ήταν στο προσκήνιο όταν ο προγραμματισμός γινόταν σε συμβολική γλώσσα. Εκείνη την περίοδο οι προγραμματιστές παρατήρησαν ότι τα προγράμματά τους περιείχαν κομμάτια επαναλαμβανόμενου κώδικα. Απλοί τρόποι για να επαναχρησιμοποιείται ένα επαναλαμβανόμενο κομμάτι επινοήθηκαν. Οι προγραμματιστές σύντομα ανακάλυψαν ότι ήταν ευκολότερο όχι μόνο να επαναχρησιμοποιούν ολόκληρα κομμάτια κειμένου, αλλά ανά περίσταση να αντικαθιστούν κάποιες παραμέτρους με διαφορετικές τιμές. Αυτές οι απαιτήσεις καθόρισαν και το εύρος της λειτουργικότητας των μακροεπεξεργαστών. Η m4 αναπτύχθηκε το 1977. Ήταν η αρχική μακρομηχανή που χρησιμοποιήθηκε για να υλοποιηθεί η Rational Fortran, και περιλαμβάνεται στις διάφορες παραλλαγές του Unix. Μια από τις πιο διαδεδομένες του χρήσεις σήμερα είναι σαν μέρος του εγχειρήματος GNU του πακέτου autoconf.
Η m4 παρέχει τις εξής δυνατότητες:
Σε αντίθεση με άλλους μακροεπεξεργαστές ο Μ4 είναι Turing-πλήρης καθώς και μια πρακτική γλώσσα προγραμματισμού.
Υπάρχει μια GNU έκδοση του m4. Τα λειτουργικά συστήματα FreeBSD, NetBSD, και OpenBSD παρέχουν επίσης δικές τους υλοποιήσεις του m4.