See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
M4 (γλώσσα προγραμματισμού) - Βικιπαίδεια

M4 (γλώσσα προγραμματισμού)

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

Ο σωστός τίτλος αυτού του άρθρου είναι m4. Το αρχικό γράμμα έγινε κεφαλαίο λόγω τεχνικών περιορισμών.


Η m4 είναι μια γλώσσα και πρόγραμμα επεξεργασίας μακροεντολών (ή ένας μακροεπεξεργαστής) που σχεδιάστηκε από τους Brian Kernighan και Dennis Ritchie.

Πίνακας περιεχομένων

[Επεξεργασία] Χρήση

Ένας μακροεπεξεργαστής είναι ένα εργαλεία αντικατάστασης κειμένου. Κυρίως χρησιμοποιείται για την επεναχρησιμοποιήση φορμών κειμένου σε γλώσσες σε εφαρμογές προγραμματισμού αλλά και σε εφαρμογές επεξεργασίας κειμένου.


[Επεξεργασία] Ιστορία

Οι μακροεπεξεργαστές ήταν στο προσκήνιο όταν ο προγραμματισμός γινότανε σε συμβολική γλώσσα. Εκείνη την περίοδο οι προγραμματιστές παρατήρησαν ότι τα προγράμματά τους περιείχαν κομμάτια επαναλαμβανόμενου κώδικα. Απλοί τρόποι για να επεναχρησιμοποιείται ένα επαλαμβανόμενο κομμάτι επινοήθηκαν. Οι προγραμματιστές σύντομα ανακάλυψαν ότι ήταν ευκολότερο όχι μόνο να επεναχρησιμοποιούν ολόκληρα κομμάτια κειμένου , αλλά ανά περίσταση να αντικαθιστούν κάποιες παραμέτρους με διαφορετικές τιμές. Αυτές οι απαιτήσεις καθόρισαν και το εύρος της λειτουργικότητας των μακροεπεξεργαστών. Η m4 αναπτύχθηκε το 1977. Ήταν η αρχική μάκρομηχανη που χρησιμοποιήθηκε για να υλοποιηθεί η Rational Fortran, και περιλαμβάνεται στις διάφορες παραλλαγές του Unix. Μια από τις ποιό διαδεδομένες του χρήσεις σήμερα είναι σαν μέρος του εγχειρήματος GNU του πακέτου autoconf.

[Επεξεργασία] Χαρακτηριστικά

Η m4 παρέχει τις εξείς δυνατότητες:

  • αντικατάσταση κειμένου
  • αντικατάσταση παραμέτρων
  • συμπερίληψη αρχείων
  • χειρισμός αλφαριθμητικών
  • αποτίμηση υπό συνθήκη
  • αριθμητικές εκφράσεις
  • διασύδεση συστήματος
  • διαγνωστικά προγραμματιστή

Σε αντίθεση με άλλους μακροεπεξεργαστές ο Μ4 είναι Turing-πλήρης καθώς και μια πρακτική γλώσσα προγραμματισμού.

[Επεξεργασία] Παράδειγμα

[Επεξεργασία] Υλοποιήσεις ελεύθερου λογισμικού

Υπάρχει μια GNU έκδοση του m4. Τα λειτουργικά συστήματα FreeBSD, NetBSD, και OpenBSD παρέχουν επίσης δικές τους υλοποιήσεις του m4.

[Επεξεργασία] Αναφορές

  • Brian W. Kernighan and Dennis M. Ritchie. The M4 macro processor. Technical report, Bell Laboratories, Murray Hill, New Jersey, USA, 1977. pdf
  • Kenneth J. Turner. Exploiting the m4 macro language. Technical Report CSM-126, Department of Computing Science and Mathematics, University of Stirling, Scotland, September 1994. pdf
  • René Seindal. GNU M4 Manual. GNU Press. 2004. [1]

[Επεξεργασία] Εξωτερικοί σύνδεσμοι


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -