عرض مشاركة واحدة
  #39  
قديم 09-08-2010, 10:56 AM
الصورة الرمزية معروف
معروف
Guest
 
المشاركات: n/a
افتراضي

حتى نكون على وفاق فيما يتعلق بالمصطلحات وإشكاليات "ترميز صالح"

أولاً الكمبيوتر لا يحتاج لحروف اللغة (letters) بأشكالها المعتادة والمألوفة للانسان، لأنه لا يراها، ولا يحتاج لعرضها على أي وسيلة بصرية، الذي يحتاج لمشاهدتها هو ذلك الكائن بين الكرسي ولوحة المفاتيح، والترميز (coding) مجرد طريقة مناسبة لتخزين هذه الحروف في صورة أرقام في ذاكرة الكمبيوتر كأن تقول (حرف الباء ترميزه الرقم سبعة بالنظام الست عشري).

بدايات الكمبيوتر (ليس الكمبيوتر الشخصي) لم تشهد اهتماماً بمسألة العلاقة بين الانسان والآلة (man-machine interaction) حيث كان الأوائل من المهتمين مهووسين فعلاً بالأمر فكانوا يقومون بإدخال البيانات بشكلها الطبيعي (native) أي بذات الطريقة التي تخزن بها في ذاكرة الكمبيوتر أي بالنظام الست عشري (hexadecimal) فكانت هنالك لوحات مفاتيح ست عشرية كل مفتاح يساوي تماماً الرقم الست عشري المكتوب عليه فإذا ضغطت على المفتاحين (B6) يقوم الكمبيوتر بإدخال القيمة (B6) "تعادل الرقم 182" وتخزينها في الذاكرة وتحصل بذلك على صورة (image) للبيانات في الذاكرة مطابقة للارقام التي ضغطت مفاتيحها باصابعك، في الستينات لم تكن هنالك شاشات تبين الموجود من القيم المدخلة إلى الذاكرة وهي عملية تسمى بإعادة العرض (echoing) والمصطلح يعني إعادة عرض صورة البيانات على المستخدم "للتحقق" منها، سنعود لتفصيل هذه النقطة قريباً.

عندما كانت الذاكرات المباشرة (Dynamic RAM) عزيزة كان كل بايت يستحق ثمنه لذلك لم تكن مسألة اللغات العالمية الأخرى مطروحة ولذلك كان الاهتمام على الإنجليزية فقط فتم تخصيص بايت واحد لكل حرف من حروف اللغة فكان بذلك الحروف والعلامات الممكن ترميزها (128) فقط، فتم تنظيم حروف اللغة الإنجليزية في مصفوفة (character set) تخصص لكل حرف (حروف اللغة والأرقام التسعة وبعض العلامات) رقم مميز سمي بالرمز (code) هذه الأرقام هي التي يخزنها الكمبيوتر في ذاكرته وليس الحروف (letters) ذاتها أو أي معلومات عنها فكانت الآسكي (ASCII) بشكلها الحالي وكانت تلك أول طبقة مخفية (covert layer) تفصل بين طريقة الكمبيوتر في التخزين وطريقة الانسان في الإدخال، أنت تضغط مفتاحاً يخص الحرف فيقوم الكمبيوتر بإبداله بالرقم المقابل (الرمز) ثم تخزين الرمز (ست عشري) في الذاكرة، إبدال الحرف بالرمز يتم بواسطة لوحة المفاتيح الملحومة مع الكمبيوتر أما في حالة وجود لوحة المفاتيح العصرية المستخدمة حالياً والموصولة عبر سلك فيتم التحويل داخل الكمبيوتر لأن لوحات المفاتيح هذه ينتج عن ضغط أي مفتاح فيها شفرة وسيطة أخرى تسمى (scancode) وهي طبقة مخفية أخرى نشرحها لاحقاً، هذه العمليات تسمى إدخال البيانات بصورة عامة.

بطبيعة الحال لا بد من الاتفاق على هذه المصفوفة فإذا تغير رمز الحرف يتغير كل شيء ونحصل على فوضى صنعناها بأنفسنا ولن يتأثر الكمبيوتر أبداً، هذا الاتفاق يحدد معيار (standard) تنظيم العلاقة بين حرف اللغة (character) والرمز المقابل (code) وفي أبسط صورة هو مجرد جدول ولكنه متفق عليه وهي الميزة الأهم في وضع أي عمل له علاقة بالكمبيوتر.

باتساع دائرة مستخدمي الكمبيوتر لتشمل غير المختصين كانت الشاشات الزجاجية (CRT) قد بدأت في أخذ مكانها في دنيا الكمبيوتر، فإذا أردنا كتابة جملة (my home) فلا بد من التحقق أننا أدخلناها بطريقة صحيحة أي المطلوب أن نرى صورة البيانات (image) بطريقة ما ليس الأرقام الست عشرية في الذاكرة بل حروف الجملة باللغة الإنجليزية، عليه يقوم الكمبيوتر عند الضغط على أي مفتاح (أثناء طباعة النصوص مثلاً) بعمليتين أساسيتين الأولى إدخال الحروف بشفرته إلى ذاكرة الحاسوب وعرض (شكل الحرف) على الشاشة حتى يراه المستخدم هذه العملية تسمى بإعادة العرض (echo) واللفظ يفيد أنك ترى صدى لما أدخلته يا انسان، العملية الأولى ضرورية لكن الثانية ليست كذلك فهي موجهة للانسان فالكمبيوتر قد خزن ما يريد بالفعل و في أي وقت يمكنك فصل القدرة عن الشاشة الآن وإعادة وصلها وستجد البيانات في مكانها.

في علوم الكمبيوتر المصطلح (typography) يتعلق بوصف شكل الحرف أي صورته (glyph) وحالاته المختلفة وهو أيضاً مصطلح قديم قدم التاريخ فهو يعود إلى علم الطباعة القديمة الاسم (glyph) أحدث نسبياً، قلنا عندما نضغط على أي حرف فإنه تحدث عمليتان أساسيتان إدخال شفرة الحرف لذاكرة الكمبيوتر وعرض شكل الحرف على الشاشة، هذه العملية الثانية معقدة جداً رغم عدم أهميتها بالنسبة للكمبيوتر وهي معقدة حتى يومنا هذا سنشرح للمتابعين بطريقة ميسرة.

تخيلوا أن لديكم كل حروف اللغة الإنجليزية محفورة على قطع الدومينو (نسميها "ضُمَنه" في السودان) وكل قطعة دومينو مكتوب عليها من الخلف رقم متسلسل مميز لا يتكرر قي قطعة أخرى، أنا قلت محفورة لأني أقصد أنه ليس بالإمكان مسحها، الآن تخيلوا أن الكمبيوتر هو شخص يجلس قبالتك ويحتفظ بقطع الدومينو بحيث يكون الوجه المحفور على المنضدة فلا يرى إلا الأرقام المتسلسلة وأنت تقول له (قم برص القطع بالأرقام 1 و 3 و 5 بهذا الترتيب وأرنيها) فيرصها ويرفعها في وجهك بذات الترتيب الذي طلبته، هو يرى الأرقام المتسلسلة من الخلف وأنت ترى الحروف المحفورة، هذه ببساطة كل العملية، الرقم المتسلسل هو الترميز وأي من قطع الدومينو هي حرف من حروف اللغة.

إذا وضعنا كل قطع الدومينو الخاصة بحروف لغة معينة في علبة منفصلة فإننا نكون قد حصلنا على صفحة ترميز (code page) والطريقة التي تحدد كيفية إعطاء الرقم المتسلسل لقطعة دومينو تسمى (character set) أو صفحة ترميز (code page) وشكل الحرف المحفور يسمى (character) لاحظ أنني لم أقل (letter). إذا قدر للشخص أن يغير في أي شكل حرف محفور بحيث يبقى الرقم المتسلسل كما هو فإننا نحصل على كلمة مختلفة لأي تسلسل يدخل الحرف المتغير فيه وتصبح فوضى.

في الواقع أنت تضغط مفتاح على لوحة المفاتيح فيولد لاحقاً رقم شفرة وسيطة (scancode) تتغير لاحقاً لتصبح الترميز المطلوب للحرف هذه العملية تحفظ استقلال كل جهاز عن الآخر فلو كانت لوحة المفاتيح تولد شفرة آسكي مباشرة لأضطر الناس لشراء لوحات مفاتيح بعدد الترميزات المتوفرة اللوحات الحالية تولد شفرة (scancode) متفق عليها وهي ببساطة تحدد الصف والعمود الذين يحددان مكان المفتاح من لوحة المفاتيح، وبعد ذلك كل برنامج داخل الكمبيوتر يفسرها على هواه أي يعدلها للترميز المناسب للتطبيق.

للغة العربية أيضاً قطع دومينو ولكنها كثيرة لأن أشكال الحروف تتغير حسب موقعها فلكل حرف عربي أربعة على الأقل وبعض الحروف واحد فقط (مثل التاء المربوطة والألف المقصورة والهمزة) فإذا كانت الارقام المتسلسلة (1، 3، 5) التي وردت أعلاه مخصصة للحروف (ذ هـ ب) فسأحصل على الكلمة (ذهب) إذا طلبت من الشخص رصها ويجب عليه أن يعكس اتجاه العرض لأن اللغة العربية تكتب من اليمين لليسار ولهذا سميت هي واللغات التي تعتمد على حروفها بالكتابات المعقدة (complex script)، ماذا عن الحركات؟ لا جديد هنا هي بالنسبة للكمبيوتر حروف أخرى تذكر أن الشخص الذي يجلس قبالتك لا يرى ما تراه لذلك فهو لا يتدخل تسمية المحفور على قطع الدومينو حرفاً كان أو رقماً أو حركة أو حتى صورة وجه.

الحركات بالنسبة للكمبيوتر هي حروف كاملة الدسم لها رموز مثل غيرها، بالرجوع لمثال الدومينو أعلاه، تخيلوا أن قطع الدومينو الخاصة بالحركات مصنوعة من الزجاج ويعرف الشخص أن هذا النوع من القطع لا يوضع بالتجانب بل فوق القطع العادية الأخرى تماماً وبالضبط كل قطعة دومينو زجاجية توضع فوق القطعة العادية قبلها، لدينا شكل الفتحة محفور على قطعة دومينو زجاجية بالرقم المتسلسل (2) وبكمية وافرة، الآن أنت تقول للشخص (قم برص القطع بالأرقام 1 و 2 و 3 و 2 و 5 و 2 بهذا الترتيب وأرنيها) فيضع كل قطعة زجاجية بالرقم (2) فوق التي قبلها فترى أنت الكلمة (ذَهَبَ) بالتشكيل.

لدينا الآن علبة قطع دومينو جديدة بل في الواقع لدينا أكثر (ASMO 708, DOS, ISO, Windows) وهي التسميات للاستخدام العام، الأسماء المتخصصة أكثر (ISO8859-6, CP1256) وهي مجرد أسماء لطرق مختلفة لترقيم قطع الدومينو أي ترميزها. الأخير الخاص بمايكروسوفت يسمى (cp1256) مجرد رقم تعريفي و (cp) تعني (code page).

سأواصل شرح مفاهيم الترميز (coding) قريباً، إن شاء الله

معروف أبو الحسن
طالب ماجستير
كلية العلوم - جامعة الخرطوم
رد مع اقتباس