<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D8%A5%D9%85_4_%28%D9%85%D8%B9%D8%A7%D9%84%D8%AC%29</id>
	<title>إم 4 (معالج) - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D8%A5%D9%85_4_%28%D9%85%D8%B9%D8%A7%D9%84%D8%AC%29"/>
	<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D8%A5%D9%85_4_(%D9%85%D8%B9%D8%A7%D9%84%D8%AC)&amp;action=history"/>
	<updated>2026-06-14T01:41:42Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://3rabica.org/index.php?title=%D8%A5%D9%85_4_(%D9%85%D8%B9%D8%A7%D9%84%D8%AC)&amp;diff=1514472&amp;oldid=prev</id>
		<title>عبد العزيز: بوت: إصلاح التحويلات</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D8%A5%D9%85_4_(%D9%85%D8%B9%D8%A7%D9%84%D8%AC)&amp;diff=1514472&amp;oldid=prev"/>
		<updated>2022-12-11T07:41:14Z</updated>

		<summary type="html">&lt;p&gt;بوت: إصلاح التحويلات&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{بطاقة لغة برمجة&lt;br /&gt;
|اسم                  =  أم4 (m4)&lt;br /&gt;
|شعار                 = &lt;br /&gt;
|نموذج                 =  macro preprocessor&lt;br /&gt;
|تاريخ_ظهور           = [[1977]]&lt;br /&gt;
|صممها                =  [[براين كيرنيغان|بريان كيرنيغان]], [[دينيس ريتشي]]. &lt;br /&gt;
|المطور                = [[جنو إم4]]&lt;br /&gt;
|آخر_إصدار            = &lt;br /&gt;
|رقم_آخر_إصدار        =&lt;br /&gt;
|رقم_آخر_اختبار       = &lt;br /&gt;
|تاريخ_آخر_إصدار      =&lt;br /&gt;
|متأثرة_بـ            = &lt;br /&gt;
|أثرت                 =&lt;br /&gt;
|نظام_التشغيل         = &lt;br /&gt;
|رخصة                 =&lt;br /&gt;
|موقع                 =  &lt;br /&gt;
|امتداد_الملف          =&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
إم4 هو معالج الماكرو ذو الأغرض العامة من تصميم [[براين كيرنيغان|بريان كيرنيغان]] و[[دينيس ريتشي]].&amp;lt;ref&amp;gt;{{استشهاد ويب| مسار = http://fileformats.archiveteam.org/wiki/M4 | عنوان = معلومات عن إم 4 (معالج) على موقع fileformats.archiveteam.org | ناشر = fileformats.archiveteam.org| مسار أرشيف = https://web.archive.org/web/20200201142739/http://fileformats.archiveteam.org/wiki/M4 | تاريخ أرشيف = 1 فبراير 2020 }}&amp;lt;/ref&amp;gt; إم4 هو امتداد لمعالج ماكرو في وقت سابق إم3، الذي كتبه ريتشي الكمبيوتر الصغيرة AP-3.&lt;br /&gt;
&lt;br /&gt;
== الاستخدام ==&lt;br /&gt;
&lt;br /&gt;
جميع إصدارات [[يونكس]] جعلت معالج الماكرو إم4 متاح، وبوسيكسPOSIX جعله موحداً. شعبية جنيو أوتوكونف GNU autoconf (الذي يتطلب جنو إم4 لإنشاء تركيب النصوص) قد شجعت العديد على تثبيته، حتى لو لم يكن هؤلاء الناس أنفسهم سيبرمجوا بـ إم4.&lt;br /&gt;
&lt;br /&gt;
معالج الماكرو (أو المعالج) ويعمل كأداة تبديل النص. المستخدم النهائي يستخدمه في كثير من الأحيان إلى إعادة استخدام قوالب النص، تماما في برمجة التطبيقات، ولكن أيضا في تحرير النص ومعالجة النص والتطبيقات.&lt;br /&gt;
&lt;br /&gt;
== التاريخ ==&lt;br /&gt;
 &lt;br /&gt;
أصبحت معالجات ماكرو شعبية عندما استخدم [[مبرمج|المبرمجين]] [[لغة التجميع]]. في تلك الأيام الأولى من البرمجة، لاحظت المبرمجين ان معظم برامجهم يتألف من نصوص متكررة، واخترعوا وسائل بسيطة لإعادة استخدام هذا النص. وسرعان ما اكتشفت المبرمجين المزايا ليس فقط في إعادة استخدام كتل كاملة من النص، ولكن أيضا في استبدال قيم مختلفة لمحيطات (وسائط) مماثلة. وهذا يعرف نطاق استخدام معالجات الماكرو.&lt;br /&gt;
كيرنيغان وريتشي قدما إم4 في عام 1977، واسندوه على أفكار كريستوفر ستراتشي. الخصائص المميزة لهذا النمط من معالجة الماكرو تشمل ما يلي :&lt;br /&gt;
* شكل حر للقاعد اللغوية (وليس على أساس خط مثل معالج الماكرو النموذجي المصمم لمعالجة لغة التجميع)&lt;br /&gt;
* الدرجة العالية من إعادة التوسع (وسائط الماكرو تتوسع مرتين: مرة خلال المسح الضوئي ومرة في وقت الاستكمال أو الاستيفاء)&lt;br /&gt;
تطبيق راشونال فورتران استخدم إم4 كمحرك الماكرو الخاص به من البداية، ومعظم متغيرات [[يونكس]] بحروا معه.&lt;br /&gt;
&lt;br /&gt;
اعتبارا من عام 2009 العديد من التطبيقات استمرت في استخدام إم4 كجزء من مشروعautoconf GNU [[جنو]] أوتوكونف. وأيضا يظهر في عملية التكوين لـ sendإمail (نطاق واسع من عامل نقل البريد) ولإنشاء بصمات في حزمة أدوات الجي أي دي أيه gEDA toolsuite.&lt;br /&gt;
&lt;br /&gt;
إم4 له استخدامات عديدة في [[توليد الكود (توضيح)|توليد كود]] code generation، ولكن (كما هو الحال مع أي معالج ماكرو) المشاكل يصعب تصحيحها.&lt;br /&gt;
&lt;br /&gt;
== مميزات ==&lt;br /&gt;
&lt;br /&gt;
إم4 يقدم هذه التسهيلات :&lt;br /&gt;
* نموذج حر لقواعد اللغة، بدلا من الاستناد على الخط كأساس لقواعد لغة البرمجة&lt;br /&gt;
* درجة عالية من توسع الماكرو (وسائط الماكرو تتوسع مرتين: مرة خلال المسح الضوئي ومرة في وقت الاستكمال أو الاستيفاء)&lt;br /&gt;
* تبديل النص&lt;br /&gt;
* الاستعاضة عن الوسيط&lt;br /&gt;
* إدراج ملف&lt;br /&gt;
* التلاعب في سلسلة النص&lt;br /&gt;
* تقييم شرطي&lt;br /&gt;
* التعبيرات الحسابية&lt;br /&gt;
* واجهة النظام&lt;br /&gt;
* تشخيص المبرمج&lt;br /&gt;
* استقلال لغة البرمجة&lt;br /&gt;
* لغة الإنسان المستقلة&lt;br /&gt;
* يوفر قدرات لغة البرمجة&lt;br /&gt;
وخلافا لمعظم معالجات الماكرو في وقت سابق، إم4 لا يستهدف أي جهاز كمبيوتر معين أو لغة الإنسان ؛ تاريخيا، ومع ذلك، طور أصلاً لدعم لغة راتفور Ratfor من فورتران Fortran. وعلى عكس من بعض معالجات الماكرو الأخرى، إم4 هو [[آلة تورنغ]] كاملة تورنغ كاملة Turing-coإمplete، وكذلك لغة البرمجة العملية.&lt;br /&gt;
&lt;br /&gt;
== مثال ==&lt;br /&gt;
&lt;br /&gt;
القطعة التالية تعطي مثال بسيط يمكن أن يشكل جزءا من مكتبة [[توليد الكود (توضيح)|لتوليد الكود]] الأتش تي أم أل HTإمL code. أنها تحدد تعليق الماركو إلى أقسام عدد تلقائيا :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
divert(-1)&lt;br /&gt;
This `divert&amp;#039; discards this text. Note that I had to quote the `divert&amp;#039;&lt;br /&gt;
in the comment so it wouldn&amp;#039;t get undiverted.&lt;br /&gt;
&lt;br /&gt;
# In a true comment, I&amp;#039;m free to use words such as divert and other builtin&lt;br /&gt;
# m4 macros&amp;#039; names without consequence.&lt;br /&gt;
&lt;br /&gt;
# This starts the count at ONE as the incr is a preincrement.&lt;br /&gt;
define(`H2_COUNT&amp;#039;, 0)&lt;br /&gt;
&lt;br /&gt;
# The H2_COUNT macro is redefined every time the H2 macro is used.&lt;br /&gt;
define(`H2&amp;#039;,&lt;br /&gt;
	`define(`H2_COUNT&amp;#039;, incr(H2_COUNT))&amp;lt;h2&amp;gt;H2_COUNT. $1&amp;lt;/h2&amp;gt;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
divert(0)dnl Diversion to 0 means back to normal. dnl macro removes this line.&lt;br /&gt;
H2(First Section)&lt;br /&gt;
H2(Second Section)&lt;br /&gt;
H2(Conclusion)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
عند معالجة هذا الرمز مع m4 يجب أن يولد النص التالي :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;1. First Section&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;2. Second Section&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;3. Conclusion&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ملاحظة كثرة استخدام dnl، التي تحذف حتى بما فيه السطرالجديد newline، وبالتالي تمنع ظهور العديد من الأسطر الفارغة التي تظهر في المخرجات.&lt;br /&gt;
&lt;br /&gt;
== تطبيقات البرمجيات الحرة ==&lt;br /&gt;
&lt;br /&gt;
وهناك نسخة من جنو إم4 GNU version of m4 موجودة. [3] [4] FreeBSD, NetBSD, and OpenBSD أيضا توفير تطبيقات مستقلة للغة إم4. وعلاوة على ذلك، وأدوات تطوير مشروع هايرلووم Heirloom Project يتضمن نسخة مجانية من اللغة إم4، المستمدة من أوبن سولاريسOpenSolaris..&lt;br /&gt;
&lt;br /&gt;
== انظر أيضا ==&lt;br /&gt;
* [[قوالب الويب]]&lt;br /&gt;
&lt;br /&gt;
== المراجع ==&lt;br /&gt;
{{مراجع}}&lt;br /&gt;
&lt;br /&gt;
== روابط خارجية ==&lt;br /&gt;
* [http://www.gnu.org/software/m4/m4.html GNU M4 website]&lt;br /&gt;
* [http://mbreen.com/m4.html M4 tutorial]&lt;br /&gt;
* [http://www.linux-mag.com/id/163 Macro Magic: m4, Part One] and [http://www.linux-mag.com/id/1903 Part Two] (requires registration)&lt;br /&gt;
&lt;br /&gt;
{{شريط بوابات|تقنية المعلومات|علم الحاسوب}}&lt;br /&gt;
&lt;br /&gt;
[[تصنيف:أدوات برمجة يونكس]]&lt;br /&gt;
[[تصنيف:خدمات مواصفات يونكس المنفردة]]&lt;br /&gt;
[[تصنيف:لغات برمجة ماكرو]]&lt;/div&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
</feed>