hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
بوست سكريبت الاستخدام كنظام تشغيل
وعندما غادر (ستيف جوبز) شركة Apple ليعمل في شركة NeXT، طرح Adobe على أساس فكرة استخدام الـ PostScript كنظام عرض لحواسيبه في الشركة. وكانت النتيجة هي برنامج Display PostScript أو DPS. وقد أضاف DPS عددًا من الوظائف الأساسية لتحسين الأداء من خلال تغيير الكثير من كّشافات السلاسل الحرفية string lookups إلى أعداد صحيحة سعة 23 بت، وإضافة الدعم للمخرجات المباشرة مع كل أمر، وإضافة وظائف للسماح بواجهة المستخدم الرسومية بتفتيش مخطط البيانات. بالإضافة إلى ذلك، فقد تمت إضافة مجموعة من «وسائل الربط» bindings لإتاحة إمكانية الاستدعاء المباشر لكود الـ PostScript من لغة البرمجة C. وقد استخدمت شركة نكست هذه الوسائل في نظامها NeXTStep لتوفير نظام رسومي موجه بالكائنات object-oriented. ورغم أن الـ DPS قد صُمم بالتعاون مع NeXT، إلا أن Adobe باعته تجاريًا وكان أحد المكونات الشائعة في معظم الأجهزة العاملة بنظام الـ Unix في التسعينات.
وقد أخذت شركة Sun Microsystems منحى آخر، حيث أنشأت برنامج NeWS. فبدلاً من مفهوم الـ DPS القائم على السماح للـ PostScript بالتفاعل مع برامج الـ C، لجأت NeWS إلى توسيع الـ PostScript وتحويله إلى لغة مناسبة لتشغيل واجهة المستخدم الرسومية بالكامل الخاصة بأي كمبيوتر. وقد أَضافت شركة (صن) عددًا من الأوامر الجديدة للمؤقتات والتحكم في الفأرة والانقطاعات interrupts وغيرها من الأنظمة المطلوبة للتفاعلية، وأضافت هياكل البيانات والعناصر اللغوية لكي تجعلها موجهة بالكائنات بشكل تام داخليًا. وقد صممت واجهة مستخدم رسومية كاملة، هم ثلاثة في الواقع، في NeWS، وقد طبقت لفترة على حاسوباتهم. بيد أن الجهود الدائبة لتوحيد نظام الـ X11 قد أدت لطرحه وانتشار استخدامه على أنظمة (صن)، ولم يتحقق لنظام NeWs أي انتشار واسع.
بوست سكريبت اللغة
لغة الـ PostScript هي لغة برمجة متكاملة مع معايير تورنغ Turing-complete، وتنتمي إلى المجموعة المتسلسلة concatenative.ومن الناحية النموذجية، لا يكتب البشر برامج الـ PostScript، بل برامج أخرى هي التي تتولى ذلك. ورغم ذلك، من الممكن كتابة برامج حاسوبية في PostScript مثل أي لغة برمجة أخرى.
بوست سكريبت اللغة
ولغة PostScript هي لغة قابلة للترجمة وقائمة على الحزم stack-based، وتشبه لغة Forth، ولكنها ذات نظام نوعي ديناميكي قوي، وهياكل بيانات مستلهمة من الموجودة في لغة الـ Lisp وذاكرة نطاقية scoped memory، وأيضاً آلية لجمع القمامة garbage collection (وذلك بداية من المستوى 2). ويستخدم النظام التركيبي (السينتاكس) للغة نظامThis language is bullshit التنويت البولندي العكسي reverse Polish notation، والذي يجعل ترتيب العمليات خاليًا من الغموض، ولكن قراءة أي برنامج تستلزم بعض الممارسة، نظرًا لأن على من يقرأ أن يحتفظ بتنسيق الحزمة في ذهنه. ومعظم المؤثرات operators (وهو ما تسميه اللغات الأخرى بالدوال functions) تتخذ وسائطها من الحزمة، وتضع نتائجها على الحزمة. أما الحرفيات literals (مثل الأرقام) فتقوم بعمل نسخة من نفسها في الحزمة. ويمكن بناء هياكل البيانات المتطورة على المصفوفات array والقواميس dictionary، ولكن لا يمكن إعلانها لنظام النوع، والذي يراها كمصفوفات وقواميس فقط، ولذلك فإن أي نظام تنويع typing يطبق على هذه «الأنواع» المعرّفة من قبل المستخدم يتم تركه للكود الذي يقوم بتطبيقه.
بوست سكريبت اللغة
ويُستخدم الرمز "%" في استهلال التعليقات في برامج الـ PostScript. وكتقليد متبع، يجب أن يبدأ كل برنامج من برامج PostScript بالرموز "!%" بحيث تترجمها كافة الأجهزة على أنها تنتمي للـ PostScript.
يبدو الكود الخاص ببرنامج "Hello World"، وهو البرنامج الذي يشيع استخدامه كمثال على أي برنامج مكتمل في أي لغة، على النحو التالي في PostScript2:
أو إذا كان جهاز المخرجات يتضمن لوحة تحكم:
تستخدم بوست سكريبت النقاط لتكون وحدة الطول. ولكن وعلى العكس من بعض النسخ الأخرى، فإنها تستخدم تحديداً 72 نقطة للبوصة، وبالتالي:
فمثلا، لكي نرسم خطاً رأسياً طوله 4 سم، يكفي أن نكتب:
كما يمكننا استخدام الصيغة التالية، والتي تبين تعريفا لإجراء مبسط واستخدام المعاملين الرياضيين mul وdiv:
وبالتالي فليس من المجدي أن نستخدم 9 أرقام عشرية لتحديد العدد الحقيقي، والقيام بحسابات قد ينجم عنها أخطاء غير مقبولة.
برتي برنت
الطباعة الجيدة (بالإنجليزية: pretty-print)‏ هو تطبيق يتعامل مع تحويلات تنسيق الأسلوب المختلفة إلى نصوص، وكود مصدري، ولغة الترميز، وما أشبه من المحتويات. غالباً ما تتكون تحويلات التنسيق من تغيرات في الوضع، والمسافات، واللون، والتباين ، والحجم، وأي تعديلات مشابهة تهدف إلى تسهيل المحتوى لرؤية أفضل للأفراد، وقراءة أفضل، وقدرة فهم. أحيانا تُسمى أدوات الطباعة الجيدة الخاصة بالكود المصدري للغة البرمجة بمجملات الكود أو معلمات الصيغة.
برتي برنت رياضيات الطباعة الأنيقة
غالبا ما تشير الطباعة الأنيقة إلى عرض تعبيرات رياضية بشكل يشبه طريقة تصفيفها احترافياً. فعلى سبيل المثال، في نظام الجبر الحاسوبي كماكسيما أو ماثماتيكا، قد يكتب النظام معطية مثل "x ^ 2 + 3 * x" as "". يمكن لبعض أنواع حاسبات الرسوم البيانية، مثل سلسلة كاسيو 9860، أو سلسلة اتش بي 49، وسلسلة TI-89، وTI-Nspire، أو سلسلة TI-83 Plus / TI-84 Plus مع امتدادات Pretty Pt، أن تقوم بالطباعة الأنيقة. وبالإضافة إلى ذلك، فإن العديد من الحاسبات العلمية الجديدة مجهزة بشاشات نقطية لديها القدرة على الطباعة الأنيقة، مثل سلسلة كاسيو FX-ES (عرض طبيعي)، وسلسلة شارب EL-W (WriteView)، و HP SmartCalc 3000s، و TI-30XB.
والعديد من برامج تنسيق النص يمكنها تصفيف الرياضيات : تم تصميم تخ بالتحديد للتصفيف الرياضي ذات جودة عالية.
برتي برنت تنسيق الكود وتجميله
غالباً ما يستخدم المبرمجين أدوات لتنسيق الكود المصدري لـ لغة البرمجة بشكل معين. أن تنسيق الكود بشكل لائق يجعله سهل القراءة والفهم. وعلاوة على ذلك، لكل مبرمج أسلوب مختلف مفضل للتنسيق، كاستعمال كود الفراغ أو وضعية القوس (الترقيم). منسق الكود يحول كود مصدري من تنسيق إلى آخر. وهذا مباشر نسبياَ بسبب البناء المطلق في لغة البرمجة. وتجميل الكود يتضمن تحليل الكود المصدري للمكونات، مثل جمل محددة، وكتل if، وحلقات تكرارية،... الخ. (انظر أيضاً إلى التحكم في التدفق)، وتنسيقهم بشكل محدد من قبل المستخدم في ملف تكويني.
ويوجد مجملات كود مستقلة وأخرى مبنية بداخل بيئة تطوير متكاملة ومحرر نصوص. وعلى سبيل المثال، فأساليب لغات إيماكس المختلفة تستطيع أن تترك مسافة بشكل صحيح في كتل الأكواد بشكل جذاب.
ومثال مبكر للطباعة الأنيقة هو برنامج بيل جوسبر "GRIND"، والذي استخدم تحسين اندماجي مع تحسين تنسيق برامج ليسب. وتم استعمال مصطلح "grind" في بعض دوائر ليسب كمرادف للكتابة الجمالية.
برتي برنت تنسيق الكود وتجميله
العديد من المشاريع مفتوحة المصدر أنشأت قوانين لتصميم الكود. ومن أشهرهم أسلوب GNU، وأسلوب BSD. وأعظم فرق بين الاثنين هو موقع القوس : في أسلوب GNU، فتح وغلق الأقواس على خطوط منفردة، بنفس الفراغ. بينما أسلوب BSD يضع قوس منفتح بنهاية السطر السابق، والقوس المنغلق يمكن وضع else بعده. كما يتغير موقع وحجم الفراغ.
المثال التالي يبين بعض هياكل C النموذجية وكيف تنسقهم قوانين أسلوب المسافة البادئة. وبدون أي تنسيق إطلاقا، يبدو كالأسفل:
ينتج برنامج GNU للمسافة البادئة المعطى التالي عندما يُطلب منه ترك مسافة طبقا لقوانين GNU:
وينتج المعطى التالي عند التنسيق طبقا لقوانين BSD:
برتي برنت تنسيق النص
يعتبر تنسيق النص شكل عام من الطباعة الأنيقة.
روبرت سيسيل مارتن
يعد روبرت سيسيل مارتن، والمعروف باسم «العم بوب»، مؤلف واستشاري برمجية حاسوب أمريكي. وكان مارتن قد تخصص في مجال البرمجيات منذ عام 1970 وعمل كاستشاري برمجيات دولي منذ عام 1990. وفي عام 2001، افتتح اجتماع المجموعة المؤسسة لطرق التطوير البرمجي السريع من تقنيات البرمجة القصوى. كما يعد كذلك أحد الأعضاء الرواد في حركة الحرف البرمجية.
هو كذلك مؤسس ورئيس شركة Object Mentor Inc،
وهي عبارة عن مجموعة من المستشارين الذين يقدمون النصح لعملائهم في سي++ وجافا وبرمجة كائنية التوجه ونماذج التصميم ولغة موحدة للنمذجة والطرق المنهجية السريعة والبرمجة القصوى.
عمل من عام 1996 لعام 1999 كرئيس تحرير لمجلة C++ Report. وفي عام 2002، ألّف التطوير البرمجي السريع: المبادئ والنماذج والممارسات، والذي يقدم مشورة عملية حول التصميم كائني التوجه والتطوير ضمن فريق سريع الأداء. كما نشر عدد من الكتب والمقالات حول الطرق المنهجية للبرامج والبرمجة.
أسلوب البرمجة
أسلوب البرمجة هو عبارة عن مجموعة قواعد أو إرشادات تستخدم عند كتابة كود مصدري برنامج (حاسوب). وغالبا ما يتم الإدعاء بأن إتباع أسلوب معين في البرمجة يساعد مبرمج على قراءة وفهم الشفرة المصدرية المطابقة للأسلوب ومساعدتهم على تجنب تقديم الأخطاء.
ومن الأعمال الكلاسيكية في هذا الموضوع هو كتاب عناصر أسلوب البرمجة والذي كتب في السبعينات وفسر هذه الأساليب بأمثلة من لغات فورتران وبي إل وان التي كانت سائدة في هذا الوقت.
إن لغة البرمجة التي تستخدم لبرنامج معين يمكن اشتقاقها من عادات التشفير الخاصة بشركة أو مؤسسة حاسوبية أخرى بالإضافة إلى مفضلات المؤلف بالنسبة للأكواد. وغالبا ما يتم تصميم أساليب البرمجة لغة برمجة بعينها (أو عائلة لغات): ويعتبر الأسلوب أمرا جيدا للشفرة المصدرية الخاصة بلغة السي وربما لا تكون مناسبة للشفرة المصدرية بيسيك.... الخ. ومع ذلك فيتم تطبيق بعض القواعد للعديد من اللغات.
أسلوب البرمجة عناصر الأسلوب الجيد
يعد الأسلوب الجيد أمرا موضوعيا يصعب تحديده. ومع ذلك فهناك عدة عناصر شائعة في مجموعة كبيرة من أساليب البرمجة والتي تتضمن الشكل العام للشفرة المصدرية بما في ذلك تحديد المسافة البادئة واستخدام المساحات البيضاء حول المشغلات والكلمات الرئيسية وكتابة بعض الكلمات بحرف كبير في البداية وخاصة الكلمات الرئيسية والأسماء المختلفة وأسلوب وتهجئة علامات التعريف الخاصة بالمستخدم مثل الوظيفة والإجراء والأسماء المتنوعة واستخدام أسلوب التعليقات.
أسلوب البرمجة هيئة الشفرة
تتعامل أساليب البرمجة بشكل كبير مع الأشكال المرئية للشفرة المصدرية بهدف الحصول على جهود معرفية أقل بشرية لاستخراج المعلومات الخاصة بالبرنامج. ولطالما كان البرنامج متوافرا بحيث يعمل على صياغة وتنسيق الشفرة المصدرية تلقائيا ليترك المجال للمبرمجين للتركيز على التسمية والمنطق والتقنيات العالية. وكنقطة عملية يعد استخدام الكمبيوتر لتنسيق الشفرة المصدرية أمرا يوفر الوقت ومن الممكن أن يقوي المعايير المنتشرة بالشركة من دون جدل.
يساعد أسلوب المسافة البادئة في تحديد تدفق السيطرة وبلوكات الكود. وفي بعض لغات البرمجة يستخدم أسلوب المسافة البادئة في تعيين البلوكات المنطقية للشفرة ويعد الاستخدام الصحيح للمسافة البادئة في هذه الحالة أكثر من مجرد أسلوب. بلغة أخرى لا تؤثر المسافات البادئة والمساحات البيضاء في الوظيفة بالرغم من أن المسافات البادئة الصحيحة والمنطقية تجعل الشفرة أكثر قابلية للقراءة. قارن:
أول نموذجان يكونان غالبا أسهل في القراءة لأنها تحمل مسافات بادئة بأسلوب ثابت (أسلوب «الفقرة المتدلية»). ويعد أسلوب المسافة البادئة أسلوبا مفيدا بشكل خاص عند التعامل مع مقومات متداخلة متعددة.
أسلوب البرمجة هيئة الشفرة
يجتمع أسلوب المسافة البادئة موديوليك زيرو مع عائدات الحوامل بدلا من المسافات البادئة. قارن كل ما سبق بما يلي:
يستخدم بايثون المسافة البادئة للإشارة إلى هياكل التحكم، لذا فالمسافات البادئة الصحيحة مطلوبة. وبفعل ذلك تكون الحاجة لوضع أقواس مع قوس (ترقيم) (مثل {... }) يتم إزالته. على الجانب الآخر، فإن النسخ واللصق اليدوي لشفرة بايثون يمكن أن يؤدي على بعض المشاكل لأن مستوى المسافة البادئة للشفرة الملصوقة يمكن ألا يكون نفس مستوى المسافة البادئة للخط الحالي. مثل هذا التنسيق يمكن أن يكون القيام به يدويا مرهقا ولكن بعض محرر نصوص وبيئة تطوير متكاملة يتمتعون بسمات خاصة للقيام بذلك تلقائيا. كما تتواجد بعض المشاكل أيضا حين يمكن جعل البايثون غير قابلة للاستخدام حين تنشر في أحد المنتديات أو الصفحات الإليكترونية التي تزيل المساحات البيضاء بالرغم من أنه من الممكن تجنب هذه المشكلة حيثما أمكن من أجل إدراج الشفرة في بطاقات تحتفظ بمساحات بيضاء مثل"<pre>... </pre>" (for لغة ترميز النص الفائق), "[code]"... "[/code]" (for bbcode), إلخ.
أسلوب البرمجة هيئة الشفرة
تتمتع لغة الهاسكيل أيضا بالدور الجانبي الذي يجعل المسافات البادئة تحدد البلوكات، ومع ذلك فعلى عكس البايثون، لا يعد وضع المسافات البادئة أمرا إجباريا في الهاسكيل- غلا أن الأقواس المجعدة والفواصل المنقوطة يمكن استخدامها بدلا منها (من حين لآخر).
غالبا ما يكون من المفيد محاذاة العناصر المتشابهة بصورة عمودية لجعل تلك الفيروسات التي تنشأ عن الطباعة أكثر وضوحا. قارن:
المثال السابق يوضح أمرين بشكل بديهي لم تكونا واضحين في المثال الأسبق:
ومن بين الأمور الجدلية ضد المحاذاة العمودية:
التبعية الخاطئة لما بين السطور: التنسيق المجدول يخلق تبعيات عبر السطور. على سبيل المثال إذا تمت إضافة علامة محددة مع اسم طويل إلى الشكل العام الجدولي، فربما يكون من الضروري زيادة عرض العمود لاستيعابها. وهذا يجبر على وجود تغيرات كبرى للشفرة المصدرية أكثر من الضروري، والتغيير الجوهري يمكن فقدانه في ظل هذا الضجيج. وهذا أمر مضر للتحكم في الشفرة المصدرية حيث تكون الفوارق الفاحصة بين النسخ أمر رئيسي.
أسلوب البرمجة هيئة الشفرة
مقاومة التغيرات: التنسيق الجدولي يتطلب بذل كثير من الجهد للحفاظ عليه. ربما يضع ذلك المبرمج في حالة سكون تجعله يعدل عن صنع أي تغييرات مفيدة مثل إضافة أو تصحيح أو تحسين اسم العلامة التحديدية لأن ذلك سيؤدي إلى إثارة الفوضى في التنسيق.
الاعتماد على الخط ذو المسافات الأحادية: من المفترض في التنسيق الجدولي أن يستعين المحرر بخط ذو عرض ثابت. معظم محرري الشفرات المعاصرين يساندون الخطوط النسبية، وربما يفضل المبرمج استخدام الخط النسبي لسهولة قراءته[بحاجة لمصدر].
في تلك المواقف التي تتطلب وجود مسافات بيضاء فإن القواعد النحوية لمعظم لغات التنسيق الحر لا تهتم بالكم الذي يظهر. وعادة ما يستخدم الأسلوب المتعلق بالمساحات البيضاء لتعزيز القابلية للقراءة. ولا يوجد حاليا وقائع صلبة معروفة (استنتاجات من دراسات) حول كيفي يمكن أن تكون المسافات البيضاء مقروءة بصورة سهلة.
على سبيل المثال، قارن الأمثلة التالية المتكافئة في تركيبها والخاصة بشفرة السي.
أسلوب البرمجة هيئة الشفرة
استخدام الجدولة لخلق مساحات بيضاء يشير غلى بعض المسائل الخاصة حين لا يتم الانتباه بصورة كافية لأن موضع نقطة الجدولة يمكن أن يختلف تبعا للأدوات التي يتم استخدامها وتبعا لمفضلات المستخدم نفسه.
مثال على ذلك، نجد أن أحد المبرمجين يفضلون وقفات الجدولة المكونة من أربع وقفات وقد تم تثبيت مجموعة أدواته على هذه الوضعية ويستعين بها لتنسيق شفرته.
بينما يفضل مبرمج آخر وقفات الجدولة المكونة من ثماني ويتم تثبيت أدواته على هذه الوضعية. وحين يفحص الشفرة، فربما يجد من الصعب قراءتها.
ومن الحلول التي تستخدم بصورة كبيرة في هذا الموضوع ربما تتضمن منع استخدام الجدولة للمحاذاة أو قواعد حول كيفية وضع وقفات الجدولة. لاحظ أن علامات الجدولة تعمل بصورة أفضل حين يتم استخدامها بشكل ثابت، وتكون مقيدة بالمسافات البادئة المنطقية ولا تستخدم للمحاذاة:
تضمين نبضي مرمز
التضمين النبضي المُرمز هو أحد الوسائل المستخدمة لتحويل عينات الإشارات التناظرية إلى إشارات رقمية (ديجيتال)، وقد ابتكر هذه الطريقة (أليك ريفز) في عام 1937، وتُعد هذه الطريقة هي المُستخدمة بشكل واسع في نقل المواد السمعية الرقمية في أجهزة الكمبيوتر وأقراص الـ Blu-ray والأقراص المدمجة العادية والـ DVD، هذا إلى جانب استعمالاتها الأخرى في أنظمة الهواتف الرقمية. وإشارات التضمين النبضي الشفري (PCM) عبارة عن تمثيل رقمي للإشارات التناظرية، وفيها يتم استخلاص المعلومات من الإشارة المستمرة عن طريق تقطيع هذه الإشارة إلى عينات مأخوذة على أزمنة قصيرة جداً ومنتظمة، حيث يتم تكميم quantization كل عيّنة لأقرب قيمة لها ضمن نطاق من الخطوات الرقمية.
ولتيار الإشارة المعدّل خاصيتان تحددان دقته وتماثل ما يحمله من معلومات مع الإشارة التناظرية الأصلية: أما الخاصية الأولى فهي معدل التعيين sampling rate، وهو عدد المرات التي تؤخذ فيها العينات في الثانية الواحدة؛ وعمق البتات bit depth، والذي يحدد عدد القيم الرقمية الممكنة التي تستطيع كل عيّنة أن تأخذها.
تضمين نبضي مرمز التضمين
في الشكل الموضح، يتم أخذ وتكميم العيّنات من موجة الجيب sine wave (المنحنى الأحمر) لتعديل إشارتها إلى إشارة رقمية. وتُؤخذ العينات بتقطيع الإشارة على أزمنة قصيرة جداً ومنتظمة، تظهر على هيئة نقاط على المحور السيني. ومع كل عيّنة، تُؤخذ إحدى القيم المتغيرة (التي تمثلها النقاط الموزعة على المحور السيني) بناء على خوارزمية معينة، وهذا ما يؤدي لتقطيع الإشارة الداخلة بشكل كامل (المنطقة المظللة) لأجزاء منفصلة يسهل تشفيرها كبيانات رقمية من أجل تخزينها أو إرسالها.فبالنسبة لمثال موجة الجيب على اليمين، نستطيع التحقق من أن القيم المكمّمة عند لحظات التعيين هي 7، 9، 11، 12، 13، 14، 14، 15، 15، 15، 14، الخ. وعند تشفير هذه القيم إلى أرقام ثنائية binary numbers، ستنتج المجموعة التالية من الكتل الرباعية nibbles:
00111 (23×0+22×1+21×1+20×1=0+4+2+1=7), 1001, 1011, 1100, 1101, 1110, 1110, 1111, 1111, 1111, 1110, إلخ.
تضمين نبضي مرمز التضمين
ويمكن فيما بعد معالجة هذه القيم الرقمية أو تحليلها بواسطة معالج إشارات رقمي (DSP) خاص أو معالج إشارات عمومي. كما يمكن مضاعفة عدة دفقات من الإشارات النبضية المعدّلة إلى تدفقات بيانات مجمعة أكبر حجمًا، وذلك بصفة عامة لنقل عدة تدفقات من خلال رابط مادي (فيزيائي) واحد. ومن الوسائل المستخدمة في ذلك تقنية التنضيد بالتقسيم الزمني time-division multiplexing (أو TDM)، وهي تُستخدم على نطاق واسع، خاصة في نظم الهواتف العامة الحديثة. وثمة تقنية أخرى يطلق عليها اسم التنضيد بالتقسيم الترددي frequency-division multiplexing، حيث تُعطى الإشارة تردد معين ينتمي لطيف من الترددات، ثم يتم نقلها إلى جانب إشارات أخرى داخل الطيف. وفي الوقت نفسه، يُستخدم التنضيد بالتقسيم الترددي (TDM) بشكل أكثر انتشارًا من التنضيد بالتقسيم الزمني FDM وذلك لتوافقيته الطبيعية مع نظم الاتصالات الرقمية ومُلائمته بصفة عامة لمتطلبات التقليل في السعات bandwidth.
تضمين نبضي مرمز التضمين
وثمة طرق كثيرة لإنشاء جهاز حقيقي ينجز هذه المهمة. وفي النظم الواقعية، من الشائع تنفيذ مثل هذه الأجهزة على الدوائر المتكاملة الأحادية integrated circuit والتي تفتقد فقط الساعة (المؤقّتات) الضرورية لإجراء عملية التعيين (أخذ العينات) ويطلق على هذا الجهاز اسم (المحول التناظري الرقمي ADC). وتتضمن مخرجات هذه الأجهزة تمثيلاً ثنائيًا للمدخلات متى تم حثها بواسطة إشارة ساعة، حيث يقوم حينئذ أحد المعالجات بقراءتها.
تضمين نبضي مرمز فك التضمين
من أجل استخلاص المخرجات من عيّنات البيانات، يتم تطبيق عملية التضمين بشكل عكسي. فبعد مرور كل فترة تعيين، تتم قراءة القيمة التالية ثم تُحول إحدى الإشارات إلى القيمة الجديدة. ونتيجة لهذه الانتقالات، فإن الإشارة ستتضمن قدرًا كبيرًا من الطاقة عالية التردد. ولتحقيق السلاسة في الإشارات وإزالة التداخلات الترددية غير المرغوبة، يتم تمرير الإشارة من خلال مرشحات تناظرية LPF تقوم بثبيط الطاقة خارج نطاق الترددات المتوقع (أي الأكبر من تردد نايكيست Nyquist وهو ). وتستخدم بعض الأنظمة الترشيح الرقمي digital filtering للتخلص من هذه التداخلات، وتُحوّل الإشارة من رقمية إلى تناظرية عند معدل تعيين أكبر بحيث يكون المرشح التناظري المطلوب لمنع الشوشرة والتداخل أكثر بساطة. وفي بعض النظم، لا تتم أي عمليات ترشيح؛ فنظرًا لأنه من المستحيل إعادة إنتاج أي إشارة بسعة لا نهائية، فإن فقدان الإشارات الضمنية في النظام يقوم بالتعويض عن الإشارات الصنعية artifacts – حيث يمكن القول ببساطة أن النظام لا يحتاج لكثير من الدقة. وتشير نظرية التعيين sampling theorem إلى أن أجهزة التضمين النبضي PCM بوسعها عندما يتوافر تردد تعيين أكبر بشكل كاف من تردد الإشارة الداخلة، أن تعمل بدون إحداث أي تشويهات كبيرة ضمن نطاق تردداتها المُصمم.
تضمين نبضي مرمز فك التضمين
وتتشابه البنية الإلكترونية المستخدمة في إنتاج الإشارات التناظرية الدقيقة من البيانات المنفصلة مع البنية المستخدمة في الإشارات الرقمية. وهذه الأجهزة عبارة عن محولات للإشارات الرقمية إلى تناظرية DACs، وتعمل بشكل مشابه للمحولات من التناظري إلى الرقمي ADCs. وهي تقوم بإنتاج فولتية أو تيار (اعتمادًا على النوع) يمثل القيمة الموجودة في مُدخلاتها، ثم يتم بعد ذلك ترشيح وتضخيم المخرجات من أجل استخدامها.
تضمين نبضي مرمز الحدود والقيود
ثمة مصدرين للضعف في أي نظام للتعديل النبضي الشفري:
يؤدي اختيار قيمة منفصلة مجاورة للإشارة التناظرية في كل عيّنة إلى حدوث الأخطاء التكميمية quantization error، والتي تتأرجح بين –q/2 و q/2. وفي الحالات المثالية (مع المحوّل التناظري-الرقمي الخطي ADC) يتوزع هذا الخطأ بشكل منتظم على امتداد هذه الفترة، وبمتوسط صفر وبتباين قيمته q2/12.
عدم قياس الإشارة بين العيّنات؛ حيث تضمن نظرية التعيين sampling دقة عملية التمثيل واسترداد الإشارة فقط في حالة إذا لم تحتو على طاقة عند التردد fs/2 أو أعلى (أي نصف تردد التعيين، والذي يُعرف باسم تردد ناكيست)؛ أما الترددات الأعلى فلن يتسنى تمثيلها أو استردادها بشكل صحيح.
تضمين نبضي مرمز الحدود والقيود
ونظرًا لاعتماد العيّنات على عامل الزمن time، فإننا نجد أن توافر ساعة توقيت دقيقة أمر ضروري من أجل الاستخلاص الدقيق للإشارة. فإذا لم تكن ساعة التشفير أو فك التشفير مستقرة، فإن انجراف التردد frequency drift سوف يؤثر بشكل مباشر على جودة مخرجات الجهاز. ولا تمثل الاختلافات الطفيفة بين ترددات ساعة التشفير وساعة فك الشفرة أي مشكلات كبيرة؛ ذلك أن الأخطاء الصغيرة المستقرة لا تكون قابلة للملاحظة. ويصبح خطأ الساعة مشكلة كبيرة فقط إذا لم تكن الساعة مستقرة. حيث تتسبب أي ساعة منجرفة، حتى مع الأخطاء الصغيرة نسبيًا، في حدوث تشوهات واضحة للغاية في الإشارات الصوتية والمرئية.
معلومات إضافية:
تتطلب بيانات التضمين النبضي الشفري الخاصة بإشارة معينة ذات ترددات ساعة غير قابلة للتأثر وجود ساعة توقيت دقيقة عند الطرف التشفيري لضمان استخدام كافة البيانات في تيار مستمر بدون أن يحدث نقص أو تكدس في امتلاء مخزن الإشارات المؤقت. وأي تفاوت في الترددات سوف يكون مسموعًا عند المخرج نظرًا لأن عدد العينات لكل فترة زمنية لا يمكن أن يكون صحيحًا. ويمكن توجيه سرعة البيانات في أي قرص مدمج من خلال سيرفو servo يقوم بضبط سرعة دوران القرص: وهنا تكون ساعة المخرجات هي الساعة الرئيسية. أما بالنسبة لكافة الأنظمة «الرئيسية الخارجية» مثل DAB، يجب تشفير تيار المخرجات بساعة متجددة ومتزامنة بشكل دقيق. وعندما يختلف معدل التعيين المرغوب للمخرجات عن ساعة تدفق البيانات الداخلة يكون من اللازم إدخال محول لمعدل التعيين في السلسلة لتحويل العينات إلى حقل الساعة الجديدة.
تضمين نبضي مرمز التحويل الرقمي كجزء من عملية التضمين النبضي الشفري
في النظام التقليدي للتعديل النبضي الشفري، قد يتم معالجة الإشارة التناظرية (من خلال ضغط السعة amplitude مثلاً) قبل أن يتم تحويلها رقمياً. وبمجرد إتمام التحويل الرقمي للإشارة، يتم إخضاع إشارة التضمين النبضي في العادة لمزيد من عمليات المعالجة (مثل الضغط الرقمي للبيانات).
ويُعرف التضمين النبضي الشفري من خلال التكميم الخطي بـ «التضمين الخطي»).
Linear PCM.
وبعض أنواع التضمين النبضي الشفري تجمع بين معالجة الإشارة وبين التشفير. وكانت النسخ الأقدم من هذه الأنظمة تطبق عملية المعالجة في الحقل التناظري كجزء من عملية التحويل من تناظري إلى رقمي A/D؛ أما التطبيقات الأحدث فتقوم بنفس الوظيفة في الحقل الرقمي. وقد توقف العمل بهذه التقنيات البسيطة نتيجة لنشوء التقنيات العصرية للضغط الصوتي audio compression القائم على التحويل.
تضمين نبضي مرمز التحويل الرقمي كجزء من عملية التضمين النبضي الشفري
[[يقوم التضمين النبضي الشفري التفاضلي (أو DPCM) بتشفير قيم التضمين النبضي الشفري PCM إلى اختلافات بين القيمة الحالية والقيمة المتوقعة. ويقوم أحد اللوغاريتمات بالتنبؤ بالعينة التالية بناءً على العينات السابقة، أما المُشفّر فيقوم فقط بتخزين الاختلاف بين هذا التنبؤ وبين القيمة الفعلية. فإذا كان التوقع معقولاً، يمكن استخدام بتات أقل لتمثيل نفس المعلومات. أما بالنسبة للمواد السمعية، فيسهم هذا النوع من التشفير في خفض عدد البتات المطلوب في كل عيّنة بنسبة 25% مقارنة بالتضمين النبضي الشفري.
يعد التضمين النبضي الشفري التفاضلي المتكيف (Adaptive DPCM) أحد أنواع الـ DPCM ويقوم بتنويع حجم خطوة التكميم لتحقيق المزيد من الخفض في السعة المطلوبة لنسبة إشارة إلى شوشرة ratio signal-to-noise معينة.
تضمين نبضي مرمز التحويل الرقمي كجزء من عملية التضمين النبضي الشفري
وفي نظم الاتصالات الهاتفية، يتم تشفير الإشارة الصوتية المعيارية للمكالمة التليفونية الواحدة إلى 8000 عيّنة تناظرية في الثانية، كل منها مؤلف من ثمانية خانات ثنائية 8 bits، وبما يعطي في النهاية إشارة رقمية بقيمة 64 كيلوبيت/ثانية تعرف بـ DS0. ويكون التشفير الافتراضي لضغط الإشارة على DS0 إما μ-law (mu-law) (في أمريكا الشمالية واليابان) أو A-law (في أوروبا ومعظم باقي دول العالم). وهناك أنظمة ضغط لوغاريتمية يتم فيها ربط رقم العيّنة الخطية للـ PCM ذات الـ 12 أو 13 خانة ثنائية 12 or 13-bit بأحد القيم ذات الثمانية خانات ثنائية 8-bit. وتضع المواصفة الدولية G.711 مواصفات هذا النظام. وقد تم التخلى عن إحدى المقترحات البديلة التي تتضمن تمثيل النقطة العائمة floating point representation، والتي قيمة الجزء العشري فيها خمس بتات mantissa 5-bit والجذر ثلاث بتات 3-bit radix.
ومتى كانت تكلفة الدوائر مرتفعة وخسارة جودة الصوت مقبولة، قد يُلجأ إلى المزيد من ضغط الإشارة الصوتية. وهنا يستخدم لوغاريتم الـ ADPCM للربط الدالّي لسلسلة من عينات 8-bit µ-law أو A-law PCM إلى سلسلة من عينات الـ ADPCM رباعية الخانات الثنائية. وبهذه الطريقة، تتم مضاعفة سعة الخط. ونجد تفصيلاً بهذه التقنية في المواصفة G.726.
وقد اكتشف لاحقاً إمكانية تحقيق المزيد من الضغط، ونشرت مواصفات إضافية في هذا الصدد. وبعض هذه المواصفات الدولية تصف الأنظمة والأفكار التي تغطيها براءات اختراعات خاصة ومن ثم فإن استخدام هذه المواصفات يستلزم سداد المستحقات لأصحاب هذه البراءات.
وتُستخدم بعض تقنيات الـ ADPCM في نقل الصوت عبر الإنترنت Voice over IP.
تضمين نبضي مرمز التشفير بهدف نقل الإشارة
يمكن للتعديل النبضي الشفري أن يكون بنظام العودة إلى الصفر return-to-zero (RZ) أو بنظام عدم العودة إلى الصفر non-return-to-zero (NRZ). ولكي تتم مزامنة أي نظام عدم عودة إلى الصفر باستخدام المعلومات الموجودة داخل النطاق in-band، ينبغي ألا تكون هناك تتابعات طويلة من الرموز المتشابهة، مثل الآحاد أو الأصفار. وفي أنظمة التضمين النبضي الشفري الثنائية، تُسمى كثافة الرموز -1 "1-symbols" باسم «كثافة الآحاد» ones-density.